问题描述
以下 PowerShell 脚本遍历 test.csv 文件中列出的组。 它从各个组中的每个用户中提取 samAccountName 和 distinctName。但是,当我尝试提取 groupName 时,输出是“Microsoft.ActiveDirectory.Management.ADPropertyValueCollection”。不知道如何解决这个问题-
$groups = Get-Content test.csv
$domains = (Get-ADForest).Domains
foreach ($group in $groups)
{
foreach ($domain in $domains)
{
if (Get-ADGroup $group -Server $domain)
{
Get-ADGroupMember $group -Server $domain | select groupName,samAccountName,distinguishedname | Export-Csv c:\temp\file.csv -notypeinformation -append
}
}
}
$groups = Get-Content test.csv
$domains = (Get-ADForest).Domains
foreach ($group in $groups)
{
foreach ($domain in $domains)
{
if (Get-ADGroup $group -Server $domain)
{
Get-ADGroupMember $group -Server $domain | select samAccountName,distinguishedname |
Get-ADUser @{name = ‘MemberOf’;’expression={$_.MemberOf -join “;”}} |
Export-Csv c:\temp\file.csv -notypeinformation
}
}
}
解决方法
如果您将选择语句更改为:
select-object @{n='groupName';expression={$group}},samAccountName,distinguishedName
它应该为该列输出 Get-ADGroupMember 的 $group 输入。
,试试这个,我为你的代码添加了一些优化:)
注意,这里或多或少需要 try {...} catch {...}
,因为如果对象是未找到。
Get-ADGroup