我不能让这个脚本给出正确的输出,我想检查一个用户(来自Users.csv)是否存在于一个组中(每个域中有一个组,这是一个多域环境)。 / p>
我认为问题在于第二个foreach
。
现在输出是每个域的正确行数,但他们都说:
组中不存在aa@aa.aa bb@bb.bb PSO_StdPasswordPolicyWithNoAccountLockout
它应该说:
aa@aa.aa在小组中不存在 PSO_StdPasswordPolicyWithNoAccountLockout
bb@bb.bb在组中不存在 PSO_StdPasswordPolicyWithNoAccountLockout
Users.csv包含EmailAddress
,DisplayName
,objectGUID
Clear-Host
$user = Import-Csv ".\Users.csv"
$group = "PSO_StdPasswordPolicyWithNoAccountLockout"
$domains = (Get-ADForest).domains
foreach ($domain in $domains) {
Write-Host ="********** - $domain - **********" -ForegroundColor Yellow
$members = Get-ADGroupMember -Identity $group -Server $domain | Select-Object objectGUID
$exportMembers = $members | Export-Csv .\RemoveUsersTemp\$domain.csv -NoTypeInformation
$importFile = ".\RemoveUsersTemp\$domain.csv"
$amembers = import-csv $importFile | Select-Object objectGUID
foreach ($amember in $amembers) {
If ($amembers.objectGUID -contains $user.objectGUID) {
Write-Host $user.EmailAddress"exists in the group $group " -ForegroundColor Green
}
Else {
Write-Host $user.EmailAddress"does not exists in the group $group" -ForegroundColor Red
}
}
}
答案 0 :(得分:0)
这是因为您在第二个循环中使用了$user
,但是您没有循环$user
,所以您要引用整个$user
数组,其内容为{ {1}}。