在我的脚本中,我希望将Exchange Online通讯组成员添加到我的阵列$members_id
。
我想在远程服务器上运行cmdlet Get-DistributionGroupMember
,看起来像这样:
Invoke-Command -Session $Session -ScriptBlock {
$members_id = Get-DistributionGroupMember -Identity "power_shell_test"
} -ArgumentList $members_id
运行后我收到错误:
此运行空间不支持该语法。如果运行空间处于无语言模式,则会发生这种情况。
当我删除$members_id =
时,它运行良好。
请告诉我你是否知道为什么会这样。
答案 0 :(得分:4)
我不太确定您为什么会收到错误(可能是因为您打开了$Session
的方式),但是如果您想要输出远程命令{\ n} {1}}在本地变量Get-DistributionGroupMember
中,您需要将代码更改为以下内容:
$members_id
仅当您要将要解析其成员的组的ID传递到scriptblock时才使用$members_id = Invoke-Command -Session $Session -ScriptBlock {
Get-DistributionGroupMember -Identity "power_shell_test"
}
。您可以使用-ArgumentList
指令将参数分配给scriptblock中的变量:
Param()
或使用automatic variable $members_id = Invoke-Command -Session $Session -ScriptBlock {
Param($id)
Get-DistributionGroupMember -Identity $id
} -ArgumentList $group_id
:
$args
或者,您可以通过$members_id = Invoke-Command -Session $Session -ScriptBlock {
Get-DistributionGroupMember -Identity $args[0]
} -ArgumentList $group_id
scope modifier:
using: