Quel est l'équivalent Windows de la commande Unix "whoami"?

72

Existe-t-il un équivalent Windows de la commande Unix "whoami"? Si oui, c'est quoi?

Kip
la source
2
Oui, et c'est aussi whoami
DeepSpace101
utilisez la commande «session de requête» pour obtenir la liste des services de terminal actuellement connectés ou déconnectés
Martin

Réponses:

73

Depuis Windows 2000, la whoamicommande fait partie de la ligne de commande standard (merci à pk de l'avoir effacée dans les commentaires!).

Vous pouvez faire ceci: Ouvrez une invite de commande et tapez "set" puis appuyez sur Entrée. Cela montre les variables d'environnement actif. Le nom d'utilisateur actuellement connecté est stocké dans la variable USERNAME env et votre domaine est stocké dans la variable USERDOMAIN.

Pour reprendre les autres réponses, à partir d'une ligne de commande:

echo %USERDOMAIN%\%USERNAME%

vous obtiendrez l'utilisateur connecté complet dans le format domaine \ nom d'utilisateur.

Vous pouvez faire la même chose avec Powershell avec ceci:

write-host $env:userdomain\$env:username
écailleur
la source
1
+1 pour l'aspect éducatif, et pour inclure le domaine ainsi que le nom d'utilisateur
tomjedrz
@squillman Comment puis-je faire en sorte que cela fonctionne lors de l'exécution d'une invite de commande en tant qu'utilisateur Sytem? Parce que dans ce cas, il n'y a pas de variable d'environnement telle que% USERDOMAIN% ou% USERNAME%
GianT971
@ GianT971 Voulez-vous dire LocalSystem? Il n'y a pas de moyen pour ce compte puisqu'il n'est pas associé à un utilisateur connecté. En règle générale, ce compte est utilisé pour les services. Lorsqu'un service s'exécute en tant que LocalSystem, il prend en compte le contexte de sécurité du gestionnaire de contrôle des services.
squillman
D'accord. Oui c'est ce que je voulais dire. Peut-être qu'avec les dernières versions de PowerShell, il est possible, car lors de l'exécution d'une application .NET appelant Environment.Username sous un compte LocalSystem, le résultat est "Système". Mais je n'ai pas encore bien regardé PowerShell
GianT971
@ GianT971 Vous pouvez générer des processus cmd ou powershell et exécuter des scripts, mais vous n'obtiendrez pas de shell interactif.
squillman
16

Cela rapporte la plupart des mêmes informations que tout le monde dit, mais vous pouvez aussi taper

SET U

Il renverra toutes les variables d'environnement commençant par U.

De plus, SET L peut être utile pour le débogage des problèmes de logonserver.

Dayton Brown
la source
1
Parfois, vous ne voyez que des conseils qui doivent être partagés, ces deux sont excellents.
Tubs
5

En ligne de commande? "echo% username%" devrait le faire. L'utilisateur connecté est stocké dans la variable d'environnement "nom d'utilisateur".

À partir d'une session graphique, ctrl-alt-suppr vous donnera un écran avec l'utilisateur connecté affiché.

sysadmin1138
la source
5

Cela dépend de votre système d'exploitation, mais la commande whoami est disponible dans le Kit de ressources Windows 2000 et les outils de support de Windows XP SP2 .

RedFilter
la source
2
+1 Également disponible par défaut dans Vista +
Oskar Duveborn,
aha, je pensais avoir utilisé whoami sur mon ordinateur portable à la maison récemment, je suppose que cela a fonctionné parce que c'était vista. ici au travail je suis sur xp
Kip
3

Les éléments ci-dessus sont natifs du système d’exploitation et offrent de meilleures réponses, mais dans un esprit d’exhaustivité, il existe littéralement un whoami.exe dans les outils de support de 2000 & XP. À 32 Ko, il serait facile de déployer une stratégie de groupe si votre cœur était défini sur cette commande.

Kara Marfia
la source
1

Dans autoexec ou à l'invite du DOS, tapez l' invite% USERDOMAIN% \% USERNAME% $ p $ g . Vous verrez qui vous êtes connecté en tant que, et vous verrez l'invite type comme ceci: DOMAIM \ nom d'utilisateur C:>

utilisateur156428
la source