列出特定 OU+组中的用户名

列出特定 OU+组中的用户名

我需要编写一个 Powershell 脚本来列出特定 OU + 用户所属的组中的用户名(但我需要列出特定的组而不是查看所有组)。

例如:OU:A

OU A 下的用户

他们是 XYZ 群组的成员……

我发现了这个:

Get-ADUser -Filter * -Properties samaccountname,memberof,description -SearchBase "OU" | 
 
foreach {
 
  $sam = $_.samaccountname
  $description = $_.description
 

  foreach ($group in $_.memberof) {
 
    New-Object PSObject -Property @{
 
      UserName = $_.samaccountname;
      Desc = $_.description
      
     Group = ($group -split ",")[0].Substring(3) 
 
    }
 
  }
 
} |select  username,Desc,Group 

但是它会向用户列出所有组,我想显示所有用户及其组(但不是所有组只是 yx)

我想列出 OU A 和组中的所有用户名(但我只想查看组 yx)有人可以帮帮我吗?

谢谢

答案1

两种方式:

  • Where-Object你的第二个条款Foreach
  • If里面的声明Foreach

例如:

foreach ($group in ($_.memberof | where {$_ -match 'whatever'})) { …

或者

foreach ($group in $_.memberof) {
    if ($group -match 'whatever') {
        # create a PSCustomobject if you're using v3+
        [pscustomobject]@{

        }
    }
}

此外,我强烈建议您先将 AD 用户收集到变量中,而不是仅仅通过管道传输。

$users = get-aduser …
foreach ($u in $users) { …

通过这种方式,您可以更轻松地随时跟踪您正在修改的内容。

相关内容