Question
trouver le (les) postes d'un utilisateur
- Matthew BETTON
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 968
- Remerciements reçus 0
il y a 13 ans 1 mois #14606
par Matthew BETTON
Réponse de Matthew BETTON sur le sujet Re:trouver le (les) postes d'un utilisateur
De rien 
A bientôt
A bientôt
Connexion ou Créer un compte pour participer à la conversation.
- Matthew BETTON
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 968
- Remerciements reçus 0
il y a 13 ans 3 semaines #14671
par Matthew BETTON
Réponse de Matthew BETTON sur le sujet Re:trouver le (les) postes d'un utilisateur
Bonjour,
Quelques corrections apportées :
[code:1]
Function Get-Sessions {
[CmdletBinding()]
param(
[parameter(Mandatory=$true, ValueFromPipeline=$true, ValueFromPipelineByPropertyName=$true)]
[Alias(\"Name\"«»)]
[String[]]$ComputerName,
[parameter(Mandatory=$false)]
[System.Management.Automation.PSCredential]$Credential = [System.Management.Automation.PSCredential]::Empty
)
process{
foreach($c in $ComputerName){
try{
Write-Debug \"Contrôle si la machine '$c' est joignable\"
if(Test-Connection -ComputerName $c -Count 1 -Quiet){
$proc = $null
Write-Debug \"Récupération des process 'explorer.exe' sur '$c'\"
$proc = Get-WmiObject -Class win32_process -ComputerName $c -Credential $Credential -Filter \"Name = 'explorer.exe'\" -ErrorAction Stop
ForEach ($p in $proc) {
$UserName = \"$(($p.GetOwner()).Domain)\$(($p.GetOwner()).User)\"
Write-Debug \"'$UserName' a une session ouverte (Shell) sur '$c'\"
New-Object PSObject -Property @{ComputerName=$c;UserSession=$UserName}
}
}
else{
Write-Warning \"'$c' est injoignable\"
}
}
catch{
Write-Error \"Une erreur s'est produite lors de la récupération des sessions (Shell) sur '$c' : $($_.Exception.Message)\"
}
}
}
}
cls
$Credential = Get-Credential Domaine\Login
Get-Sessions -ComputerName MonServeur -Credential $Credential
Get-Sessions -ComputerName MonServeur10 MonServeur20 -Credential $Credential
\"Machine1\", \"Machine2\", \"Machine3\" | Get-Sessions -Credential $Credential
Get-Sessions -ComputerName localhost -Credential $Credential -ErrorAction SilentlyContinue
[/code:1]
Quelques corrections apportées :
[code:1]
Function Get-Sessions {
[CmdletBinding()]
param(
[parameter(Mandatory=$true, ValueFromPipeline=$true, ValueFromPipelineByPropertyName=$true)]
[Alias(\"Name\"«»)]
[String[]]$ComputerName,
[parameter(Mandatory=$false)]
[System.Management.Automation.PSCredential]$Credential = [System.Management.Automation.PSCredential]::Empty
)
process{
foreach($c in $ComputerName){
try{
Write-Debug \"Contrôle si la machine '$c' est joignable\"
if(Test-Connection -ComputerName $c -Count 1 -Quiet){
$proc = $null
Write-Debug \"Récupération des process 'explorer.exe' sur '$c'\"
$proc = Get-WmiObject -Class win32_process -ComputerName $c -Credential $Credential -Filter \"Name = 'explorer.exe'\" -ErrorAction Stop
ForEach ($p in $proc) {
$UserName = \"$(($p.GetOwner()).Domain)\$(($p.GetOwner()).User)\"
Write-Debug \"'$UserName' a une session ouverte (Shell) sur '$c'\"
New-Object PSObject -Property @{ComputerName=$c;UserSession=$UserName}
}
}
else{
Write-Warning \"'$c' est injoignable\"
}
}
catch{
Write-Error \"Une erreur s'est produite lors de la récupération des sessions (Shell) sur '$c' : $($_.Exception.Message)\"
}
}
}
}
cls
$Credential = Get-Credential Domaine\Login
Get-Sessions -ComputerName MonServeur -Credential $Credential
Get-Sessions -ComputerName MonServeur10 MonServeur20 -Credential $Credential
\"Machine1\", \"Machine2\", \"Machine3\" | Get-Sessions -Credential $Credential
Get-Sessions -ComputerName localhost -Credential $Credential -ErrorAction SilentlyContinue
[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.032 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- trouver le (les) postes d'un utilisateur