Windows 2008R2에서 IIS 7.5에서 호스트되는 ASP.NET 사이트에서 powershell 스크립트를 실행하려고합니다.IIS에서 powershell을 두 번째 시도 할 때 실패했습니다.
이 사이트에는 사용자 이름과 암호 및 단추 두 개의 필드가 있습니다.
버튼을 누르면 다음 코드가 실행되고 출력이 사이트에 기록됩니다.
사이트에 로그인 한 첫 번째 사용자는 모든 것이 잘 작동합니다.
첫 번째 사용자는 cmdlet을 무한 횟수 실행할 수 있습니다.
하지만 다른 사용자 (kerberos 인증)로 사이트에 로그인하면 두 번째 사용자 (및 모든 추가 사용자)가 스크립트를 실행할 수 없습니다.
RunspaceFactory.CreateRunspace()가 예외와 함께 실패하고 있습니다.
예외는 무엇입니까? 좋은 질문, Message 및 innerException 비어 있습니다.
이벤트 로그도 비어 있습니다.
iisreset 명령 후에 다시 첫 번째 사용자가 스크립트를 실행할 수 있고 다른 모든 사용자는 스크립트를 실행할 수 있습니다.
또한 사용자 이름과 암호 필드를 사용하여 똑같은 작업을 수행하는 WinForms 응용 프로그램을 만들었습니다.
그래서 나는 powershell에 대한 IIS 연결에 문제가 있다고 가정하고 있습니다.
string serverNameFQDN = "myserver.mydomain.com";
char[] cArray = passwordClearText.ToCharArray();
SecureString secString = new SecureString();
foreach(char c in cArray)
{
secString.AppendChar(c);
}
PSCredential psCred = new PSCredential(Username, secString);
WSManConnectionInfo connectionInfo =
new WSManConnectionInfo(new Uri(String.Format("http://{0}:5985/wsman", serverNameFQDN)),
"http://schemas.microsoft.com/powershell/Microsoft.Powershell", psCred)
{
AuthenticationMechanism = AuthenticationMechanism.Kerberos,
OpenTimeout = 10000,
OperationTimeout = 30*60*1000;
};
using (Runspace remoteRunspace = RunspaceFactory.CreateRunspace(connectionInfo))
{
var pipe = remoteRunspace.CreatePipeline();
remoteRunspace.Open();
pipe.Commands.AddScript("some-cmdlet");
var res = pipe.Invoke();
// Get the output, irrelevent.
pipe.Stop();
pipe.Dispose();
remoteRunSpace.Close();
}
어떤 도움을 appriciate겠습니까 (메모장 (캔트 과거의 복사)에 기록 사소한 구문 오류를 포함 할 수 있습니다)
:
다음 코드는 각 버튼을 누를에서 실행!
고맙습니다.
왜 인증 대신에 - = 대신? – Eris
Typo .. 메모장에 글입니다. 죄송합니다. –