Я пытаюсь выполнить несколько очень простых командлетов PowerShell/ActiveDirectory, удаленно, но я не могу загрузить модуль ActiveDirectory. Я пробовал пару разных вещей, включая регистрацию удаленной оболочки на удаленном сервере, который загружает модуль, но я не могу заставить это работать.C# Не удается загрузить модуль ActiveDirectory для Powershell Remote Use
Что работает: Удаленная настройка работает. Мой код C# может подключаться к удаленному компьютеру и выполнять команды Exchange, например New-Mailbox. Однако я не могу выполнять команды, такие как Add-ADGroupMember.
Если я вхожу в систему на удаленном компьютере, я могу проверить, что все доступные CMD-ключи Powershell доступны для как Exchange, так и AD. Поэтому я знаю, что они работают на удаленной машине, если я просто вхожу в систему для Powershell.
Попытка выполнить Add-ADGroupMember дает мне ошибку, что он не распознан как командлет. Это указывает на то, что модуль ActiveDirectory не загружен. Однако, если я пытаюсь импортировать, например, так:
ps.Commands.AddCommand("Import-Module").AddArgument("ActiveDirectory");
эта команда завершается с ошибкой, что термин «Import-Module» также не является признанным Командлет.
Я также попытался подключиться к shellURI, который специально загружает модуль ActiveDirectory, но он не может подключиться. Я получаю сообщение об ошибке, что URI ресурса не найден в каталоге WS-Management.
Это также вызывает еще одну странную вещь; Я не понимаю, почему я не могу подключиться к URI ресурсов, которые перечислены в удаленном Powershell. Если я делаю PS_GetSessionConfiguration, я вижу следующее:
AdExchange (мой собственный пользовательский) Microsoft.PowerShell Microsoft.Powershell.Workflow Microsoft.Powershell32 Microsoft.ServerManager
Однако, я не могу подключиться к любому из тех. Когда я настройки моей информации подключения объекта, я должен использовать следующий URI:
string shell = "http://schemas.microsoft.com/powershell/Microsoft.Exchange";
Все остальные URI терпят неудачу. Почему это?
Во всяком случае, вот некоторый код:
using (Runspace runspace = RunspaceFactory.CreateRunspace(connInfo))
{
runspace.Open();
using (PowerShell ps = PowerShell.Create())
{
ps.Runspace = runspace;
Pipeline pipe = runspace.CreatePipeline();
ps.Commands.AddCommand("Import-Module").AddArgument("ActiveDirectory");
ps.Invoke();
ps.Commands.AddCommand(CreateNewUserCommand());
ps.Commands.AddCommand(CreateAddGroupCommand("FacnStaff"));
//ps.Commands.AddCommand(CreateAddGroupCommand("AllFacStaff"));
//ps.Commands.AddCommand(CreateAddGroupCommand("PasswordManagerFacStaff"));
results = ps.Invoke();
}
}
Первая команда, CreateNewUserCommand, делает "New-Mailbox". Это работает изолированно, если я прокомментирую другие команды.
Другие команды все делают некоторые вариации этого:
private Command CreateAddGroupCommand(string group)
{
var command = new Command("Add-ADGroupMember");
command.Parameters.Add("Identity", group);
command.Parameters.Add("Members", _username);
return command;
}
Так что мои проблемы:
1) Я не могу запустить AD Powershell команд Дистанционное 2) Я не могу загрузить модуль ActiveDirectory удаленно 3) Я не могу подключиться к различным конфигурациям оболочки Powershell
Помогите