Lokale Benutzer eines Computers anzeigen

Die lokalen User des eigenen, oder einer entfernten Workstation, können z.B. mit diesem PS-Skript ermittelt und angezeigt werden:

1
2
3
4
5
6
7
8
9
10
11
# Computernamen abfragen
$strPC = Read-Host 'Computername eingeben, oder <enter> drücken für localhost'
 
# Wenn Computername leer, dann localhost nehmen
if ($strPC -eq "") {
	$strPC = "$env:computername"
}
 
# Objekt referenzieren
$objPC = [ADSI]"WinNT://$strPC,computer"
$objPC.psbase.Children | Where-Object { $_.psbase.schemaclassname -eq 'user' } | Format-Table Name, FullName, LastLogin, Description -autoSize</enter>

Mehr Benutzereigenschaften:
Statt der letzten Zeile könnte auch mit

1
$objPC.psbase.Children | Get-Member

angezeigt werden, welche Benutzer-Properties noch zur Auswahl stehen bzw. abgefragt werden können.

Gruppenmitgliedschaften des Benutzers anzeigen

Möchte ein Anwender wissen, in welchen Windows-Gruppen er Mitglied ist, so kann dieser einfach in der Powershell das folgende Snippet ausführen:

1
([System.Security.Principal.WindowsIdentity]::GetCurrent()).Groups | Foreach-Object { $_.Translate([System.Security.Principal.NTAccount])}

Es werden dann die Gruppennamen in einer Liste ausgegeben, in welchen der aktuell angemeldete Benutzer ist.
Das “$_.Translate…” löst die Windows-SID’s in den entsprechenden Gruppennamen auf, da man damit meist mehr anfangen kann.

Alternativen Benutzer für WMI-Abfragen verwenden

Hat der angemeldete Benutzer nicht die erforderlichen Rechte, um eine WMI-Abfrage fehlerfrei ausführen zu können, so können andere Benutzerdaten mittels “get-credential” sicher übergeben werden.

1
2
$objLogondaten = get-credential
get-wmiobject -class Win32_OperatingSystem -computername EinPC -credential $objLogondaten

Benutzerkonten anzeigen deren Kennwort nicht abläuft

Im kommenden Beispiel werden alle lokalen Benutzeraccounts angezeigt, deren Kennwort nicht abläuft, also das Häkchen “Kennwort läuft nicht ab” in den Benutzereigenschaften gesetzt ist.

1
Get-Wmiobject Win32_Account | Where-Object {$_.PasswordExpires -eq 0} | Select-Object Name, Domain, FullName

Einen eigenen Alias erstellen

Wer häufig mit der Powershell arbeitet hat auch seine Commandlets die häufiger benutzt werden. Hier kann ein Alias hilfreich sein welcher den Aufruf wesentlich verkürzen kann.

1
set-alias TestAlias get-alias

Unterschied Set-Alias vs. New-Alias
Durch

1
new-alias TestAlias get-alias

passiert genau das Gleiche. “New-Alias” gibt jedoch einen Fehler aus wenn dieser Alias bereits existiert, während “Set-Alias” vorhandene überschreibt.

Beschreibung
Eine Beschreibung kann mit dem Parameter “-description” hinzugefügt werden.

Aliasse für Programme
Aliasse können auch für normale Programme wie “Netstat” eingerichtet werden.

1
Set-Alias netst Netstat.exe

Achtung: Existiert das Programm nicht, so kommt es beim Einrichten zu keinem Fehler!