我是PowerShell新手,我试图在某个OU中显示所有AD安全组,并显示该安全组的每个用户部分。
我希望将用户名和名称以及安全组名显示到CSV文件中。
我成功地获得了这些信息,但我不得不在脚本本身中手动添加AD安全组名称:
$groups = "GroupName1", "GroupName2", "GroupName3", "GroupName4", "GroupName5"
$results = foreach ($group in $groups) {
Get-ADGroupMember $group | select samaccountname, name, @{n='GroupName';e={$group}}, @{n='Description';e={(Get-ADGroup $group -Properties description).description}}
}
$results
$results | Export-csv C:\Users\Sam\Desktop\Users.csv -NoTypeInformation 上面的脚本输出我需要的信息,但如上所述,我必须在脚本本身中手动输入Security。
我认为我需要使用的命令是Get-ADGroup。
任何帮助都是非常感谢的。
发布于 2022-03-08 17:58:36
您可以使用Get-ADGroup -Filter * -SearchBase 'OUdnHere'搜索所需组织单位下的所有组,然后只需应用已有的相同逻辑:
memberships
$ou = 'distinguished name of my OU here'
Get-ADGroup -Filter * -SearchBase $ou -Properties Description | ForEach-Object {
foreach($member in Get-ADGroupMember $_) {
[pscustomobject]@{
SamAccountName = $member.SamAccountName
Name = $member.Name
GroupName = $_.Name
Description = $_.Description
}
}
} | Export-csv C:\Users\Sam\Desktop\Users.csv -NoTypeInformation 发布于 2022-03-08 17:57:59
尝试这样的方法(当然,为OU添加正确的dn ):
$Groups = Get-AdGroup -SearchBase "ou=OuName,DC=contoso,DC=local" -Filter * | Select -ExpandProperty Name或者在我看来更短更容易读到:
$Groups = (Get-AdGroup -SearchBase "ou=OuName,DC=contoso,DC=local" -Filter *).Name未经测试的代码,但你得到了它的要点。
https://stackoverflow.com/questions/71399446
复制相似问题