gpt4 book ai didi

powershell - 调用命令的问题

转载 作者:行者123 更新时间:2023-12-02 23:09:38 25 4
gpt4 key购买 nike

在我的脚本中,我想让 Exchange Online 通讯组成员加入我的数组 $members_id

我想在远程服务器上运行 cmdlet Get-DistributionGroupMember,如下所示:

Invoke-Command -Session $Session -ScriptBlock {
$members_id = Get-DistributionGroupMember -Identity "power_shell_test"
} -ArgumentList $members_id

运行后出现错误:

The syntax is not supported by this runspace. This can occur if the runspace is in no-language mode.

image

当我删除 $members_id = 时,它运行良好。

如果您知道为什么它会这样工作,请告诉我。

最佳答案

我不太清楚为什么会出现错误(这可能是因为您打开 $Session 的方式),但是如果您想要远程命令的输出 Get- DistributionGroupMember 在局部变量 $members_id 中,您需要将代码更改为如下内容:

$members_id = Invoke-Command -Session $Session -ScriptBlock {
Get-DistributionGroupMember -Identity "power_shell_test"
}

仅当您想将要解析其成员的组的 ID 传递到脚本 block 时,才使用 -ArgumentList。您可以使用 Param() 指令将参数分配给脚本 block 内的变量:

$members_id = Invoke-Command -Session $Session -ScriptBlock {
<b>Param($id)</b>
Get-DistributionGroupMember -Identity <b>$id</b>
} <b>-ArgumentList $group_id</b>

或使用 automatic variable $参数:

$members_id = Invoke-Command -Session $Session -ScriptBlock {
Get-DistributionGroupMember -Identity <b>$args[0]</b>
} <b>-ArgumentList $group_id</b>

或者,您可以通过 using: scope modifier 访问脚本 block 之外的变量:

$members_id = Invoke-Command -Session $Session -ScriptBlock {
Get-DistributionGroupMember -Identity <b>$using:group_id</b>
}

关于powershell - 调用命令的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46073647/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com