PowerShell Aktuellen Benutzer abrufen
-
Verwenden der Klasse
Win32_ComputerSystem
zum Abrufen des aktuellen Benutzer in PowerShell - Verwenden Umgebungsvariablen zum Abrufen des aktuellen Benutzer in PowerShell
-
Verwenden den Befehl
whoami
zum Abrufen des aktuellen Benutzer in PowerShell
Wenn Sie mit Windows arbeiten, müssen Sie mit ziemlicher Sicherheit wissen, welche Benutzerkonten zu irgendeinem Zeitpunkt aktiv an einem Computer angemeldet sind. Glücklicherweise kann PowerShell aktuelle Benutzer auf Remote- oder lokalen Computern abrufen.
Es gibt viele Methoden zum Abrufen aktueller Benutzer, die bei einem Computer angemeldet sind, ohne PowerShell zu verwenden. Mit PowerShell können Sie die Ergebnisse auch ändern, indem Sie sie als Objekte behandeln.
Wenn Sie beispielsweise ein Skript ausführen, das nach Benutzeranmeldeinformationen fragt, kann PowerShell den Benutzernamen dynamisch generieren, sodass Sie nur das Passwort manuell eingeben müssen.
Verwenden der Klasse Win32_ComputerSystem
zum Abrufen des aktuellen Benutzer in PowerShell
Wir werden PowerShell-Cmdlets verwenden, nämlich Get-CimInstance
und Get-WMIObject
. Diese ermöglichen es uns, den aktuellen Benutzer mithilfe der WMI-Klasse (Windows Management Instrumentation) auf Remote- oder lokalen Computern abzurufen. Rufen Sie eines der folgenden Cmdlets auf, die die Win32-ComputerSystem-Klasse in PowerShell adressieren, um den aktuellen Benutzer abzurufen.
Die Eigenschaft Benutzername
ist eines der Attribute der Klasse Win32 ComputerSystem. Starten Sie dazu PowerShell und führen Sie die unten gezeigten Befehle aus.
Get-CimInstance:
(Get-CimInstance -ClassName Win32_ComputerSystem).Username
Get-WMIObject:
(Get-WMIObject -ClassName Win32_ComputerSystem).Username
Ausgabe:
DESKTOP-DelftStack\DefltStack
Hier liefern beide Befehle das gleiche Ergebnis. Es sollte jedoch beachtet werden, dass die obigen Befehle nur Ergebnisse liefern, wenn der Benutzer direkt angemeldet ist. Wenn es sich um eine Remote-Anmeldung handelt, bleibt der Benutzername leer.
Verwenden Umgebungsvariablen zum Abrufen des aktuellen Benutzer in PowerShell
Eine andere Technik, um den aktuellen Benutzer mithilfe von PowerShell auf einen Computer zu bringen, besteht darin, Informationen aus Umgebungsvariablen abzurufen. Die Betriebssystemdaten, wie z. B. der Benutzername des aktuellen Benutzers, werden durch die Umgebungsvariablen dargestellt. Es gibt jedoch hauptsächlich drei Möglichkeiten, mit Umgebungsvariablen zu arbeiten; Unabhängig von der Methode werden die gleichen Ergebnisse erzielt.
Die drei Möglichkeiten sind unten.
- Env PowerShell-Laufwerk
$env
- Variable- .NET-Umgebungsklasse
Die obigen Verfahren werden nachstehend weiter erläutert.
Env PowerShell-Laufwerk
Umgebungsvariablen werden von PowerShell zwischengespeichert und über das Laufwerk Env:
verfügbar gemacht, bei dem es sich um ein PowerShell-Laufwerk (PSDrive) handelt. PSDrives sind Speicherorte, auf die wie auf ein Laufwerk auf einem Computer (z. B. C:) zugegriffen werden kann, jedoch ausschließlich über PowerShell.
Das Laufwerk Env:
wird automatisch erstellt, wenn Sie eine PowerShell-Sitzung starten. Da Env:
ein Laufwerk ist, können Sie mit dem Get-ChildItem-Cmdlet auf seinen Inhalt zugreifen, das ähnlich funktioniert wie das Auflisten der Elemente eines Dateisystemordners oder -laufwerks.
Der Benutzer kann mit dem folgenden Befehl abgerufen werden.
Get-ChildItem Env:\USERNAME
Ausgabe
Name Value
---- -----
USERNAME DelftStack
Um nur den Wert zu erhalten, kann der folgende Befehl verwendet werden.
(Get-ChildItem Env:\USERNAME).Value
Ausgabe:
DelftStack
Es ist ersichtlich, dass der Befehl den Wert des Benutzernamens als Zeichenfolge zurückgibt.
$env
-Variable
Eine andere Möglichkeit besteht darin, das env-Laufwerk als Variable zu behandeln, in der Sie die folgenden Befehle verwenden können:
$env:username
Ausgabe:
DelftStack
.NET-Umgebungsklasse
Die Environment-Klasse hat ein Username-Feld, das denselben Wert wie die $env-Variable hat: den Benutzernamen des aktuellen Benutzers. Führen Sie den folgenden PowerShell-Befehl aus, um den Wert des Felds Benutzername
abzurufen.
[System.Environment]::UserName
Ausgabe:
DelftStack
.NET WindowsIdentity-Klasse
Eine weitere Klasse, die ausgeführt werden muss, um den aktuellen Benutzer in Windows abzurufen, ist die WindowsIdentity-Klasse. Es verfügt über die GetCurrentname-Methode, die wie unten gezeigt verwendet werden kann.
([System.Security.Principal.WindowsIdentity]::GetCurrent().Name).Split('\')[1]
Ausgabe:
DelftStack
Verwenden den Befehl whoami
zum Abrufen des aktuellen Benutzer in PowerShell
Der Befehl whoami
ist eine ausführbare Datei, die sich im Ordner %WINDIR%\System32
befindet, und der Name der Datei ist whoami.exe
. Wenn wir den folgenden Befehl ausführen, ergibt sich der Benutzername im Domänen-/Benutzernamenformat.
whoami
Ausgabe:
DESKTOP-DelftStack\DefltStack
Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.