我試圖從未安裝Exchange cmdlet的遠程計算機運行遠程Powershell Cmdlet(Exchange 2010的cmdlet之一),在我的C#代碼中使用Powershell遠程處理(v2)。我有這樣的事情:從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();
這會返回一個RemoteException:術語「啓用-MailPublicFolder無法識別」錯誤。這是因爲本地計算機不熟悉Exchange Cmdlet。
但是,我不知道如何將Exchange模塊導入到我的運行空間。我找到了各種解決方案,但都是部分解決方案。有些人告訴我使用RunspaceConfiguration
添加Exchange 2010管理單元,但RunspaceFactory.CreateRunspace
接受RunspaceConfiguration
並沒有超載,並且還允許我通過WSManConnectionInfo
連接到遠程主機。 另一個解決方案是撥打AddScript
而不是AddCommand
,這似乎沒有引發異常,但是在沒有告訴我原因的情況下,似乎也沒有做任何事情。我寧願使用相對較強的類型(使用AddCommand)而不是傳遞隨機字符串。
是否有另一種不涉及在本地計算機上安裝模塊的方法?或者,除此之外,如何在本地安裝Exchange 2010 cmdlet?
你的連接URi是什麼? –
'https:// my.exchange.server/Powershell',並且我將「http://schemas.microsoft.com/powershell/Microsoft.Exchange」作爲ShellUri進行傳遞。 Exchange是否公開了公開Exchange cmdlet的其他端點? –