Я пытаюсь запустить команды powershell через веб-интерфейс (ASP.NET/C#), чтобы создавать почтовые ящики /etc в Exchange 2007. Когда я запускаю страницу с помощью Visual Studio (Cassini), страница правильно загружается, Однако, когда я запускаю его в IIS (v5.1), я получаю сообщение об ошибке "неизвестное имя пользователя или неверный пароль". Самая большая проблема, которую я заметил, заключалась в том, что Powershell был зарегистрирован как ASPNET вместо моей учетной записи Active Directory. Как заставить мою сессию Powershell пройти проверку подлинности с другой учетной записью Active Directory?
В принципе, script, который у меня до сих пор выглядит примерно так:
RunspaceConfiguration rc = RunspaceConfiguration.Create();
PSSnapInException snapEx = null;
rc.AddPSSnapIn("Microsoft.Exchange.Management.PowerShell.Admin", out snapEx);
Runspace runspace = RunspaceFactory.CreateRunspace(rc);
runspace.Open();
Pipeline pipeline = runspace.CreatePipeline();
using (pipeline)
{
pipeline.Commands.AddScript("Get-Mailbox -identity 'user.name'");
pipeline.Commands.Add("Out-String");
Collection<PSObject> results = pipeline.Invoke();
if (pipeline.Error != null && pipeline.Error.Count > 0)
{
foreach (object item in pipeline.Error.ReadToEnd())
resultString += "Error: " + item.ToString() + "\n";
}
runspace.Close();
foreach (PSObject obj in results)
resultString += obj.ToString();
}
return resultString;