![](/img/trans.png)
[英]PowerShell Add users to AD group via CSV - script not adding users
[英]Automate adding users into AD group if not found
我正在嘗試設置一個 PS 腳本來添加成員(如果他們不屬於某個組)並將其作為任務運行。 有人可以驗證代碼並提供反饋嗎? 謝謝。
$GROUP = 'CN=Group1,OU=SomeOU,DC=domain,DC=local'
Get-ADUser -Filter * -SearchBase "DC=domain,DC=local" -Properties MemberOf |
Where-Object {$_.MemberOf -notcontains $GROUP } |
ForEach-Object { Add-ADGroupMember -Identity $GROUP -Members $_ }
代碼看起來不錯,但可以通過利用Active Directory 過濾器來提高效率:
$group = 'CN=Group1,OU=SomeOU,DC=domain,DC=local'
Get-ADUser -LDAPFilter "(!memberof=$group)" -SearchBase "DC=domain,DC=local" |
Add-ADPrincipalGroupMembership -MemberOf $group
-LDAPFilter "(!memberof=$group)"
搜索所有不屬於您的組的用戶,這比查詢搜索庫中的所有用戶然后使用powershell進行過濾要有效得多。
我可能會改用Add-ADPrincipalGroupMembership
,它將用戶作為管道輸入並將要添加的組作為參數。 應該表現好一點。
Get-ADUser -Filter * -SearchBase "DC=domain,DC=local" -Properties MemberOf |
Where-Object MemberOf -notcontains $GROUP |
Add-ADPrincipalGroupMembership -MemberOf $GROUP
像這樣的東西應該可以在不轉儲每個用戶的情況下工作(-ne 不會做你想做的事,過濾器也不會采用 -notcontains)。 -eq 與左側的數組一起使用。 -not 具有高優先級,因此需要括號。
get-aduser -filter "-not (memberof -eq '$group')" -property memberof -SearchBase 'DC=domain,DC=local'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.