Eu sei como obter uma lista de administradores locais em uma máquina remota via WMI:
wmic /Node:"ComputerName" path win32_groupuser where (groupcomponent="win32_group.name=\"administrators\",domain=\"Computername\"")
Isso retornará usuários e grupos:
GroupComponent PartComponent
win32_group.domain="Computername",name="administrators" \Computername\root\cimv2:Win32_UserAccount.Domain="Computername",Name="Administrator"
win32_group.domain="Computername",name="administrators" \Computername\root\cimv2:Win32_Group.Domain="MYDOMAIN",Name="Domain Admins"
win32_group.domain="Computername",name="administrators" \Computername\root\cimv2:Win32_Group.Domain="MYDOMAIN",Name="SomeOtherGroup"
win32_group.domain="Computername",name="administrators" \Computername\root\cimv2:Win32_UserAccount.Domain="MYDOMAIN",Name="MyUser"
No entanto, se um usuário for um membro de SomeOtherGroup
acima, preciso saber que ele é um membro e, portanto, um administrador local. Então, eu preciso expandir (provavelmente recursivamente) todos os membros do grupo.
Existe uma consulta WMI que pode se auto-unir em win32_group
, expandindo todos os nomes de usuários de todos os grupos que são administradores locais?