Powershell 检查组中是否存在用户

Powershell 检查组中是否存在用户,powershell,active-directory,powershell-4.0,Powershell,Active Directory,Powershell 4.0,我无法使此脚本提供正确的输出,我想检查组中是否存在用户(来自Users.csv)(每个域中有一个组,这是一个多域环境) 我认为问题在于第二个foreach。 现在,输出是每个域的正确行数,但它们都表示: aa@aa.aa bb@bb.bb组PSO\u stdpasswordPolicyWith NoAccountLockout中不存在 应该说: aa@aa.aa组中不存在 PSO_stdpasswordpolicy无账户锁定 bb@bb.bb组中不存在 PSO_stdpasswordpolicy

我无法使此脚本提供正确的输出,我想检查组中是否存在用户(来自Users.csv)(每个域中有一个组,这是一个多域环境)

我认为问题在于第二个
foreach
。 现在,输出是每个域的正确行数,但它们都表示:

aa@aa.aa bb@bb.bb组PSO\u stdpasswordPolicyWith NoAccountLockout中不存在

应该说:

aa@aa.aa组中不存在 PSO_stdpasswordpolicy无账户锁定

bb@bb.bb组中不存在 PSO_stdpasswordpolicy无账户锁定

Users.csv包含
电子邮件地址
显示名称
对象GUID

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
        }
    }

}

这是因为您在第二个循环中使用了
$user
,但没有循环
$user
,因此您引用的是整个
$user
数组,该数组的内容为
users.csv

$user循环到哪里?$user.objectGUID将如何返回所有GUID。在用户列表中放置另一个循环,并在第二个循环中迭代。我明白你的意思,但我不太确定我是如何做到的。