Powershell - Add-LocalGroupMember - 成员存在时静音

fia*_*iat 3 powershell-v5.0

我可以使用Add-LocalGroupMember将用户添加到本地组:

Add-LocalGroupMember -Group  "Administrators" -Member  "foobar"
Run Code Online (Sandbox Code Playgroud)

但它不是幂等的。如果用户已存在,则会收到此错误

Add-LocalGroupMember : foobar 已经是组管理员的成员

当您想重复运行此命令时,使此命令不会出错的最佳方法是什么?

原因是这是 Octopus 部署的一部分,我不想对如此简单的事情使用预烘焙步骤。

jsc*_*ott 6

您可以将包装器简化为 try/catch 块。此示例仅在成员已存在时捕获,因此您仍然可以评估和处理其他错误。

try {
    Add-LocalGroupMember -Group $group -Member $member -ErrorAction Stop
} catch [Microsoft.PowerShell.Commands.MemberExistsException] {
    Write-Warning "$member already in $group"
}
Run Code Online (Sandbox Code Playgroud)