PowerShell Obtenir l'utilisateur actuel
-
Utilisez la classe
Win32_ComputerSystem
pour obtenir l’utilisateur actuel dans PowerShell - Utiliser des variables d’environnement pour obtenir l’utilisateur actuel dans PowerShell
-
Utilisez la commande
whoami
pour obtenir l’utilisateur actuel dans PowerShell
Lorsque vous travaillez avec Windows, vous aurez presque certainement besoin de savoir quels comptes d’utilisateurs sont activement connectés à un ordinateur à un moment donné. Heureusement, PowerShell peut obtenir des utilisateurs actuels sur des machines distantes ou locales.
Il existe de nombreuses méthodes pour récupérer les utilisateurs actuels connectés à une machine sans utiliser PowerShell. À l’aide de PowerShell, vous pouvez également modifier les résultats en les traitant comme des objets.
Par exemple, si vous exécutez un script demandant les informations d’identification de l’utilisateur, PowerShell peut générer dynamiquement le nom d’utilisateur, vous laissant uniquement le mot de passe à saisir manuellement.
Utilisez la classe Win32_ComputerSystem
pour obtenir l’utilisateur actuel dans PowerShell
Nous utiliserons les cmdlets PowerShell, à savoir Get-CimInstance
et Get-WMIObject
. Ceux-ci nous permettent d’obtenir l’utilisateur actuel en utilisant la classe WMI (Windows Management Instrumentation) sur des ordinateurs distants ou locaux. Appelez l’une des cmdlets suivantes en adressant la classe Win32 ComputerSystem dans PowerShell pour obtenir l’utilisateur actuel.
La propriété Username
est l’un des attributs de la classe Win32 ComputerSystem. Pour ce faire, lancez PowerShell et exécutez les commandes ci-dessous.
Get-CimInstance :
(Get-CimInstance -ClassName Win32_ComputerSystem).Username
Get-WMIObject :
(Get-WMIObject -ClassName Win32_ComputerSystem).Username
Production :
DESKTOP-DelftStack\DefltStack
Ici, les deux commandes obtiennent le même résultat. Cependant, il convient de noter que les commandes ci-dessus ne donnent des résultats que si l’utilisateur est directement connecté. S’il s’agit d’une connexion à distance, le nom d’utilisateur sera vide.
Utiliser des variables d’environnement pour obtenir l’utilisateur actuel dans PowerShell
Une autre technique pour obtenir l’utilisateur actuel sur une machine utilisant PowerShell consiste à récupérer des informations à partir de variables d’environnement. Les données du système d’exploitation, telles que le nom d’utilisateur de l’utilisateur actuel, sont représentées par les variables d’environnement. Cependant, il existe principalement trois façons de travailler avec des variables d’environnement ; il obtient les mêmes résultats quelle que soit la méthode.
Les trois façons sont ci-dessous.
- Env PowerShell Drive
- Variable
$env
- Classe d’environnement .NET
Les méthodes ci-dessus sont expliquées plus en détail ci-dessous.
Env PowerShell Drive
Les variables d’environnement sont mises en cache par PowerShell et mises à disposition via le lecteur Env:
, qui est un lecteur PowerShell (PSDrive). Les PSDrives sont des emplacements de stockage accessibles comme un lecteur sur un ordinateur (par exemple, C :), mais exclusivement via PowerShell.
Le lecteur Env:
est automatiquement créé lorsque vous démarrez une session PowerShell. Étant donné que Env:
est un lecteur, vous pouvez accéder à son contenu à l’aide de la cmdlet Get-ChildItem, qui fonctionne de la même manière que la liste des éléments d’un dossier ou d’un lecteur du système de fichiers.
L’utilisateur peut être récupéré à l’aide de la commande suivante.
Get-ChildItem Env:\USERNAME
Sortir
Name Value
---- -----
USERNAME DelftStack
Afin d’obtenir la valeur uniquement, la commande suivante peut être utilisée.
(Get-ChildItem Env:\USERNAME).Value
Production :
DelftStack
On peut voir que la commande renvoie la valeur du nom d’utilisateur sous forme de chaîne.
Variable $env
Une autre méthode consiste à traiter le lecteur env comme une variable dans laquelle vous pouvez utiliser les commandes suivantes :
$env:username
Production :
DelftStack
Classe d’environnement .NET
La classe Environment a un champ Username, qui a la même valeur que la variable $env : le nom d’utilisateur actuel de l’utilisateur. Exécutez la commande PowerShell ci-dessous pour obtenir la valeur du champ username.
[System.Environment]::UserName
Production :
DelftStack
Classe .NET WindowsIdentity
Une autre classe à exécuter pour obtenir l’utilisateur actuel dans Windows est la classe WindowsIdentity. Il a la méthode GetCurrentname, qui peut être utilisée comme indiqué ci-dessous.
([System.Security.Principal.WindowsIdentity]::GetCurrent().Name).Split('\')[1]
Production :
DelftStack
Utilisez la commande whoami
pour obtenir l’utilisateur actuel dans PowerShell
La commande whoami
est un fichier exécutable qui réside dans le dossier %WINDIR%\System32
, et le nom du fichier est whoami.exe
. Lorsque nous exécutons la commande ci-dessous, il en résulte le nom d’utilisateur au format domaine/nom d’utilisateur.
whoami
Production :
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.