1

Я разработал веб-роль для управления Azure VM, которая работает локально, но НЕ, когда она развернута в Cloud Service.Как запустить Azure PowerShell cmd из облачного сервиса

Я выполнил cmd, который находится в веб-роли в PowerShell через RDP-соединение с облачной службой, поэтому я знаю, что PowerShell v3.0 и Azure cmd работают нормально.

Первые шаги У меня были некоторые разрешения и проблемы с сертификатами, но проблема в том, что я не вижу никакой ошибки в средстве просмотра событий.

Я использую PowerShell.Create() из System.Automation.dll

string script = "Set-ExecutionPolicy Unrestricted -Force 
script = "Import-Module \"D:\\Program Files (x86)\\Microsoft SDKs\\Windows Azure\\PowerShell\\Azure\" 2 >> C:\errorp.out"; 
script = "Set-AzureSubscription –DefaultSubscription \"Test Environment\""; 
script = "Get-AzureVM " + vm 

Я пытаюсь получить ошибку во всех командах с "2 >> C: \ errorp.out" (фактически это во всех командах, но не копировало здесь), но создает пустой файл.

У меня отсутствует какая-либо дополнительная конфигурация, чтобы иметь возможность это сделать?

ответ

0

Глупая ошибка: я создавал новую оболочку для каждой строки сценария

var shell = PowerShell.Create(); 

Таким образом, во второй строке, после того, как сделать «Import-Module Azure», это второй оболочки не имели доступа к командам Azure. я получаю это благодаря @Rick для ввести меня $ ошибку, однако может получить работу это в C#, что я сделал вместо этого:

if (shell.Streams.Error.Count > 0) 
{ 
    for (int i = 0; i < shell.Streams.Error.Count; i++) 
    { 
     ResultBox.Text += "Error: " + shell.Streams.Error[i] + "\r\n"; 
    } 
} 
1

Переменная $ error будет иметь вашу историю ошибок. Например

$error | format-list -property * 
+0

Собственно проверка $ ошибок, чтобы увидеть, если я могу получить больше информации, проблема Я не знаю, как это сделать, т. Е. При выполнении Azure cmd я должен приводить результаты следующим образом: (Microsoft.WindowsAzure.Management.ServiceManagement.Model.PersistentVMRoleContext) (результаты [0] .ImmediateBaseObject)). InstanceStatus – Jorge

+1

If вы добавите -force до конца, он предоставит вам дополнительную информацию. Например, $ error | format-list -property * -force –