0

我想获取我的 OU 中的所有用户,并仅列出作为任何组成员的用户的名称,其中包含单词管理器,并列出他们所属的组。

所以例如

TSmith 设备经理 经理夜班

Bkline 设备经理白班

我一直在尝试调整以下脚本。问题是,如果用户是任何名称为 manager 的组的成员,它会列出有关该用户的所有信息。所有组的最后一次登录时间都在 AD 中。

非常感谢您的帮助。

  Import-Module ActiveDirectory
  $users = Get-ADUser -searchbase "OU=East,DC=CHM,DC=com" -Filter * -Properties * 
  foreach ( $user in $users ) {
  $user
      $groups = $user | select -ExpandProperty memberof

      if ($groups -match 'manager') {
          $user.samaccountname
          $groups
          }
} 
4

1 回答 1

0

尝试这个:

Get-ADUser -SearchBase "OU=East,DC=CHM,DC=com" -Search -ResultSetSize $null -Filter * -Properties memberOf | Foreach-Object {

    # extract grouop names and check if they contain the word 'manager'
    $manager = ($_.memberof -replace '^CN=([^,]+),.+$','$1') -like "*manager*"

    if($manager)
    {
        New-Object -TypeName PSObject -Property @{
            UserName = $_.SamAccountName
            ManagerGroups = $manager -join ';'
        }   
    }
}
于 2012-05-03T10:14:49.947 回答