根据排除的组成员身份更改活动目录用户属性

Change active directory users properties based on group membership with exclusions

我正在尝试更改属于某个 AD 组的用户的 AD 属性(Windows VPN,即路由和远程拨入服务)。这里没问题。但与此同时,我需要排除那些在其他一些组中具有额外成员资格的用户的更改属性。假设所有用户都在 "Office" 组中。我可以使用下面的脚本对它们全部禁用 VPN。但是在该组中还找到了另外是 "VPN always on" 组成员的用户。如何从脚本操作中排除它们。

这是我的工作脚本(不排除):

Get-ADGroupMember -Identity "Office" | where {$_.objectclass -eq "user"} | foreach { Set-ADUser -Identity $($_.distinguishedName) -clear msnpallowdialin}

几乎肯定有更好的方法,但是...

删除 -WhatIf 以实际进行更改

Get-ADGroupMember -Identity "Office" | where {$_.objectclass -eq "user"} | ForEach {
    Get-ADUser -Identity $_ -Properties memberof , msnpallowdialin | Where-Object {!($_.memberof -like "*VPN USer Group*")} | Set-ADUser -Clear msnpallowdialin -whatif
}