我在編寫一個腳本,如果用戶不在特定的OU中,它們會從安全組中刪除用戶。比較來自Get-ADUser陣列的值
我在將OU的用戶數組與安全組中的用戶數組進行比較時遇到問題。
要測試我通過$testGroup
和$userList
中的內容循環播放。兩者看起來都與我相似,但很明顯,他們並不比較,只是輸出$userList -contains $user
給了我一堆false
結果,即使它應該是真的。
$userList = @()
$testGroup = @()
#Get current members of group. Using this instead of get-adgroupmember due to speed
$testGroup = Get-AdGroup "testGroup" -properties member | select-object -ExpandProperty member | get-aduser
#Define OUs that we want to get members from
$OUlist = "OU1","OU2"
#Populate $userList with members of each OU
$OUlist | foreach {
$userList += get-aduser -filter {Enabled -eq $True} -SearchBase "OU=$_,DC=dc,DC=dc2,DC=dc3"
}
#Check the group for anyone no longer in one of the approved OUs
$testGroup | foreach {
if($userList -notcontains $user){
#remove the user from $testGroup
}
}
不知道,如果你是知道的,但是當你使用$ X | foreach,你需要開始使用管道。所以在這種情況下,個人用戶是$ _(當前項目)。我不確定$用戶在這裏,但你可能需要用$ _替換它。 –