我可以用C#和Powershell做什么?

时间:2009-04-12 19:21:08

标签: c# powershell powershell-v2.0

我对C#有一个很好的理解,对powershell有一个非常基本的了解。我正在使用Windows PowerShell CTP 3,这非常有趣。但我想超越编写脚本/函数。 C#有什么很酷的东西吗?

5 个答案:

答案 0 :(得分:60)

在最高级别,您有两个不同的选项您可以从C#程序主机PowerShell并通过RunSpaces和管道执行PowerShell命令。

或者您可以在PowerShell中运行C#代码。这可以通过两种方式完成。使用PowerShell管理单元,提供PowerShell cmdlet和导航提供程序的已编译dll,或通过新的cmdlet Add-Type ,它允许您动态导入C#,VB,F#代码。来自帮助

$source = @"
public class BasicTest
{
    public static int Add(int a, int b)
    {
        return (a + b);
    }

    public int Multiply(int a, int b)
    {
        return (a * b);
    }
}
"@

Add-Type -TypeDefinition $source
[BasicTest]::Add(4, 3)
$basicTestObject = New-Object BasicTest 
$basicTestObject.Multiply(5, 2)

答案 1 :(得分:34)

我认为使用C#和PowerShell可以做的最有趣的事情就是构建CmdLet。这些本质上是PowerShell的插件,用托管代码编写,就像普通函数一样。它们有一个动词 - 名词对,你已经使用过的很多函数实际上都是cmdlet。

http://msdn.microsoft.com/en-us/magazine/cc163293.aspx

答案 2 :(得分:8)

答案是'这取决于'。您可以使用c#(构建窗口,Web客户端和移动客户端)执行各种操作。

您可以从C#调用powershell脚本。看看这个网站==> link

您甚至可以将c#代码转换为powershell ==> link

答案 3 :(得分:5)

您可以通过以下两种方式之一来看待它:

  1. 如何在C#程序中使用PowerShell
  2. 如何在PowerShell中利用C#编程。
  3. 在某种程度上,他们是完全不同的问题和不同的答案。

    从C#开始,您可以利用PowerShell引擎,运行空间,管道等。与Exchante一样,您可以使用C#来执行所有GUI工作,然后调用PowerShell cmdlet来完成所有难题。如果您可以找到要利用的PowerShell cmdlet或脚本,则此选项是合适的。

    从PowerShell中,您可以使用C#扩展您在PowerShell中可以执行的操作。您可以创建cmdlts和提供程序以使其他人能够访问应用程序数据。或者,您可以创建可在PowerShell脚本中使用的对象。此选项可帮助您以更自动化的方式打开要管理的应用程序。

    因此,根据您的目标,您可以选择。

答案 4 :(得分:2)

Scott Hanselman又名Hanselminutes有几个关于Powershell,CmdLets,C#等的播客。如果你想了解它是什么,它是如何工作的,那就是最好的。在他的网站上搜索以获取播客。

他网站上与PS相关的播客列表(按时间倒序排列):

#190: State of Powershell/Lee Holmes & Jason Shirk
#162: Powershell 2.0
#49: Powershell/Bruce Payette
#36: Jeffrey Snover, Powershell architect
#24: Windows Powershell (MONAD), Part II