내 C# 코드에서 Powershell Remoting (v2)을 사용하여 Exchange cmdlet을 설치하지 않은 원격 컴퓨터에서 원격 Powershell Cmdlet (Exchange 2010의 cmdlet 중 하나)을 실행하려고합니다. 이는 RemoteException을 반환C#에서 원격 cmdlet 호출 Runspace
var connection = new WSManConnectionInfo("http://my.exchange.srv/PowerShell", "http://schemas.microsoft.com/powershell/Microsoft.Exchange", credentials);
var runspace = RunspaceFactory.CreateRunspace(connection);
var ps = PowerShell.Create();
ps.Runspace = runspace;
runspace.Open();
var results = ps.AddCommand("Enable-MailPublicFolder").AddArgument(folderId).Invoke();
: 용어 '사용-MailPublicFolder가 인식되지 않습니다'오류 나는 이런 식으로 뭔가가있다. 로컬 컴퓨터가 Exchange Cmdlet에 익숙하지 않기 때문입니다.
그러나 Exchange 모듈을 내 runspace로 가져 오는 방법을 알지 못합니다. 다양한 솔루션을 찾았지만 모두 부분적입니다. 일부에서는 RunspaceConfiguration
을 사용하여 Exchange 2010 스냅인을 추가하라고 지시하지만 RunspaceFactory.CreateRunspace
에 대한 과부하는 RunspaceConfiguration
을 허용하며 WSManConnectionInfo
을 원격 호스트에 연결하도록 허용합니다. 또 다른 해결책은 AddCommand
대신 AddScript
을 호출하는 것입니다. 예외는 발생하지 않는 것으로 보이지만 그 이유를 알지 못하면 아무 것도하지 않는 것 같습니다. 오히려 무작위 문자열을 전달하는 것보다 (AddCommand를 사용하여) 상대적으로 강력한 형식으로 작업하는 것이 좋습니다.
로컬 컴퓨터에 모듈을 설치하지 않는 다른 방법이 있습니까? 또는 Exchange 2010 cmdlet를 로컬에 설치하려면 어떻게해야합니까?
URi와 어떤 관계가 있습니까? –
'https : // my.exchange.server/Powershell'이며 ShellUri로 "http://schemas.microsoft.com/powershell/Microsoft.Exchange"를 전달합니다. Exchange에서 Exchange cmdlet을 노출하는 다른 끝점을 노출합니까? –