Nous allons voir dans cet article comment savoir qui est connecté sur une machine distante en affichant son login.
Avant de commencer et si vous n’êtes pas encore à l’aise en Powershell je vous invite à consulter les articles suivants:
Exécuter un script en PowerShell
Tout d’abord nous créons un fichier de script Powershell monscript.ps1contenant le script suivant:
$strComputer = "." $Var =GWMI -Comp $strComputer -CL Win32_ComputerSystem "Machine Name: " + $Var.Name + " User Name: " + $Var.UserName
Le “.” désigne la machine sur laquelle est exécutée le script. Cette syntaxe se retrouve d’ailleurs en VBScript.
Si l’on souhaite savoir qui est connecté sur la station nommée STATION02 il suffit de remplacer le “.” par “STATION02”. Le code devient alors:
$strComputer = "STATION02" $Var =GWMI -Comp $strComputer -CL Win32_ComputerSystem "Machine Name: " + $Var.Name + " User Name: " + $Var.UserName
Nous exécutons le script directement depuis l’interpréteur Powershell :
PS C:\>.\monscript.ps1
On obtient un résultat de la forme suivante :
PS C:\> .\monscript.ps1
Machine Name: STATION01 User Name: DOMLAB\hatmos
PS C:\>
Nous pouvons exécuter le script depuis une invite de commande (cmd) classique en tapant:
PowerShell C:\monscript.ps1
Mais malheureusement l’affichage est renvoyé dans l’interpréteur … qui se ferme aussitôt. Nous allons donc ajouter un MSGBOX à la manière des VBScript, afin d’avoir le temps de visualiser le résultat.
Le code devient alors:
$strComputer = "STATION02" $Var =GWMI -Comp $strComputer -CL Win32_ComputerSystem "Machine Name: " + $Var.Name + " User Name: " + $Var.UserName $a = new-object -comobject wscript.shell $b = $a.popup($Var.UserName,0,"MSGBOX en Powershell",1)
Et le résultat sera retourné dans un MSGBOX 😉
Il est possible d’effectuer la même opération en VBScript. Je vous invite pour cela à consulter l’article suivant:
Afficher le compte utilisateur connecté sur une machine distante en VBScript
les chevrons dans mon précèdent commentaire sont à remplacer par des doubles quotes…
Bonjour,
autre script powershell pour faire la même chose avec un sleep pour que la fenêtre reste ouverte (le chiffre en seconde) et un Read-Host pour la saisie du nom du poste :
$computer = Read-Host “Entrer le nom du pc”
$loginfo = Get-WmiObject -Computer $Computer -Class Win32_ComputerSystem
” Utilisateur connecte : ” + $loginfo.UserName
sleep 5