Question lien Get-WmiObject Win32_Process et query  process

Plus d'informations
il y a 3 mois 3 jours - il y a 3 mois 3 jours #34185 par cyril2509
Bonjour je souhaite récuperer des infos données par  Query process et ensuite grace au PId recuperer des details fournis par Get-WmiObject -ComputerName serveur01  Win32_Process

  exemple:query  process monAppli.exe /server:serveur01

 UTILISATEUR        NOM SESSION       ID    PID      IMAGE
 user01                    rdp-tcp#25               4      8076    monAppli.exe
 user02                    rdp-tcp#25               5      8920    monAppli.exe

 puis
Get-WmiObject -ComputerName serveur01  Win32_Process -Filter "name='monAppli.exe'" | Select-Object name, ProcessId, ExecutablePath

 name               ProcessId   ExecutablePath  
monAppli.exe      8076        E:\CLIENTS\dep77\monAppli.exe
monAppli.exe      8920        E:\CLIENTS\dep92\monAppli.exe 

     mon but est de pouvoir  avoir au final avoir qq chose comme ca grâce a une espece de jointure sur le PID = ProcessID 

UTILISATEUR    NOM SESSION    PID      IMAGE               ExecutablePath
 user01               rdp-tcp#25             8076    monAppli.exe    E:\CLIENTS\dep77\monAppli.exe
user02               rdp-tcp#25              8920    monAppli.exe    E:\CLIENTS\dep92\monAppli.exe 

j'ai tenté qq chose comme
$res=Get-WmiObject -ComputerName serveur01  Win32_Process -Filter "name='monAppli.exe'" | Select-Object name, ProcessId, ExecutablePath

puis
 $res.ProcessId | foreach-object -Process  {query process  $_ /server:serveur01  } 

mais ca ne fonctionne pas
qq un aurait une idée?

Merci 
Dernière édition: il y a 3 mois 3 jours par cyril2509.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 1 mois 2 semaines - il y a 1 mois 2 semaines #34312 par Dead
Bonjour cyril2509,

Cela pourrait faire l'affaire je pense:
# Récupérer les informations de query process
$queryProcessOutput = query process monAppli.exe /server:serveur01

# Parser la sortie de query process pour extraire les informations nécessaires
$queryProcessInfo = $queryProcessOutput | Select-String -Pattern "monAppli.exe" | ForEach-Object {
$parts = $_ -split '\s+'
[PSCustomObject]@{
Utilisateur = $parts[0]
NomSession = $parts[1]
ID = $parts[2]
PID = $parts[3]
Image = $parts[4]
}
}

# Récupérer les informations de Get-WmiObject
$wmiProcessInfo = Get-WmiObject -ComputerName serveur01 Win32_Process -Filter "name='monAppli.exe'" | Select-Object name, ProcessId, ExecutablePath

# Créer un tableau de hachage pour une recherche rapide par PID
$wmiProcessHashTable = @{}
foreach ($process in $wmiProcessInfo) {
$wmiProcessHashTable[$process.ProcessId] = $process
}

# Faire la jointure et afficher les résultats
$queryProcessInfo | ForEach-Object {
$pid = $_.PID
if ($wmiProcessHashTable.ContainsKey($pid)) {
$wmiProcess = $wmiProcessHashTable[$pid]
[PSCustomObject]@{
Utilisateur = $_.Utilisateur
NomSession = $_.NomSession
PID = $_.PID
Image = $_.Image
ExecutablePath = $wmiProcess.ExecutablePath
}
}
} | Format-Table -AutoSize
Dernière édition: il y a 1 mois 2 semaines par Arnaud Petitjean. Raison: Ajout de la balise [code]

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 1 mois 1 semaine #34392 par cyril2509
j'arrive a récupérer le chemin en plus des autres infos mais j'arrive pas a formater la mise en page en sortie

exemple

Get-Process notepa* -IncludeUserName | foreach-object { $r=get-process -id $_.id -fileversioninfo ;write-host $_.Id $_.username $_.processname $r.filename }

12608 I7N\cyril notepad C:\Windows\System32\notepad.exe
12560 I7N\cyril notepad++ C:\Program Files\Notepad++\notepad++.exe

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 1 mois 1 semaine #34393 par Arnaud Petitjean
Bonjour Cyril,

Il te suffit de demander les propriétés de ton objet, puis de les afficher sous forme de liste (Format-List) ou sous forme de tableau (Format-Table), comme dans l'exemple ci-après :
PS C:\Users\arnaud.petitjean> Get-Process notepa* -IncludeUserName | Select-Object id, FileVersion,username,processname | Format-Table

  Id FileVersion UserName                 ProcessName
  -- ----------- --------                 -----------
4832             POWERSHELL\administrator Notepad
6256             POWERSHELL\administrator Notepad

Chez moi la propriété FileVersion est vide.

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 1 mois 1 semaine #34396 par cyril2509
bonjour

le pb c'est que je récupère une info dans la command combinée
Get-Process notepa* -IncludeUserName | foreach-object { $r=get-process -id $_.id -fileversioninfo ;write-host $_.Id $_.username $_.processname $r.filename }

12608 I7N\cyril notepad C:\Windows\System32\notepad.exe
12560 I7N\cyril notepad++ C:\Program Files\Notepad++\notepad++.exe

d'où mon pb, je ne sais pas récupérer correctement les infos pour pouvoir les mettre en bonne présentation

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 1 mois 1 semaine #34397 par Arnaud Petitjean
Salut,

Je commence à comprendre ce que tu cherches à faire...

Est-ce que cela fonctionnerait pour toi :
PS > Get-Process notepa* -IncludeUserName | Select-Object id, path,username,processname

  Id Path                                                                                                      UserName                    ProcessName
  -- ----                                                                                                      --------                    -----------
1316 C:\Program Files\WindowsApps\Microsoft.WindowsNotepad_11.2402.22.0_x64__8wekyb3d8bbwe\Notepad\Notepad.exe POWERSHELL\arnaud.petitjean Notepad
4832                                                                                                           POWERSHELL\administrator    Notepad
6256                                                                                                           POWERSHELL\administrator    Notepad

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.116 secondes
Propulsé par Kunena