I opracowali ASP.NET MVC Web Application do wykonywania skryptów PowerShell.ASP.NET PowerShell personifikacji
używam VS serwer WWW i może wykonywać skrypty w porządku.
jednak wymogiem jest to, że użytkownicy są w stanie wykonywać skrypty przed ne do wykonywania czynności, które ich własne konta użytkowników nie mogą zrobić.
Dlatego używam personifikacji przełączyć tożsamość przed utworzeniem runspace PowerShell:
Runspace runspace = RunspaceFactory.CreateRunspace(config);
var currentuser = WindowsIdentity.GetCurrent().Name;
if (runspace.RunspaceStateInfo.State == RunspaceState.BeforeOpen) {
runspace.Open();
}
Ja testowałem przy użyciu konta administratora domeny i otrzymuję następujący wyjątek podczas wywoływania runspace.Open():
Wyjątek bezpieczeństwa Opis: aplikacja próbował wykonać operację niedozwolone przez politykę bezpieczeństwa. Aby udzielić tej aplikacji wymaganego pozwolenia, skontaktuj się z administratorem systemu lub zmień poziom zaufania aplikacji w pliku konfiguracyjnym. Szczegóły wyjątku: System.Security.SecurityException: Żądany dostęp do rejestru jest niedozwolony.
Aplikacja internetowa działa w pełnym zaufaniu i jednoznacznie dodałem konto, którego używam do podszywania się pod grupę lokalnych administratorów komputera (mimo że grupa administratorów domeny już tam była).
Używam Advapi32.dll wywołanie LogonUser wykonać personifikację w sposób podobny do tego postu (http://blogs.msdn.com/webdav_101/archive/2008/09/25/howto-calling-exchange-powershell-from-an-impersonated-thead.aspx)
Każda pomoc mile widziane, ponieważ jest to trochę pokaż korkiem w tej chwili.
Dzięki Ben
Cześć James, I nie natknąć się ten post, gdy pierwotnie i to nie działa dla mnie. Jednak po wypróbowaniu dzisiaj na innym komputerze (i upewnieniu się, że zrobiłem restart po zmianie pliku aspnet.config - ważne!) Udało mi się z powodzeniem podszyć się pod innego użytkownika. Dzięki –