Powershell 调用命令的问题

Powershell 调用命令的问题,powershell,exchange-server,Powershell,Exchange Server,在我的脚本中,我希望将Exchange Online通讯组成员添加到我的阵列$members\u id 我想在远程服务器上运行cmdletGet DistributionGroupMember,使其看起来像这样: Invoke-Command -Session $Session -ScriptBlock { $members_id = Get-DistributionGroupMember -Identity "power_shell_test" } -ArgumentList $mem

在我的脚本中,我希望将Exchange Online通讯组成员添加到我的阵列
$members\u id

我想在远程服务器上运行cmdlet
Get DistributionGroupMember
,使其看起来像这样:

Invoke-Command -Session $Session -ScriptBlock {
    $members_id = Get-DistributionGroupMember -Identity "power_shell_test"
} -ArgumentList $members_id
$members_id = Invoke-Command -Session $Session -ScriptBlock {
    Get-DistributionGroupMember -Identity "power_shell_test"
}
运行此命令后,我得到一个错误:

此运行空间不支持该语法。如果运行空间处于无语言模式,则可能发生这种情况

当我删除
$members\u id=
时,它运行良好


请告诉我您是否知道它为什么会这样工作。

我不太清楚您为什么会出现错误(可能是因为您如何打开
$Session
),但是,如果您想在本地变量
$members\u id
中输出远程命令
Get DistributionGroupMember
,则需要将代码更改为如下内容:

Invoke-Command -Session $Session -ScriptBlock {
    $members_id = Get-DistributionGroupMember -Identity "power_shell_test"
} -ArgumentList $members_id
$members_id = Invoke-Command -Session $Session -ScriptBlock {
    Get-DistributionGroupMember -Identity "power_shell_test"
}
仅当要将要解析其成员的组的ID传递到scriptblock中时,才使用
-ArgumentList
。您可以使用
Param()
指令将参数分配给scriptblock内的变量:

$members_id = Invoke-Command -Session $Session -ScriptBlock {
    Param($id)
    Get-DistributionGroupMember -Identity $id
} -ArgumentList $group_id
或者,您可以通过
使用:
访问scriptblock之外的变量:

$members\u id=Invoke命令-会话$Session-脚本块{
使用:group\u id获取DistributionGroupMember-Identity$
}
我认为“调用命令的问题”不是一个有意义的标题。。。