术语“connect-QADService”在C#函数中不被识别为cmdlet的名称

时间:2013-08-25 20:24:00

标签: c# powershell active-directory cmdlets

请有人帮助理解为什么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? 感谢

1 个答案:

答案 0 :(得分:1)

默认情况下,Quest ActiveRoles cmdlet未加载到PowerShell会话中,因为它们不属于PowerShell。

PowerShell 3会在需要时自动加载模块。我不知道在使用RunSpace时这是否成立,因为我从未以这种方式使用PowerShell。

您是否在PowerShell配置文件中加载了Quest管理单元或模块?您需要在C#代码中执行相同的操作。