获取 AD 组成员 - 不同域

Noo*_*min 5 powershell active-directory powershell-v3.0 powershell-v4.0

我的任务是导出几个 AD 组的成员.csv,我过去总是使用Get-ADGroupMemberpowershell 中的命令导出这些组的成员,指定组名称,选择我需要的属性,然后使用export-csv.
我似乎遇到了一个组的问题,尽管这似乎与 AD 组的成员属于不同林中的外部域这一事实有关。本质上我运行下面的命令,但输出文件显示为空白。

Get-ADGroupMember -identity "VPN Users" | select name | Export-csv -path c:\vpnuserslist.csv -NoTypeInformation 
Run Code Online (Sandbox Code Playgroud)

输出如下:

PS C:\Windows> Get-ADGroupMember -identity "VPN Users" | select name | Export-Csv -Path c:\vpnuserstest.csv -NoTypeInformation

Get-ADGroupMember : The operation completed successfully

At line:1 char:18

+ Get-ADGroupMember <<<<  -identity "VPN Users" | select name | Export-Csv -Path c:\vpnuserstest.csv -NoTypeInformation
    + CategoryInfo          : NotSpecified: (VPN Users:ADGroup) [Get-ADGroupMember], ADException
    + FullyQualifiedErrorId : The operation completed successfully,Microsoft.ActiveDirectory.Management.Commands.GetADGroupMember
Run Code Online (Sandbox Code Playgroud)

我还注意到,当转到 Active Directory 用户和计算机中的组时,我收到一条消息:

活动目录域服务

某些对象名称无法以其用户友好的形式显示。如果对象来自外部域并且该域不可用于翻译对象的名称,则可能会发生这种情况。


有什么方法可以让成员成功导出,无论是否有一些名称格式不正确等等......?先谢谢您的帮助!

小智 3

我发现使用 get-adgroup -properties member 返回所有对象更可靠。

要从不同域获取对象,我执行以下操作:

get-adgroup -properties member | select -expand member | get-adobject
Run Code Online (Sandbox Code Playgroud)

从中获取对象的可分辨名称,这将告诉您要搜索的域,所以最终您应该得到类似的内容:

get-aduser $user -server $foundDomainDC
Run Code Online (Sandbox Code Playgroud)