使用 powershell 将所有用户添加到 AD 组中,不包括少数用户

Adding all users to a AD group excluding a few ones using powershell

我有这个疑问,

必须将 active directory 中的每个用户都添加到一个组中,但有一些用户不必在该组中,

我已经知道这组被歧视用户的信息..

所以,有一种方法可以执行 powershell 命令,我指定这组用户并将与该组不匹配的每个用户都添加到组中吗?

我正在制作一个 csv 文件,其中包含 SamAccountName

的所有用户
Get-AdUser -Filter * | Select SamAccountName | Export-CSV c:\List.csv

,所以我可以添加第二列,其中包含组名,之后我想在 powershell 中添加一个 where 子句,以将 SamAccountName 与另一个 csv 与一组受歧视的用户进行比较,但我没有不知道这样行不行...

有简单的方法吗?

你有很多选择。我会创建一个带有排除项的平面数组,然后在 Where 子句中使用它。

类似于:

$ExcludedUsers =
@(
    "user1"
    "user2"
    #...
)

$GroupMembers = Get-AdUser -Filter * | Where-Object{ $ExcludedUsers -notcontains $_.samAccountName} 
Add-ADGroupMember -Identity <GroupName> -Members $GroupMembers

如果您要从 csv 文件中提取排除项,您可以使用如下内容:

$ExcludedUsers = ( Import-Csv C:\ExcludedUsers.csv ).samAccountName
$GroupMembers  = Get-AdUser -Filter * | Where-Object{ $ExcludedUsers -notcontains $_.samAccountName} 
Add-ADGroupMember -Identity <GroupName> -Members $GroupMembers

如果有帮助请告诉我。

$ExcludedUsers = @()
import-csv C:\ExcludedUsers.csv | ForEach-Object { $ExcludedUsers += $_.SamAccountName}

$GroupMembers = (Get-AdUser -Filter * | Where-Object{ $ExcludedUsers -notcontains $_.samAccountName})

Add-ADGroupMember -Identity GroupName -Members $GroupMembers

这就是我使用的代码,如果这对以后的任何人有帮助的话。 感谢史蒂夫