【问题标题】:Get-AdUsers in a for-each loop with appended characters in powershell在 for-each 循环中获取 AdUsers,并在 powershell 中附加字符
【发布时间】:2015-10-29 12:11:14
【问题描述】:

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

  • 用户A
  • 用户B
  • UserAAdmin
  • 用户管理员

并且想要找到(当用户 A 被禁用时)UserAAdmin。这似乎很简单,但无论我尝试什么,我似乎都无法将 SAMACCOUNTNAME 与 like 或 equals 语句一起使用 - 即

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

(至于为什么,好吧,因为我正在使用的客户的结构使得他们所有的用户帐户都将 ADMIN 添加到他们的管理员帐户的末尾,我们想要找到任何禁用的用户帐户并找到 (然后禁用)关联的管理员帐户)。

谢谢

【问题讨论】:

    标签: powershell foreach


    【解决方案1】:

    Avshalom 的答案是正确的,但是两次查询你的 AD 效率不高而且没用…… 拥有所有禁用用户后,您就可以过滤

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

    【讨论】:

      【解决方案2】:

      如果我没听错的话,你可以试试这个……

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

      【讨论】:

        猜你喜欢
        • 2021-09-28
        • 2015-11-10
        • 2017-07-10
        • 1970-01-01
        • 1970-01-01
        • 2019-07-26
        • 1970-01-01
        • 2021-01-26
        • 2012-11-13
        相关资源
        最近更新 更多