如何使用PowerShell获取本地Administrators组成员?

要使用PowerShell获取本地Administrators组成员,您需要使用GetLocalGroupMember命令。此命令在PowerShell版本5.1及更高版本中可用,并且其模块为Microsoft.PowerShell.LocalAccounts。此模块在32位PowerShell版本中不可用,但在64位系统上不可用。

在下面的示例中,我们需要检索Local Administrators组成员,

示例

Get-LocalGroupMember -Group "Administrators"

输出结果

ObjectClass    Name          PrincipalSource
-----------    ----          ---------------
User          LABDOMAIN\delta
Group         LABDOMAIN\Domain Admins
User          TEST1-WIN2K12\Administrator
User          TEST1-WIN2K12\LocalAdmin

名称属性显示本地管理员组的成员。要从远程服务器检索本地Administrators组成员,我们需要使用Invoke-Command方法。

示例

Invoke-Command -ComputerName Test1-Win2k16 -ScriptBlock{Get-LocalGroupMember -
Name 'Administrators'}

输出结果

ObjectClass    Name                         PrincipalSource          PSComputerName
-----------    ----                         ---------------          --------------
User           LABDOMAIN\Delta              ActiveDirectory          Test1-Win2k16
Group          LABDOMAIN\Domain             Admins ActiveDirectory   Test1-Win2k16
User           TEST1-WIN2K16\Administrator  Local                    Test1-Win2k16
User           TEST1-WIN2K16\LocalAdmin     Local                    Test1-Win2k16
User           TEST1-WIN2K16\Localuser      Local                    Test1-Win2k16

您还可以如下所示过滤特定用户。

示例

Invoke-Command -ComputerName Test1-Win2k16 -ScriptBlock{Get-LocalGroupMember -
Name 'Administrators' | where{$_.Name -like "*Alpha*"}}

输出结果

ObjectClass    Name                PrincipalSource PSComputerName
-----------    ----                --------------- --------------
User           LABDOMAIN\alpha     ActiveDirectory Test1-Win2k16

在早期的PowerShell版本中,不支持此命令。您也可以使用cmd检索输出。

示例

net localgroup administrators

输出结果

Alias name    administrators
Comment       Administrators have complete and unrestricted access to the comput
er/domain
Members
-------------------------------------------------------------------------------
Administrator
Delta
Domain Admins
Enterprise Admins
The command completed successfully.

要仅获取成员,我们将输出存储在变量中并进行操作。

示例

$members = net localgroup administrators
$members[6..($members.Length-3)]

输出结果

Administrator
Delta
Domain Admins
Enterprise Admins

要在远程计算机上运行此命令,

示例

Invoke-Command -ComputerName Test1-Win2k16 -ScriptBlock{
   $members = Invoke-Expression -command "Net Localgroup Administrators"
   $members[6..($members.Length-3)]
}

输出结果

Administrator
LABDOMAIN\Delta
LABDOMAIN\Domain Admins
LocalAdmin

同样,您可以使用任何本地组名代替Administrators组。