2017-07-24 51 views
1

我使用这些命令使用PowerShell来获取管理员组的成员:使用PowerShell从ComputerManagement获取完整成员名称?

$computer = [ADSI]"WinNT://$s,computer" 
$group = $computer.PSBase.Children.Find('Administrators', 'Group') 
$Admin_Accounts = $group.PSBase.Invoke("members") | ForEach { 
    $_.GetType().InvokeMember("FullName", 'GetProperty', $null, $_, $null) 
} 

但是,我得到的结果仅仅是成员名称“NAME”,而不是全名显示在用户界面“ ADomain/NAME”。

我该如何做到这一点?

回答

3

不要打扰ADSI。使用WMI代替:

$group = Get-WmiObject -Class Win32_Group -Filter "Name='Administrators'" 
$group.GetRelated('Win32_UserAccount') | Select-Object -Expand Caption 
+0

对于一组服务器,如果我有远程启动它,ADSI工作正常。 WMI执行非常缓慢。 我们有没有办法通过ADSI来实现它? –

+0

此外,结果将进入Excel表单。从远程服务器获取它,然后将结果放入Excel中是一个缓慢的过程。你能否只在ADSI中给我一些建议? –

0

取决于您可以使用的Powershell版本。

(Get-LocalGroupMember -Name Administrators).Name 

这港岛线显示本地管理员组的所有成员是这样的:

domain-or-computername\username 

测试在V5