请有人帮助理解为什么Csharp函数中的以下代码
Runspace runspace = RunspaceFactory.CreateRunspace();
runspace.Open();
Pipeline pipe = runspace.CreatePipeline();
Command connectToActDir = new Command("connect-QADService");
connectToActDir.Parameters.Add("Service", "'ip:port'");
connectToActDir.Parameters.Add("ConnectionAccount", "'user.local\administrator'");
connectToActDir.Parameters.Add("ConnectionPassword", "'password'");
pipe.Commands.Add(connectToActDir);
pipe.Invoke();
导致以下错误
术语“connect-QADService”未被识别为cmdlet,函数,脚本文件或可操作程序的名称。检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试。
安装ActiveRoles cmdlet并在power shell中运行等效命令成功。我是否错过了项目参考中的一些dll? 感谢
答案 0 :(得分:1)
默认情况下,Quest ActiveRoles cmdlet未加载到PowerShell会话中,因为它们不属于PowerShell。
PowerShell 3会在需要时自动加载模块。我不知道在使用RunSpace时这是否成立,因为我从未以这种方式使用PowerShell。
您是否在PowerShell配置文件中加载了Quest管理单元或模块?您需要在C#代码中执行相同的操作。