У меня есть следующий сценарий powershell ("azureaccounts.ps1"):
$accountExisted = @(Get-AzureAccount)
Write-Log $accountExisted.Count
Когда я запускаю его из Windows Powershell, он находит 5 учетных записей Azure.
Когда я запускаю его из CMD, он находит 5 учетных записей Azure. ("powershell azureaccounts.ps1" в cmd)
Но когда я запускаю скрипт из веб-приложения C#, он не находит никакой учетной записи.
С API-интерфейсом PowerShell:
PowerShell powerShell = PowerShell.Create();
powerShell.AddScript(@"C:\...\azureaccounts.ps1");
var results = powerShell.Invoke();
А также с объектом Process:
string sPowershellDir = @"C:\...\WindowsPowerShell\v1.0";
string sDeploymentScriptDir = @"C:\...\azureaccounts.ps1";
string sCommand = String.Format(@"powershell.exe -ExecutionPolicy ByPass -File {0}", sDeploymentScriptDir};
ProcessStartInfo procStartInfo = new ProcessStartInfo("cmd", "/c " + sCommand);
procStartInfo.UseShellExecute = false;
procStartInfo.WorkingDirectory = sPowershellDir;
Process oProcess = Process.Start(procStartInfo);
Одним из решений было бы выполнить Add-AzureAccount, но этот командлет запрашивает всплывающее окно, поэтому это не может произойти автоматически.
Какие-либо предложения?