Мы пытаемся автоматизировать большое количество наших задач обслуживания Azure/обслуживания, используя комбинацию очередей Azure Service Bus и Azure Worker Roles. Короче говоря, концепция выглядит следующим образом ....Установить WSManConnection с ролью Azure Worker
- задача технического обслуживание размещена С.Б. очередь
- Worker роль прослушивает задачи на
- Worker роли SB Queue подключается к желаемому VM/веб-роли/Облачный сервис и выполняет команду удаленной команды powershell
На практике это работает, как ожидается, при работе в среде разработки, однако после публикации рабочей роли соединение с удаленной связью завершается с ответом «Доступ лишен». Код, чтобы установить соединение следующим образом ...
PSCredential cred = new PSCredential(config.Username, config.PrimaryPassword);
WSManConnectionInfo connection = new WSManConnectionInfo(true, config.PrimaryServer, 5986, "/wsman", "http://schemas.microsoft.com/powershell/Microsoft.PowerShell", cred);
using (Runspace runspace = RunspaceFactory.CreateRunspace(connection))
{
runspace.Open();
using (PowerShell shell = PowerShell.Create())
{
shell.Runspace = runspace;
// DO SOMETHING HERE
shell.Invoke();
}
runspace.Close();
}
Первоначально, я подозревал, что это был вопрос сертификат CA, однако я с тех пор связан с ролью работника через RDP и подтвердил, что сертификаты в настоящее время развернуто правильно. Кроме того, мне также удалось установить соединение с целевым сервером с помощью команды «winrs -r:», также используя соединение удаленного рабочего стола.
В качестве подтверждения рабочая роль также выполняется с повышенными разрешениями.
Любая помощь с этим была бы оценена
Заранее спасибо