C#调用powershell的问题。
有个文件ps1.ps1内容是:get-windowsfeatureweb-server在powershell命令行里能直接.\ps1.ps1运行出结果。但在程序里:usi...
有个文件ps1.ps1内容是:
get-windowsfeature web-server
在powershell命令行里能直接.\ps1.ps1运行出结果。
但在程序里:
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Management.Automation;
using System.Management.Automation.Runspaces;
using System.Text;
namespace ConsoleApplication
{
class Program
{
static void Main(string[] args)
{
string result = RunScript(@"D:\ps1.ps1");//get-windowsfeature web-server
Console.Write(result);
Console.Read();
}
private static string RunScript(string scriptText)
{
Runspace runspace = RunspaceFactory.CreateRunspace();
runspace.Open();
Pipeline pipeline = runspace.CreatePipeline();
pipeline.Commands.AddScript(scriptText);
pipeline.Commands.Add("Out-String");
Collection<PSObject> results = pipeline.Invoke();
runspace.Close();
StringBuilder stringBuilder = new StringBuilder();
foreach (PSObject obj in results)
{
stringBuilder.AppendLine(obj.ToString());
}
return stringBuilder.ToString();
}
}
}
一直报错,说get-windowsfeature不是可是别的cmdlet什么什么的。。。。。
55555555555555555555555555555555555555555555555555555 展开
get-windowsfeature web-server
在powershell命令行里能直接.\ps1.ps1运行出结果。
但在程序里:
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Management.Automation;
using System.Management.Automation.Runspaces;
using System.Text;
namespace ConsoleApplication
{
class Program
{
static void Main(string[] args)
{
string result = RunScript(@"D:\ps1.ps1");//get-windowsfeature web-server
Console.Write(result);
Console.Read();
}
private static string RunScript(string scriptText)
{
Runspace runspace = RunspaceFactory.CreateRunspace();
runspace.Open();
Pipeline pipeline = runspace.CreatePipeline();
pipeline.Commands.AddScript(scriptText);
pipeline.Commands.Add("Out-String");
Collection<PSObject> results = pipeline.Invoke();
runspace.Close();
StringBuilder stringBuilder = new StringBuilder();
foreach (PSObject obj in results)
{
stringBuilder.AppendLine(obj.ToString());
}
return stringBuilder.ToString();
}
}
}
一直报错,说get-windowsfeature不是可是别的cmdlet什么什么的。。。。。
55555555555555555555555555555555555555555555555555555 展开
3个回答
展开全部
不懂哎,挺高深的。powershell是什么?
自己多琢磨琢磨吧,祝你好运。
自己多琢磨琢磨吧,祝你好运。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先把module import
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
RunScript(@"D:\ps1.ps1");//引用错误
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询