【发布时间】:2014-05-27 09:00:55
【问题描述】:
我正在尝试制作一个 PS 脚本,它会列出所有 Active Directory 用户组成员身份(递归)。
我已经有了工作脚本:
import-module activedirectory
$users = get-aduser -Filter {Name -Like "*"} -Searchbase "ou=Users, dc=Domain" | Where-Object { $_.Enabled -eq 'True' }
$targetFile = "D:\users.csv"
rm $targetFile
Add-Content $targetFile "User;Group"
foreach ($user in $users)
{
$groups = Get-ADPrincipalGroupMembership $user
foreach ($group in $groups)
{
$username = $user.samaccountname
$groupname = $group.name
$line = "$username;$groupname"
Add-Content $targetFile $line
}
}
但脚本不会递归地列出组,即,如果输出文件中列出的组是另一个组的一部分。
例子:
组 1:用户
组 2:组 3:用户
脚本仅显示 Group1 和 3,但不显示 2。
我应该在第一个以递归方式编写组成员身份的脚本中添加什么?
【问题讨论】:
-
您应该递归查询
Get-ADPrincipalGroupMembership的组,对于那些您尚未查询的组。
标签: powershell recursion membership active-directory-group