首页 > 解决方案 > 搜索用户列表的组成员身份

问题描述

我对 PowerShell 和网站还很陌生。
我的问题是我找到了一个我修改过的脚本。该脚本正在运行,但只是部分运行;它不会返回所有组。只有 4 组,然后显示“.....”,没有其他信息(您可以看到图片)。

实际输出

基本上我想做的是:
我有 100 个用户,我需要导出这 100 个用户的组成员身份。

 [$users = Get-Content "D:\users.txt"
$adjob = foreach ($user in $users) {
    Get-ADUser -server "myserver" –Identity $user –Properties MemberOf
}

$adjob | Select-Object Name,@{N='Group';E={$_.MemberOf -replace '^CN=(\[^,\]+),OU=.+$','$1'}} | Format-Table -AutoSize | out-file D:\users.csv][1]

这个脚本应该返回:

名称
用户1用户2
用户
3

团体

group1,group2,group3,每个用户的其余组

group1,group2,group3,每个用户的其余组

group1,group2,group3,每个用户的其余组

感谢您的帮助!

标签: powershell

解决方案


尝试这个:

$users = Get-Content "D:\users.txt"
$adjob = foreach ($user in $users) {
      Get-ADUser -server "myserver" –Identity $user –Properties MemberOf
}
$adjob | foreach {"`n`n";$_.name, $((($_.MemberOf -split ",")| Select-String "CN") -replace "CN=","")}

输出应该是下面的用户名和组名。"`n`n"将在每个用户之后放置两个空行。

对于您的特定情况,请尝试以下操作:首先在 PowerShell 上输入$FormatEnumerationLimit=-1,然后Format-Table -AutoSize在您的原始脚本中替换为Format-Table -AutoSize -WrapFormat-List


推荐阅读