1

我需要从特定的 AD OU 中获取所有 AD 组及其各自的成员资格。我的代码在写入主机屏幕时会执行此操作,但我无法将其干净地输出到 .xml,这是请求的格式,但此时我将采用任何格式。管理层希望输出文件类似于:

Group1 User1
Group1 User2
Group1 User3 
Group2 User1
Group2 User2
Group2 User3
etc...

有人有想法么?

$groupName = Get-ADGroup -SearchBase "OU=Groups,DC=domain,DC=com" -Filter * | Select-Object sAMAccountName

foreach ( $groupMember in $groupName )
{
   # $groupMember
   Get-ADGroupMember -Identity $groupMember.sAMAccountName | Export-Clixml -Path C:\temp.xml -Force
4

2 回答 2

1

假设您想要显示的两列文本文件,它不是 XML 格式的文件。您可以使用计算属性,然后使用Select-Object选择的格式导出该信息:

$GroupName = Get-ADGroup -SearchBase "OU=Groups,DC=domain,DC=com" -Filter * | Select-Object -ExpandProperty sAMAccountName

$Members = foreach ($GroupMember in $GroupName) {
   Get-ADGroupMember -Identity $GroupMember | Select-Object @{Name="Group";Expression={$GroupMember}},name
}
"$(Members.Group) $($Members.Name)"  | Out-File C:\temp.txt
#Alternatively for a .CSV
$Members | Export-CSV C:\temp.csv
于 2017-06-08T19:13:25.293 回答
0

我相信你在“(Members.Group)”第 5 行第 3 行前面缺少 $ 不应该是“$($Members.Group)”吗?因为当我运行此脚本时,它给了我错误“‘Members.Group’一词未被识别为 cmdlet、函数的名称......”

$GroupName = Get-ADGroup -SearchBase "OU=Groups,DC=domain,DC=com" -Filter * | Select-Object -ExpandProperty sAMAccountName

$Members = foreach ($GroupMember in $GroupName) {
   Get-ADGroupMember -Identity $GroupMember | Select-Object @{Name="Group";Expression={$GroupMember}},name
}
"$($Members.Group) $($Members.Name)"  | Out-File C:\temp.txt
#Alternatively for a .CSV
$Members | Export-CSV C:\temp.csv
于 2017-10-16T19:20:37.570 回答