Orchestrator不会运行PowerShell云交换任务

nxowjjhe  于 2022-11-10  发布在  Shell
关注(0)|答案(3)|浏览(124)

我在获取在基于云的Exchange资源中查询对象的PowerShell脚本以在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-psession”命令(因为从未设置过$o365)。
我已经获取了PowerShell脚本,并在实际的Runbook服务器上手动运行它,它在那里和在我自己的桌面上运行得一样好--只有在Orchestrator Runbook中运行时,它才不会运行。我只有几周的Orchestrator经验,并不知道我会这么快就遇到这样的问题--我正尝试在“运行.Net脚本”活动中使用设置为“PowerShell”的语言来运行脚本,我相信这是推荐的方法。
我尝试将脚本另存为Runbook服务器上的一个文件,然后使用“Run Program”活动使用此文件(在我搜索期间有人推荐的)运行PowerShell,但也不起作用。

kjthegm6

kjthegm61#

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

vcudknz3

vcudknz32#

事实证明,该问题与客户端的防火墙和他们设置为供Orchestrator使用的服务帐户的代理设置有关。根据策略,他们(客户端)不会授予服务帐户互联网访问权限。
出现了几种不同的解决方案:一种是从CodePlex安装PowerShell集成包并使用它--CodePlex PowerShell活动允许我显式设置活动的安全上下文,这让我可以通过在确实可以访问互联网的帐户下运行活动来绕过他们的防火墙问题。
第二个解决方案是安装Exchange Admin集成包并配置到云主机的连接。使用“运行Exchange PowerShell命令”活动而不是更通用的“运行.NET脚本”活动也允许代码按预期工作。

6jjcrrmo

6jjcrrmo3#

Orchestrator仍然是x86,并且脚本中的命令只能在x64下运行。在您的x86 ISE中进行测试,会看到相同的故障。我的解决方法是使用系统活动列表中的“Run Program”活动调用该脚本。
程序执行计算机=我总是从初始化活动开始,然后在此处订阅计算机程序路径:C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe参数:脚本工作文件夹.ps1的完整路径:C:\Temp

相关问题