Orchestrator不会运行PowerShell Cloud Exchange任务

时间:2013-11-21 16:36:02

标签: powershell cloud exchange-server sccm remote-management

我在获取PowerShell脚本时遇到问题,该脚本会查询基于云的Exchange资源中的对象,以便在Orchestrator Runbook中工作。

PowerShell脚本(在我的台式计算机的命令行中正常工作,在ISE中单步执行)可以设置到云的远程管理会话,如下所示:

try 
{
$user = "username@domain.com"
$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经验,并且不知道我这么快就遇到了这样的问题 - 我试图在“运行.Net脚本”活动中运行脚本,语言设置为“Powershell” ,“我认为这是推荐的方法。我已经尝试将脚本保存为Runbook服务器上的文件,然后使用“运行程序”活动使用此文件运行Powershell(在我搜索期间由某人推荐),这也不起作用。

任何帮助将不胜感激。谢谢。

3 个答案:

答案 0 :(得分:0)

运行脚本的Orchestrator服务帐户是否是Exchange RBAC角色组的成员?如果没有,则不允许连接到这些Exchange管理会话。

答案 1 :(得分:0)

问题证明与客户端设置的Orchestrator使用的服务帐户的防火墙和代理设置有关。他们(客户)不会根据政策授予服务帐户Internet访问权限。

出现了几个不同的解决方案:一个是从CodePlex安装PowerShell集成包并使用它 - CodePlex PowerShell活动允许我明确设置活动的安全上下文,这让我可以解决他们的防火墙问题在可以访问Internet的帐户下运行活动。

第二个解决方案是安装Exchange Admin集成包并配置与云主机的连接。使用"运行Exchange PowerShell命令"活动而不是更通用的#34;运行.NET脚本"活动还允许代码按预期工作。

答案 2 :(得分:0)

Orchestrator仍为x86,脚本中的命令仅在x64中运行。 在您的x86 ISE中进行测试,并看到相同的故障。 我的解决方法是使用“系统活动”列表中的“运行程序”活动来调用脚本。

程序执行 计算机=我总是从初始化活动开始,然后在这里订阅计算机 程序路径:C:\ Windows \ System32 \ WindowsPowerShell \ v1.0 \ powershell.exe 参数:脚本.ps1的完整路径 工作文件夹:c:\ temp