C#中执行PowerShell 脚本

释放双眼,带上耳机,听听看~!

在C#中调用powershell脚本,需要引用的namespace如下:

using System.Management.Automation;
using System.Management.Automation.Runspaces;

添加System.Management.Automation.dll的引用,需要使用浏览,如果不知道位置,可以先在本机查找下。

代码如下:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
11         //RunPowershell(@".\x.ps1", ""); 2         private Collection<PSObject> RunPowershell(string filePath, string parameters)  
2 3         {  
3 4             RunspaceConfiguration runspaceConfiguration = RunspaceConfiguration.Create();  
4 5             Runspace runspace = RunspaceFactory.CreateRunspace(runspaceConfiguration);  
5 6             runspace.Open();  
6 7             RunspaceInvoke scriptInvoker = new RunspaceInvoke(runspace);  
7 8             Pipeline pipeline = runspace.CreatePipeline();  
8 9             Command scriptCommand = new Command(filePath);  
910             Collection<CommandParameter> commandParameters = new Collection<CommandParameter>();  
1011 12             string[] tempParas = parameters.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);  
1113             for (int i = 0; i < tempParas.Length; i += 2)  
1214             {  
1315                 CommandParameter commandParm = new CommandParameter(tempParas[i], tempParas[i + 1]);  
1416                 commandParameters.Add(commandParm);  
1517                 scriptCommand.Parameters.Add(commandParm);  
1618             }  
1719 20             pipeline.Commands.Add(scriptCommand);  
1821             Collection<PSObject> psObjects;  
1922             psObjects = pipeline.Invoke();  
2023 24             if (pipeline.Error.Count > 0)  
2125             {  
2226                 throw new Exception("脚本执行失败");  
2327             }  
2428 29             runspace.Close();  
2530 31             return psObjects;  
2632         }
27

powershell脚本执行的结果存在Collection<PSObject>集合中。

给TA打赏
共{{data.count}}人
人已打赏
安全技术安全运维

Windows服务器如何发现被黑

2018-5-20 12:24:31

安全技术

网站制作需要素材的实用网站

2021-12-21 16:36:11

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索