2010-12-28 14 views
18

Ich mag würde einen Bericht mit allen lokalen Benutzer und ihrer relativen Gruppen (Benutzer haben, Power-User, Administratoren und so weiterPowershell - Liste lokale Benutzer und Gruppen ihre

ich die Benutzer auf diese Weise. :..

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

aber ich weiß nicht, wie sie ihre Gruppen abzurufen Vielen Dank im Voraus

Antwort

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

Für Googler, eine andere Möglichkeit, eine Liste von Benutzern zu erhalten ist, zu verwenden:

Get-WmiObject -Class Win32_UserAccount 

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

+2

Sie wollen, dass qury den Filter hinzufügen lokalen aufzulisten nur accounts: -filter "LocalAccount = True" –

10

-Update als Alternative zu der ausgezeichneten Antwort von 2010:

können Sie nun die Get-LocalGroupMember verwenden, Get-localgroup, Get-Localuser usw. zu bekommen und Karte Benutzer und Gruppen

Beispiel:

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 

Sie könnten das mit Get-LocalUser kombinieren. Alias ​​Glu kann auch stattdessen verwendet werden. Aliase existieren für die Mehrheit der neuen Cmdletts.

Falls einige fragen (ich weiß, Sie nicht darüber fragte) Hinzufügen von Benutzern zum Beispiel wie es getan werden könnte:

$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

Nur eine Anmerkung, das ist seit PowerShell 5.1 verfügbar. –

+0

Get-LocalUser ist das richtige Cmdlet. Get-LocalUser ** s ** existiert nicht – Vish

Verwandte Themen