PowerShell Aktuellen Benutzer abrufen

Migel Hewage Nimesha 3 April 2022
  1. Verwenden der Klasse Win32_ComputerSystem zum Abrufen des aktuellen Benutzer in PowerShell
  2. Verwenden Umgebungsvariablen zum Abrufen des aktuellen Benutzer in PowerShell
  3. Verwenden den Befehl whoami zum Abrufen des aktuellen Benutzer in PowerShell
PowerShell Aktuellen Benutzer abrufen

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.

  1. Env PowerShell-Laufwerk
  2. $env - Variable
  3. .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
Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

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.

Verwandter Artikel - PowerShell User