Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我能用C#和Powershell做什么?_C#_Powershell_Powershell 2.0 - Fatal编程技术网

我能用C#和Powershell做什么?

我能用C#和Powershell做什么?,c#,powershell,powershell-2.0,C#,Powershell,Powershell 2.0,我对C#有相当的了解,对powershell也有非常基本的了解。我正在使用Windows PowerShell CTP 3,这非常有趣。但我想超越编写脚本/函数。C#有什么很酷的东西吗?答案是“视情况而定”。您可以使用c#(构建windows、web客户端和移动客户端)完成各种工作 您可以从C#调用powershell脚本。查看此网站==> 您甚至可以将c#代码转换为powershell==>我认为使用c#和powershell可以做的最有趣的事情是构建CmdLet。这些基本上是PowerShe

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

答案是“视情况而定”。您可以使用c#(构建windows、web客户端和移动客户端)完成各种工作

您可以从C#调用powershell脚本。查看此网站==>


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

我认为使用c#和powershell可以做的最有趣的事情是构建CmdLet。这些基本上是PowerShell的插件,它们是用托管代码编写的,其行为与正常函数类似。它们有一个动词-名词对,您已经使用的许多函数实际上都是隐藏的cmdlet


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

也可以从PowerShell内部运行C#代码。这可以通过两种方式实现。使用PowerShell管理单元,一个提供PowerShell cmdlet和导航提供程序的编译dll,或通过新的cmdlet添加类型,动态导入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)

您可以通过以下两种方式之一查看:

  • 如何在C#程序中利用PowerShell
  • 如何利用PowerShell中的C#编程
  • 在某种程度上,它们是完全不同的问题,有着不同的答案

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

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

    因此,根据您希望执行的操作,您有多种选择。

    Scott Hanselman aka有几个关于Powershell、cmdlet、C#等的播客。如果你想知道它是什么,它是如何工作的,以及更多的话,这是最好的。在他的网站上搜索以获取播客

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






    +1 cmdlet功能非常强大,例如,用于为托管应用程序和服务提供命令行界面。+1用于将PowerShell托管为应用程序的脚本引擎。内置的.NET脚本语言正在迅速成为主流工具。您可以使用[-Language{CSharp | CSharpVersion3 | VisualBasic | JScript}]标记,该标记在第一行source=@“$source=@”中缺少“$”