添加对system.management.automation.dll的引用

简介:

不知道为什么system.management.automation.dll存放在一个隐藏文件夹里面,入下图,我把他拷贝到项目的ThirdParty目录下。

 

image

在项目目录选择对该DLL的引用。

image

 

添加命名空间

 

 

 

using System.Management.Automation.Runspaces;
using System.Management.Automation;
using System.Collections.ObjectModel;

 

 

封装调用过程

private void RunPowershell(string filePath, string parameters)
{
RunspaceConfiguration runspaceConfiguration = RunspaceConfiguration.Create();
Runspace runspace = RunspaceFactory.CreateRunspace(runspaceConfiguration);
runspace.Open();
RunspaceInvoke scriptInvoker = new RunspaceInvoke(runspace);
Pipeline pipeline = runspace.CreatePipeline();
Command scriptCommand = new Command(filePath);
Collection<CommandParameter> commandParameters = new Collection<CommandParameter>();
foreach (var parameter in parameters.Split(' '))
{
CommandParameter commandParm = new CommandParameter(null, parameter);
commandParameters.Add(commandParm);
scriptCommand.Parameters.Add(commandParm);
}
pipeline.Commands.Add(scriptCommand);
Collection<PSObject> psObjects;
psObjects = pipeline.Invoke();
}

客户端代码

RunPowershell(@".\x.ps1", "");

需要注意还是需要使用.\来调用脚本.




    本文转自Jake Lin博客园博客,原文链接:http://www.cnblogs.com/procoder/archive/2010/08/30/WPF-invoke-powershell.html,如需转载请自行联系原作者

相关文章
|
Java
System与Runtime类
System与Runtime类
55 0
vb6.0中如何引用Microsoft Excel 16.0 Object Library?
将应用程序中的表格数据导入到Excel的“工具”
|
监控 程序员
一起谈.NET技术,System.Diagnostics命名空间里的Debug类和Trace类的用途【转】
  在 .NET 类库中有一个 System.Diagnostics命名空间,该命名空间提供了一些与系统进程、事件日志、和性能计数器进行交互的类库。当中包括了两个对开发人员而言十分有用的类Debug类和Trace类。
968 0
|
监控 程序员
System.Diagnostics命名空间里的“.NET研究”Debug类和Trace类的用途【转】
  在 .NET 类库中有一个 System.Diagnostics命名空间,该命名空间提供了一些与系统进程、事件日志、和性能计数器进行交互的类库。当中包括了两个对开发人员而言十分有用的类Debug类和Trace类。
1145 0
|
安全 网络协议 JavaScript