2013-11-21 53 views
0

我在獲取PowerShell腳本時遇到問題,該腳本查詢基於雲的Exchange資源中的對象以在Orchestrator Runbook中工作。Orchestrator將無法運行PowerShell Cloud Exchange任務

PowerShell腳本(這從我的桌面計算機的命令行工作正常,並通過它在ISE步進時)遠程管理會話的建立到雲,看起來像這樣:

try 
{ 
$user = "[email protected]" 
$pword = convert-toSecureString -string "password" -asplaintext -force 
$creds = new-object -typename system.management.automation.pscredential -argumentlist $user, $pword 
$o365 = new-pssession -configurationname Microsoft.Exchange -connectionuri https://ps.outlook.com -credential $creds -authentication basic - allowredirection 
import-pssession $o365 -allowclobber -prefix o365 
get-o365Mailbox 'Doe, John' 
} 
catch 
{ 
throw $_.exception 
} 

正如我所說,當我在桌面上的編輯器中遍歷它時運行正常,但在Orchestrator Runbook中執行時,它在「import-pssession」命令上失敗(因爲$ o365從未設置)。

我已經採用了PowerShell腳本並在實際的Runbook服務器上手動運行它,它在它的工作以及它在我自己的桌面上運行 - 它只在Orchestrator Runbook內運行時纔會起作用。我只有幾個星期使用Orchestrator的經驗,並不知道我遇到了這麼快的問題 - 我試圖在「Run .Net Script」活動中運行腳本,並將語言設置爲「Powershell ,「我認爲這是推薦的方法。我已經嘗試將腳本保存爲Runbook服務器上的文件,然後使用「Run Program」活動來使用此文件運行Powershell(在我的搜索過程中由某人推薦),但這也不起作用。

任何幫助,將不勝感激。謝謝。

回答

0

是否將腳本作爲Exchange RBAC角色組的成員運行的Orchestrator服務帳戶?否則,將不允許連接到這些Exchange管理會話。

+0

我不確定這會是相關的 - 似乎安全上下文是由「new-pssession」命令中指定的憑據設置的。當從任何位置(Runbook服務器或Internet上的任何其他計算機)從PowerShell命令行運行腳本時,這些憑據似乎令人滿意, –

0

問題原來與它們設置爲由Orchestrator使用的服務帳戶的客戶端防火牆和代理設置有關。他們(客戶)不會授予服務帳戶因特網訪問作爲政策。

出現了兩種不同的解決方案:一種是從CodePlex安裝PowerShell集成包,然後使用它 - CodePlex PowerShell活動允許我明確設置活動的安全上下文,從而可以解決防火牆問題通過在可以訪問Internet的帳戶下運行該活動。

第二種解決方案是安裝Exchange管理集成包並配置到雲主機的連接。使用「運行Exchange PowerShell命令」活動而不是更通用的「運行.NET腳本」活動也允許代碼按預期工作。

相關問題