繁体   English   中英

for-each循环中的Get-AdUsers,在Powershell中附加了字符

[英]Get-AdUsers in a for-each loop with appended characters in powershell

我试图得到一个(一行)答案以获取用户列表(基于get-aduser的过滤器),然后使用该列表对用户名的扩展版本进行搜索匹配-例如,我有:

  • 用户A
  • 用户B
  • UserAAdmin
  • UserBAdmin

并想查找(禁用用户A时)UserAAdmin。 这似乎很简单,但是无论我如何尝试,我似乎都无法将SAMACCOUNTNAME与like或equals语句一起使用。

Get-ADUser -Filter {Enabled -eq $false} -Properties sAMAccountName |
ForEach {Get-AdUser -Filter {samaccountname -like ($_.samaccountname + "Admin")}}

(关于为什么,好吧,因为与我合作的客户端具有这样的结构,即所有用户帐户的管理员帐户末尾都添加了ADMIN,我们希望找到所有禁用的USER帐户并找到(然后禁用)相关的管理员帐户)。

谢谢

如果我理解正确,您可以尝试...

$DisabledUsers = Get-ADUser -Filter {Enabled -eq $false}
Foreach ($User in $DisabledUsers)
    {
    $Match = $User.SamAccountName + '*'
    $MatchedUsers = Get-AdUser -Filter {samaccountname -like $match}

        foreach ($MatchUser in $MatchedUsers)
        {
        "You Can do here what you want"
        }
    }

Avshalom的答案是正确的,但是两次查询您的AD效率不高且无用...一旦您拥有所有残疾用户,您就可以过滤

 $Users = Get-ADUser -Filter {Enabled -eq $false}
Foreach ($User in $Users)
    {
    $Match = "ADM-"+$User.SamAccountName
    $Users|?{$_.samaccountname -like $match}


    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM