Я недавно изучаю IIS и пытаюсь использовать IIS для размещения приложения для олицетворения пользователя-администратора, а затем выполнить команду powershell от имени администратора для добавления пользователей в локальные группы.
Внутри в ASP . NET код, я запускаю следующее:
private string RunScript()
{
StringBuilder stringBuilder = new StringBuilder();
PowerShell psExec = PowerShell.Create();
psExec.AddCommand(SCRIPT_LOCATION);
psExec.AddParameter("username",Username.Text);
psExec.AddParameter("computer", Computer.Text);
psExec.AddParameter("group", Group.Text);
Collection<PSObject> results;
stringBuilder.AppendLine(System.Security.Principal.WindowsIdentity.GetCurrent().Name);
results = psExec.Invoke();
//errors = psExec.Streams.Error.ReadAll();
foreach (PSObject result in results)
{
stringBuilder.AppendLine(result.ToString());
}
return stringBuilder.ToString();
}
В моем файле web.config добавлено следующее:
<authentication mode="Windows" />
<identity impersonate="True" userName="<My admin user name>" password="<My admin password>"/>
Итак, мой GetCurrent (). Имя кажется чтобы вернуть, что я, по крайней мере, запускаю приложение под своим именем администратора. Но при вызове моего сценария powershell:
Write-Output whoami
Возвращает, что я NT Authority \ System .
В моем IIS:
Идентификация пула приложений is "LocalSystem"
Аутентификация Настройка имеет ASP. NET Олицетворение (где администратор пользователя установлен как Specifi c пользователь ) включен.
Windows Аутентификация включена.
Поэтому при попытке добавить пользователя в группу появляется сообщение «Доступ запрещен» ». Так же, как проверка работоспособности, я подтвердил, что если я запускаю сценарий powershell отдельно от имени администратора, адд работает нормально.
Я уверен, что это что-то базовое c Я пропускаю, но если кто-нибудь, пожалуйста, предоставьте Любой совет или руководство, я был бы очень признателен.
Спасибо за ваше время.