2010-12-28 12 views
18

Chciałbym mieć raport z wszystkich lokalnych użytkowników i ich grup względnych (użytkowników, zaawansowanych użytkowników, administratorów i tak dalejPowerShell - listy lokalnych użytkowników i ich grup

dostaję użytkowników w ten sposób. :..

$adsi = [ADSI]"WinNT://." 
$adsi.psbase.children | where {$_.psbase.schemaClassName -match "user"} | select @{n="Name";e={$_.name}} 

ale nie wiem jak odzyskać swoje grupy góry dziękuję

Odpowiedz

26
$adsi = [ADSI]"WinNT://$env:COMPUTERNAME" 
$adsi.Children | where {$_.SchemaClassName -eq 'user'} | Foreach-Object { 
    $groups = $_.Groups() | Foreach-Object {$_.GetType().InvokeMember("Name", 'GetProperty', $null, $_, $null)} 
    $_ | Select-Object @{n='UserName';e={$_.Name}},@{n='Groups';e={$groups -join ';'}} 
} 
26

dla pracowników Google, kolejny sposób, aby uzyskać listę użytkowników jest użycie:

Get-WmiObject -Class Win32_UserAccount 

Od http://buckeyejeeps.com/blog/?p=764

+2

Chcesz dodać filtr do tego qury notować tylko lokalne konta: -filtr "LocalAccount = True" –

10

Update jako alternatywa dla doskonałą odpowiedź od 2010:

można teraz używać get-LocalGroupMember, Get-LOCALGROUP, Get-użytkownik_lokalny itd dostać i Mapa użytkowników i grup

Przykład:

PS C:\WINDOWS\system32> Get-LocalGroupMember -name users 

ObjectClass Name        PrincipalSource 
----------- ----        --------------- 
User  DESKTOP-R05QDNL\someUser1  Local   
User  DESKTOP-R05QDNL\someUser2  MicrosoftAccount 
Group  NT AUTHORITY\INTERACTIVE   Unknown 

Można połączyć to z Get-LocalUser. Alias ​​glu może być również użyty zamiast tego. Aliasy istnieją dla większości nowych cmndletów.

W przypadku niektórych zastanawiasz (wiem, nie pytałem o to) Dodawanie użytkowników może być na przykład zrobić tak:

$description = "Netshare user" 
$userName = "Test User" 
$user = "test.user" 
$pwd = "pwd123" 

New-LocalUser $user -Password (ConvertTo-SecureString $pwd -AsPlainText -Force) -FullName $userName -Description $description 
+2

Tylko uwaga, jest to dostępne od PowerShell 5.1. –

+0

Get-LocalUser jest prawidłowym cmdletem. Get-LocalUser ** s ** nie istnieje – Vish

Powiązane problemy