PowerShell 스크립트를 실행하기 위해 ASP.NET MVC 웹 응용 프로그램을 개발했습니다.ASP.NET PowerShell 가장 :
VS 웹 서버를 사용하고 있으며 스크립트를 잘 실행할 수 있습니다.
그러나 사용자는 자신의 사용자 계정이 허용하지 않는 작업을 수행하기 위해 AD에 대해 스크립트를 실행할 수 있어야합니다.
따라서내가 파워 쉘 실행 영역 만들기 전에 신원을 전환하는 가장을 사용하고 있습니다 : 나는 도메인 관리자 계정을 사용하여 테스트 한
Runspace runspace = RunspaceFactory.CreateRunspace(config);
var currentuser = WindowsIdentity.GetCurrent().Name;
if (runspace.RunspaceStateInfo.State == RunspaceState.BeforeOpen) {
runspace.Open();
}
및 runspace.Open()를 호출 할 때 나는 다음과 같은 예외를 얻을 :
보안 예외 설명 : 응용 프로그램이 보안 정책에서 허용하지 않는 작업을 수행하려고 시도했습니다. 이 응용 프로그램에 필요한 사용 권한을 부여하려면 시스템 관리자에게 문의하거나 구성 파일에서 응용 프로그램의 신뢰 수준을 변경하십시오. 예외 정보 : System.Security.SecurityException : 요청 된 레지스트리 액세스가 허용되지 않습니다.
웹 응용 프로그램이 완전히 신뢰되어 실행 중이며 컴퓨터의 로컬 관리자 그룹에 가장을 사용하고있는 계정을 명시 적으로 추가했습니다 (도메인 관리자 그룹이 이미 있더라도).
이 같은 평가 어떤 도움도 유사한 방법으로 가장을 수행 할 advapi32.dll의로 LogonUser 전화를 사용하고 순간에 쇼 스토퍼의 비트입니다.
감사 벤
하이 제임스, 나는 경우 원래이 게시물에 건너 않았고, 나를 위해 작동하지 않았다. 그러나 오늘 다른 컴퓨터에서 시도한 후 aspnet.config 파일을 변경 한 후 다시 부팅했는지 확인하는 것이 중요합니다. 다른 사용자를 성공적으로 가장 할 수있었습니다. 감사 –