Listen Sie lokale Benutzer und Gruppen mit PowerShell auf
In diesem Artikel wird erläutert, wie Sie lokale Benutzer und Gruppen auf unserem Computer mit PowerShell abfragen.
Listen Sie lokale Benutzer und Gruppen mit PowerShell auf
Wenn die Domänenverbindung aufgrund von Netzwerkproblemen getrennt wird, funktionieren unsere Domänenanmeldeinformationen meistens nicht, da der Authentifizierungsserver nicht erreichbar und nicht verfügbar ist. Daher sollten wir als besten Standard unsere lokalen Anmeldeinformationen zur Hand haben, und als Administratoren sind diese Anmeldeinformationen Teil der Gruppe des lokalen Administrators.
Wir können PowerShell-Skripting verwenden, um zu überprüfen, ob wir über Administratoranmeldeinformationen verfügen, zumal wir diese Befehle auch verwenden können, um mehrere Computer in großen Mengen zu verarbeiten. Im folgenden Abschnitt werden verschiedene Möglichkeiten zum Abfragen der lokalen Benutzer und Gruppen mithilfe von PowerShell erläutert.
Holen Sie sich die lokale Gruppenmitgliedschaft eines Benutzers mit ADSI
Laut Microsoft sind Active Directory Service Interfaces (ADSI) eingebaute COM-Schnittstellen, die für den Zugriff auf Verzeichnisdienste verwendet werden. Beispielsweise gibt es in der ADSI-Bibliothek die Klasse [ADSI]
, die wir in Windows PowerShell ausführen können, um eine Gruppenmitgliedschaft eines aktuellen Benutzers abzufragen.
Beispielcode:
$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 @{Name='UserName';Expression={$_.Name}},@{Name='Group';Expression={$groups -join ';'}}
}
Ausgang:
UserName Groups
-------- ------
Administrator Administrators
DefaultAccount System Managed Accounts Group
Guest Guests
user Users
Holen Sie sich die lokale Gruppenmitgliedschaft eines Benutzers mit WMI
WMI ist eine Sammlung von Richtlinien zur Optimierung der Hardware- und Softwareverwaltung in einem Netzwerk mit Windows-basierten Computern und ist auf den neuesten Betriebssystemen von Microsoft vorinstalliert. Der Anbieter stellte eine Befehlszeilenschnittstelle (CLI) für WMI bereit, die als WMI Command Line (WMIC) in Betriebssystemen vor Windows 10 bekannt ist.
WMIC ist mit vorhandenen Shells und Dienstprogrammbefehlen in diesen früheren Windows-Versionen kompatibel.
Beispielcode:
Get-WmiObject -Class Win32_UserAccount -Filter "LocalAccount='True'"
Ausgang:
AccountType : 512
Caption : DESKTOP-7GI1260\Administrator
Domain : DESKTOP-7GI1260
SID : S-1-5-21-3848050931-464278446-3624840-500
FullName :
Name : Administrator
AccountType : 512
Caption : DESKTOP-7GI1260\user
Domain : DESKTOP-7GI1260
SID : S-1-5-21-3848050931-464278446-3624840-1003
FullName :
Name : user
Der Parameter -Filter
ist vorhanden, um nur lokal erstellte Konten zu filtern. Daher wird es nicht durch die Standardkontoerstellung gebildet, wenn die Domäne eingerichtet wurde.
Holen Sie sich die lokale Gruppenmitgliedschaft eines Benutzers mit Get-Local
-Befehlen
PowerShell 5.1 kann jetzt die Befehle Get-LocalGroupMember
, Get-LocalGroup
, Get-LocalUser
und andere Get-Local*
-Befehle im Modul Microsoft.PowerShell.LocalAccounts
verwenden, um lokale Benutzer abzurufen und zuzuordnen Gruppen.
Die Verwendung dieser neuen Befehle macht es beim Schreiben unseres Skripts prägnanter.
Beispielcode:
Get-LocalGroupMember -name users
Ausgang:
ObjectClass Name PrincipalSource
----------- ---- ---------------
User DESKTOP-7GI1260\kentm MicrosoftAccount
Group NT AUTHORITY\Authenticated Users Unknown
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn