0

我在获取 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 运行手册中执行时,它在“import-pssession”命令上失败(因为从未设置过 $o365)。

我已经使用 PowerShell 脚本并在实际的 Runbook 服务器上手动运行它,它在那里的工作与在我自己的桌面上的工作一样 - 只有在 Orchestrator Runbook 中运行时它才会起作用。我只有几周的 Orchestrator 经验,不知道我会这么快就遇到这样的问题 - 我正在尝试在语言设置为“Powershell”的“运行 .Net 脚本”活动中运行脚本”,我认为这是推荐的方法。我尝试将脚本保存为运行手册服务器上的文件,然后使用“运行程序”活动使用此文件运行 Powershell(在我搜索期间由某人推荐),但这也不起作用。

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

4

3 回答 3

0

Is the Orchestrator service account that's running the script a member of the Exchange RBAC role groups? If not, it won't be allowed to connect to those Exchange management sessions.

于 2013-11-21T17:06:05.993 回答
0

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

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

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

于 2013-12-09T14:18:34.047 回答
0

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

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

于 2019-04-08T23:35:17.177 回答