2013-08-25 5 views
0

Может кто-нибудь, пожалуйста, помогите понять, почему следующий код внутри функции CsharpТермин «Connect-QADService» не распознается как имя командлета ... внутри C# функции

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» не распознается как имя командлета, функции, файла сценария или исполняемой программы. Проверьте правильность написания имени или, если включен путь, проверьте правильность пути и повторите попытку.

В то время как командлеты ActiveRoles установлены и запущены эквивалентные команды в оболочке питания успешно. Я пропустил некоторые dll в ссылках на проекты? Thanks

ответ

1

Командлеты Active Quest ActiveX не загружаются в сеанс PowerShell по умолчанию, поскольку они не являются частью PowerShell.

PowerShell 3 автоматически загружает модули при необходимости. Я не знаю, верно ли это при использовании RunSpace, поскольку я никогда не использовал PowerShell таким образом.

Вы загружаете оснастку Quest или модуль в свой профиль PowerShell? Вам нужно будет сделать эквивалент в коде C#.