我对C#有一个很好的理解,对powershell有一个非常基本的了解。我正在使用Windows PowerShell CTP 3,这非常有趣。但我想超越编写脚本/函数。 C#有什么很酷的东西吗?
答案 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。
答案 2 :(得分:8)
答案是'这取决于'。您可以使用c#(构建窗口,Web客户端和移动客户端)执行各种操作。
您可以从C#调用powershell脚本。看看这个网站==> link
您甚至可以将c#代码转换为powershell ==> link
答案 3 :(得分:5)
您可以通过以下两种方式之一来看待它:
在某种程度上,他们是完全不同的问题和不同的答案。
从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