So fügen Sie lokale Benutzer und Gruppen mit PowerShell hinzu, löschen und ändern sie
Sep 18, 2018
Die Verwaltung lokaler Benutzer und Gruppen mit PowerShell wird durch das Microsoft.PowerShell.LocalAccounts Modul vereinfacht, das Cmdlets zum Erstellen, Ändern, Deaktivieren oder Entfernen von Konten und Gruppen bietet. Administratoren können Aufgaben wie das Hinzufügen von Benutzern zu Gruppen, das Zurücksetzen von Passwörtern oder das Überprüfen von Mitgliedschaften automatisieren, während sie auch Microsoft- und Azure-AD-verknüpfte Konten verwalten. Die Fernverwaltung über PowerShell-Sitzungen vereinfacht die Administration weiter, obwohl das Auditieren von Änderungen für Sicherheit und Compliance unerlässlich bleibt.
Um Administratoren die Verwaltung lokaler Benutzer und Gruppen mit PowerShell zu erleichtern, bietet Microsoft eine Cmdlet-Sammlung namens Microsoft.PowerShell.LocalAccounts an. Zuvor mussten Sie diese explizit in PowerShell herunterladen und importieren sowie das Windows Management Framework 5.1 installieren; in den Betriebssystemen Windows Server 2016 und Windows 10 ist die Cmdlet-Sammlung als Standardmodul enthalten.
Es gibt 15 Cmdlets im Modul LocalAccounts. Sie können die vollständige Liste anzeigen, indem Sie den folgenden Befehl ausführen:
Get-Command -Module Microsoft.PowerShell.LocalAccounts
- Add-LocalGroupMember — Fügen Sie einen Benutzer zur lokalen Gruppe hinzu
- Disable-LocalUser —Deaktivieren Sie ein lokales Benutzerkonto
- Enable-LocalUser — Aktivieren Sie ein lokales Benutzerkonto
- Get-LocalGroup — Lokale Gruppenpräferenzen anzeigen
- Get-LocalGroupMember — Sehen Sie sich die Liste aller lokalen Gruppenmitglieder an
- Get-LocalUser — Sehen Sie die Einstellungen eines lokalen Benutzerkontos ein
- New-LocalGroup — Erstellen Sie eine neue lokale Gruppe
- New-LocalUser — Erstellen Sie ein neues lokales Benutzerkonto
- Remove-LocalGroup — Entfernen Sie eine lokale Gruppe
- Remove-LocalGroupMember — Entfernen Sie ein Mitglied aus einer lokalen Gruppe
- Remove-LocalUser — Entfernen Sie ein lokales Benutzerkonto
- Rename-LocalGroup — Benennen Sie eine lokale Gruppe um
- Rename-LocalUser — Benennen Sie ein lokales Benutzerkonto um
- Set-LocalGroup — Ändern Sie die Einstellungen einer lokalen Gruppe
- Set-LocalUser — Ändern Sie die Kontoeinstellungen eines lokalen Benutzers
Verwaltung lokaler Benutzerkonten mit PowerShell
Lassen Sie uns sehen, wie Sie diese Befehle verwenden können, um gängige Aufgaben im Zusammenhang mit der Verwaltung lokaler Benutzer auf einem Windows 10-Computer auszuführen.
Auflistung von Benutzern und deren Eigenschaften mit PowerShell
Zuerst erstellen wir eine Liste aller lokalen Benutzerkonten auf dem Computer. Wir verwenden das Cmdlet Get-LocalUser:
Get-LocalUser
Wie Sie sehen können, haben wir zwei lokale Benutzerkonten, und eines davon ist deaktiviert (dasjenige, das „False“ in der Spalte „Enabled“ hat).
Wenn Sie alle Eigenschaften und deren Werte für ein lokales Benutzerkonto ausgeben möchten, müssen Sie das Cmdlet Get-LocalUser mit den folgenden Parametern verwenden:
Get-LocalUser -Name ‘guest’ | Select-Object *
Um den Wert eines bestimmten lokalen Benutzerkontenattributs zu erhalten, geben Sie dessen Namen nach dem Parameter „Select-Object“ ein. In diesem Beispiel möchten wir den Wert des Attributs „PasswordLastSet“ für das Konto mit dem Benutzernamen „administrator“ wissen:
Get-LocalUser -Name ‘administrator’ | Select-Object PasswordLastSet
Erstellen eines lokalen Benutzers mit PowerShell
Lassen Sie uns einen neuen Benutzer mit Hilfe des New-LocalUser Cmdlets erstellen. Dieses Cmdlet kann die folgenden Arten von Benutzerkonten erstellen:
- Windows lokale Benutzerkonten
- Microsoft-Konten
- Azure Active Directory-Konten
Beim Erstellen eines lokalen Benutzerkontos sollten Sie niemals das Passwort als Klartext eingeben; konvertieren Sie es immer in einen sicheren String mit dem Parameter ?AsSecureString oder ?ConvertTo-SecureString. Hier ist der Befehl zum Erstellen eines neuen lokalen Benutzerkontos:
$UserPassword = Read-Host –AsSecureString
New-LocalUser "Netwrix" -Password $UserPassword -FullName "Netwrix" -Description "CompleteVisibility"
In einer Windows 10-Umgebung können sich Benutzer mit ihren Microsoft-Konten autorisieren, sodass wir ein neues lokales Benutzerkonto erstellen können, das an die Anmeldeinformationen eines Microsoft-Kontos gebunden ist. Verwenden Sie das folgende Skript, um dies zu tun (beachten Sie, dass Sie das Passwort nicht eingeben müssen, da es in der Microsoft-Cloud gespeichert ist):
New-LocalUser -Name "MicrosoftAccountSomeAccount@outlook.com" -Description "Microsoft Account"
Um ein lokales Konto zu erstellen, das an Ihre Azure AD gebunden ist, verwenden Sie den folgenden Befehl:
New-LocalUser -Name "AzureADNetwrix@enterprise.com" -Description "Azure AD Account"
Ändern des Passworts oder der Passworteigenschaften eines lokalen Benutzers mit PowerShell
Um das Passwort eines lokalen Benutzerkontos zu ändern, müssen wir das Cmdlet Set-LocalUser verwenden. Lassen Sie uns das Passwort des lokalen Administrators ändern:
$UserPassword = Read-Host –AsSecureString
Set-LocalUser -Name Administrator -Password $UserPassword –Verbose
Um das Password never expires für einen lokalen Benutzer mit PowerShell zu setzen, müssen wir das folgende Skript ausführen:
Set-LocalUser -Name Netwrix –PasswordNeverExpires $False
Löschen eines lokalen Benutzerkontos mit PowerShell
Um ein lokales Benutzerkonto zu entfernen, müssen Sie das Cmdlet Remove-LocalUser verwenden:
Remove-LocalUser -Name Netwrix -Verbose
Verwaltung lokaler Gruppen mit PowerShell
Wenden wir uns nun von lokalen Benutzern zu lokalen Gruppen.
Lokale Gruppen mit PowerShell überprüfen
Zuerst erstellen wir eine Liste aller Gruppen auf unserem Windows Server:
Get-LocalGroup
Hinzufügen einer lokalen Gruppe mit PowerShell
Jetzt lassen Sie uns eine neue Gruppe erstellen:
New-LocalGroup -Name 'Netwrix Users' -Description 'Netwrix Users Group'
Benutzer mit PowerShell zu einer lokalen Gruppe hinzufügen
Um einen Benutzer (oder eine Gruppe) zu einer lokalen Gruppe hinzuzufügen, müssen wir das Cmdlet Add-LocalGroupMember verwenden. Angenommen, wir möchten Benutzer zur lokalen Administratorengruppe hinzufügen, aber wir möchten sie nicht einzeln hinzufügen. Fügen wir eine Gruppe zu den lokalen Administratoren hinzu, nämlich die Gruppe „Netwrix Users“:
Add-LocalGroupMember -Group 'Administrators' -Member ('Netwrix',’Netwrix Users') –Verbose
Wenn Ihr Computer oder Server Teil der Domäne ist, können Sie auch Domänenkonten und -gruppen zu lokalen Gruppen hinzufügen, um diesen Benutzern spezielle lokale Rechte auf dem Server zu gewähren. Fügen Sie sie im Format „DomainNameBenutzer“ (für einen Benutzer) oder „DomainNameDomänengruppe“ (für eine Gruppe) hinzu.
Anzeigen der Mitgliedschaft einer bestimmten Gruppe mit PowerShell
Listen wir nun alle Mitglieder einer bestimmten lokalen Gruppe auf:
Get-LocalGroupMember -Group 'Netwrix Users'
Wie Sie sehen können, zeigt der Befehl alle lokalen Konten und Gruppen an, die Mitglieder der Gruppe „Netwrix Users“ sind. Obwohl hier nur lokale Konten und Gruppen aufgelistet sind, wird dieser Befehl auch alle Domänenbenutzer und -gruppen sowie alle Microsoft- und Azure AD-Konten anzeigen.
Anzeigen aller Gruppen, deren Mitglied ein Benutzer mithilfe von PowerShell ist
Um alle Gruppen aufzulisten, bei denen ein bestimmter Benutzer Mitglied ist, würden wir das folgende Skript ausführen:
foreach ($LocalGroup in Get-LocalGroup)
{
if (Get-LocalGroupMember $LocalGroup -Member 'Guest' –ErrorAction SilentlyContinue)
{
$LocalGroup.Name
}
}
Entfernen einer lokalen Gruppe mit PowerShell
Um ein lokales Benutzerkonto aus einer Gruppe zu entfernen, müssen Sie das Cmdlet Remove-LocalGroupMember verwenden:
Remove-LocalGroupMember -Group 'Netwrix Users' –Member 'guest'
Verwaltung lokaler Benutzer und Gruppen aus der Ferne mit PowerShell
Wenn Sie lokale Benutzerkonten und Gruppen remote verwalten möchten, müssen Sie sich über WinRM mit den entfernten Arbeitsstationen verbinden, indem Sie die Cmdlets Invoke-Command und Enter-PSSession verwenden. Wenn wir beispielsweise die Mitgliedschaft der lokalen Admin-Gruppe auf mehreren Computern remote ausgeben möchten, müssen wir das folgende Skript ausführen:
$search = new-pssession -computer pcname1,pcname2,pcname3
invoke-command -scriptblock {Get-LocalGroupMember -Group 'Administrators'} -session $search -hidecomputername | select * -exclude RunspaceID | out-gridview -title "LocalAdmins"
Wie Sie sehen können, ist es ziemlich einfach, lokale Gruppen und Benutzer über PowerShell zu verwalten, aber um Sicherheit, Compliance und Geschäftskontinuität zu gewährleisten, ist es unerlässlich, all diese Änderungen zu überwachen. Um mehr über die Konfiguration der nativen Überwachung zu erfahren, beachten Sie bitte den Windows Server Auditing Quick Reference Guide.
Teilen auf
Erfahren Sie mehr
Über den Autor
Jeff Melnick
Direktor für Systemtechnik
Jeff ist ehemaliger Director of Global Solutions Engineering bei Netwrix. Er ist ein langjähriger Netwrix-Blogger, Redner und Präsentator. Im Netwrix-Blog teilt Jeff Lifehacks, Tipps und Tricks, die Ihre Systemadministrationserfahrung erheblich verbessern können.
Erfahren Sie mehr zu diesem Thema
Erstellen Sie AD-Benutzer in Massen und senden Sie deren Anmeldeinformationen per E-Mail mit PowerShell
Wie man Passwörter mit PowerShell erstellt, ändert und testet
So fügen Sie AD-Gruppen hinzu und entfernen Objekte in Gruppen mit PowerShell
Vertrauensstellungen in Active Directory
Ransomware-Angriffe auf Active Directory