"Robby" a écrit dans le message de
news:%
| Merci Gilles,
| Mais est-il possible d'avoir une commande du style gwmi
| win32_process -computer xxxxx
| Sans passer pas le script ?
Mais à quoi sert le script alors ? Pour me faire plaisir ??
Donc pour répondre à votre question : NON !
"Robby" <fabrice@discussions.microsoft.com> a écrit dans le message de
news:%23E84L6dUHHA.5068@TK2MSFTNGP03.phx.gbl
| Merci Gilles,
| Mais est-il possible d'avoir une commande du style gwmi
| win32_process -computer xxxxx
| Sans passer pas le script ?
Mais à quoi sert le script alors ? Pour me faire plaisir ??
Donc pour répondre à votre question : NON !
"Robby" a écrit dans le message de
news:%
| Merci Gilles,
| Mais est-il possible d'avoir une commande du style gwmi
| win32_process -computer xxxxx
| Sans passer pas le script ?
Mais à quoi sert le script alors ? Pour me faire plaisir ??
Donc pour répondre à votre question : NON !
Joli ! Néanmoins il y a plusieurs différences avec ma solution :
1- Votre solution ne recherche que les descendants de niveau 1
2- Vous ne vérifiez pas la validité du pid du processus parent ce qui
peut dans certains cas provoquer une détection erronée des descendants
de svchost
Joli ! Néanmoins il y a plusieurs différences avec ma solution :
1- Votre solution ne recherche que les descendants de niveau 1
2- Vous ne vérifiez pas la validité du pid du processus parent ce qui
peut dans certains cas provoquer une détection erronée des descendants
de svchost
Joli ! Néanmoins il y a plusieurs différences avec ma solution :
1- Votre solution ne recherche que les descendants de niveau 1
2- Vous ne vérifiez pas la validité du pid du processus parent ce qui
peut dans certains cas provoquer une détection erronée des descendants
de svchost
"Gilles LAURENT" wrote in message
news:
<...>Joli ! Néanmoins il y a plusieurs différences avec ma solution :
1- Votre solution ne recherche que les descendants de niveau 1
2- Vous ne vérifiez pas la validité du pid du processus parent ce qui
peut dans certains cas provoquer une détection erronée des descendants
de svchost
En effet, je ne prétendais pas reproduire intégralement les
fonctionnalités de ton script, il s'agissait d'une réponse simple et
rapide. On doit quand même pouvoir traiter les deux cas de manière un peu
plus concise, mais c'est un point de détail. Le plus important est d'avoir
un script qui marche tout en étant lisible pour qu'on puisse le débugger
et le faire évoluer.
"Gilles LAURENT" <glsft@free.fr> wrote in message
news:eaiuW4pUHHA.4872@TK2MSFTNGP03.phx.gbl...
<...>
Joli ! Néanmoins il y a plusieurs différences avec ma solution :
1- Votre solution ne recherche que les descendants de niveau 1
2- Vous ne vérifiez pas la validité du pid du processus parent ce qui
peut dans certains cas provoquer une détection erronée des descendants
de svchost
En effet, je ne prétendais pas reproduire intégralement les
fonctionnalités de ton script, il s'agissait d'une réponse simple et
rapide. On doit quand même pouvoir traiter les deux cas de manière un peu
plus concise, mais c'est un point de détail. Le plus important est d'avoir
un script qui marche tout en étant lisible pour qu'on puisse le débugger
et le faire évoluer.
"Gilles LAURENT" wrote in message
news:
<...>Joli ! Néanmoins il y a plusieurs différences avec ma solution :
1- Votre solution ne recherche que les descendants de niveau 1
2- Vous ne vérifiez pas la validité du pid du processus parent ce qui
peut dans certains cas provoquer une détection erronée des descendants
de svchost
En effet, je ne prétendais pas reproduire intégralement les
fonctionnalités de ton script, il s'agissait d'une réponse simple et
rapide. On doit quand même pouvoir traiter les deux cas de manière un peu
plus concise, mais c'est un point de détail. Le plus important est d'avoir
un script qui marche tout en étant lisible pour qu'on puisse le débugger
et le faire évoluer.
"Jacques Barathon [MS]" wrote in message
news:"Gilles LAURENT" wrote in message
news:
<...>Joli ! Néanmoins il y a plusieurs différences avec ma solution :
1- Votre solution ne recherche que les descendants de niveau 1
2- Vous ne vérifiez pas la validité du pid du processus parent ce qui
peut dans certains cas provoquer une détection erronée des descendants
de svchost
En effet, je ne prétendais pas reproduire intégralement les
fonctionnalités de ton script, il s'agissait d'une réponse simple et
rapide. On doit quand même pouvoir traiter les deux cas de manière un peu
plus concise, mais c'est un point de détail. Le plus important est
d'avoir un script qui marche tout en étant lisible pour qu'on puisse le
débugger et le faire évoluer.
Voici une version qui permet de traiter le problème de la date:
PS> $proc=gwmi win32_process
PS> gwmi win32_process -filter "name='svchost.exe'" |
%{$id=$_.processid;$date=$_.creationdate; $proc | ?{$_.parentprocessid -eq
$id -and $_.creationdate -gt $date}} | group parentprocessid
Count Name Group
----- ---- -----
4 816 {WmiPrvSE.exe, ehmsas.exe, WmiPrvSE.exe,
WmiPrvSE.exe}
1 1032 {audiodg.exe}
1 1076 {dwm.exe}
2 1092 {taskeng.exe, taskeng.exe}
La technique ci-dessus consiste à prendre chaque instance de svchost et à
vérifier quels process ont son ID comme parent et ont une date de création
postérieure.
On peut également prendre le problème dans l'autre sens, comme tu le fais
dans ton script, à savoir prendre chaque process en cours et vérifier si
son parent s'appelle svchost et a une date de création antérieure:
PS> $svc=gwmi win32_process -filter "name='svchost.exe'"
PS> gwmi win32_process | ?{$id=$_.parentprocessid;($svc |
%{$_.processid}) -contains $id -and ($svc | ?{$_.processid -eq
$id}).creationdate -lt $_.creationdate} | group parentprocessid
Count Name Group
----- ---- -----
1 1032 {audiodg.exe}
2 1092 {taskeng.exe, taskeng.exe}
4 816 {WmiPrvSE.exe, ehmsas.exe, WmiPrvSE.exe,
WmiPrvSE.exe}
1 1076 {dwm.exe}
Pour ce qui est de la récursivité, je ne vois pas en quoi ton script la
gère, puisque l'affichage ne se fait que si le nom du parent est
"svchost.exe". Y'a-t-il quelque chose qui m'échappe? C'est fort possible,
je ne suis pas à 100% de mes neurones ces temps-ci pour cause de grippette
:-(.
Jacques
"Jacques Barathon [MS]" <jbaratho@online.microsoft.com> wrote in message
news:eQKikrzUHHA.4384@TK2MSFTNGP02.phx.gbl...
"Gilles LAURENT" <glsft@free.fr> wrote in message
news:eaiuW4pUHHA.4872@TK2MSFTNGP03.phx.gbl...
<...>
Joli ! Néanmoins il y a plusieurs différences avec ma solution :
1- Votre solution ne recherche que les descendants de niveau 1
2- Vous ne vérifiez pas la validité du pid du processus parent ce qui
peut dans certains cas provoquer une détection erronée des descendants
de svchost
En effet, je ne prétendais pas reproduire intégralement les
fonctionnalités de ton script, il s'agissait d'une réponse simple et
rapide. On doit quand même pouvoir traiter les deux cas de manière un peu
plus concise, mais c'est un point de détail. Le plus important est
d'avoir un script qui marche tout en étant lisible pour qu'on puisse le
débugger et le faire évoluer.
Voici une version qui permet de traiter le problème de la date:
PS> $proc=gwmi win32_process
PS> gwmi win32_process -filter "name='svchost.exe'" |
%{$id=$_.processid;$date=$_.creationdate; $proc | ?{$_.parentprocessid -eq
$id -and $_.creationdate -gt $date}} | group parentprocessid
Count Name Group
----- ---- -----
4 816 {WmiPrvSE.exe, ehmsas.exe, WmiPrvSE.exe,
WmiPrvSE.exe}
1 1032 {audiodg.exe}
1 1076 {dwm.exe}
2 1092 {taskeng.exe, taskeng.exe}
La technique ci-dessus consiste à prendre chaque instance de svchost et à
vérifier quels process ont son ID comme parent et ont une date de création
postérieure.
On peut également prendre le problème dans l'autre sens, comme tu le fais
dans ton script, à savoir prendre chaque process en cours et vérifier si
son parent s'appelle svchost et a une date de création antérieure:
PS> $svc=gwmi win32_process -filter "name='svchost.exe'"
PS> gwmi win32_process | ?{$id=$_.parentprocessid;($svc |
%{$_.processid}) -contains $id -and ($svc | ?{$_.processid -eq
$id}).creationdate -lt $_.creationdate} | group parentprocessid
Count Name Group
----- ---- -----
1 1032 {audiodg.exe}
2 1092 {taskeng.exe, taskeng.exe}
4 816 {WmiPrvSE.exe, ehmsas.exe, WmiPrvSE.exe,
WmiPrvSE.exe}
1 1076 {dwm.exe}
Pour ce qui est de la récursivité, je ne vois pas en quoi ton script la
gère, puisque l'affichage ne se fait que si le nom du parent est
"svchost.exe". Y'a-t-il quelque chose qui m'échappe? C'est fort possible,
je ne suis pas à 100% de mes neurones ces temps-ci pour cause de grippette
:-(.
Jacques
"Jacques Barathon [MS]" wrote in message
news:"Gilles LAURENT" wrote in message
news:
<...>Joli ! Néanmoins il y a plusieurs différences avec ma solution :
1- Votre solution ne recherche que les descendants de niveau 1
2- Vous ne vérifiez pas la validité du pid du processus parent ce qui
peut dans certains cas provoquer une détection erronée des descendants
de svchost
En effet, je ne prétendais pas reproduire intégralement les
fonctionnalités de ton script, il s'agissait d'une réponse simple et
rapide. On doit quand même pouvoir traiter les deux cas de manière un peu
plus concise, mais c'est un point de détail. Le plus important est
d'avoir un script qui marche tout en étant lisible pour qu'on puisse le
débugger et le faire évoluer.
Voici une version qui permet de traiter le problème de la date:
PS> $proc=gwmi win32_process
PS> gwmi win32_process -filter "name='svchost.exe'" |
%{$id=$_.processid;$date=$_.creationdate; $proc | ?{$_.parentprocessid -eq
$id -and $_.creationdate -gt $date}} | group parentprocessid
Count Name Group
----- ---- -----
4 816 {WmiPrvSE.exe, ehmsas.exe, WmiPrvSE.exe,
WmiPrvSE.exe}
1 1032 {audiodg.exe}
1 1076 {dwm.exe}
2 1092 {taskeng.exe, taskeng.exe}
La technique ci-dessus consiste à prendre chaque instance de svchost et à
vérifier quels process ont son ID comme parent et ont une date de création
postérieure.
On peut également prendre le problème dans l'autre sens, comme tu le fais
dans ton script, à savoir prendre chaque process en cours et vérifier si
son parent s'appelle svchost et a une date de création antérieure:
PS> $svc=gwmi win32_process -filter "name='svchost.exe'"
PS> gwmi win32_process | ?{$id=$_.parentprocessid;($svc |
%{$_.processid}) -contains $id -and ($svc | ?{$_.processid -eq
$id}).creationdate -lt $_.creationdate} | group parentprocessid
Count Name Group
----- ---- -----
1 1032 {audiodg.exe}
2 1092 {taskeng.exe, taskeng.exe}
4 816 {WmiPrvSE.exe, ehmsas.exe, WmiPrvSE.exe,
WmiPrvSE.exe}
1 1076 {dwm.exe}
Pour ce qui est de la récursivité, je ne vois pas en quoi ton script la
gère, puisque l'affichage ne se fait que si le nom du parent est
"svchost.exe". Y'a-t-il quelque chose qui m'échappe? C'est fort possible,
je ne suis pas à 100% de mes neurones ces temps-ci pour cause de grippette
:-(.
Jacques
Ok merci pour ta patience, en effet cela fonctionne bien.
Et mainteant commenf faire pour en faire un fichier Script ?
Ok merci pour ta patience, en effet cela fonctionne bien.
Et mainteant commenf faire pour en faire un fichier Script ?
Ok merci pour ta patience, en effet cela fonctionne bien.
Et mainteant commenf faire pour en faire un fichier Script ?
"Robby" wrote in message
news:%Ok merci pour ta patience, en effet cela fonctionne bien.
Et mainteant commenf faire pour en faire un fichier Script ?
Tout simplement en copiant les commandes dans un fichier avec l'extension
ps1. Enlève les "PS>" et autres ">>", et de préférence regroupe une même
commande sur une seule ligne, ça évitera les interprétations erronées ou
ambigues. Par exemple, enlève le retour-chariot après "-eq".
Si tu veux passer le nom de l'ordinateur en paramètre, ajoute une clause
param() en tête du script:
param ($computer = ".")
$proc = gwmi win32_process -computer $computer
etc...
Par défaut, c'est l'ordinateur local qui sera interrogé (".").
Jacques
"Robby" <fabrice@discussions.microsoft.com> wrote in message
news:%23ImkjiNVHHA.4796@TK2MSFTNGP05.phx.gbl...
Ok merci pour ta patience, en effet cela fonctionne bien.
Et mainteant commenf faire pour en faire un fichier Script ?
Tout simplement en copiant les commandes dans un fichier avec l'extension
ps1. Enlève les "PS>" et autres ">>", et de préférence regroupe une même
commande sur une seule ligne, ça évitera les interprétations erronées ou
ambigues. Par exemple, enlève le retour-chariot après "-eq".
Si tu veux passer le nom de l'ordinateur en paramètre, ajoute une clause
param() en tête du script:
param ($computer = ".")
$proc = gwmi win32_process -computer $computer
etc...
Par défaut, c'est l'ordinateur local qui sera interrogé (".").
Jacques
"Robby" wrote in message
news:%Ok merci pour ta patience, en effet cela fonctionne bien.
Et mainteant commenf faire pour en faire un fichier Script ?
Tout simplement en copiant les commandes dans un fichier avec l'extension
ps1. Enlève les "PS>" et autres ">>", et de préférence regroupe une même
commande sur une seule ligne, ça évitera les interprétations erronées ou
ambigues. Par exemple, enlève le retour-chariot après "-eq".
Si tu veux passer le nom de l'ordinateur en paramètre, ajoute une clause
param() en tête du script:
param ($computer = ".")
$proc = gwmi win32_process -computer $computer
etc...
Par défaut, c'est l'ordinateur local qui sera interrogé (".").
Jacques
Bonjour et merci pour ton aide,
Voila j'ai rajoute les commandes param et mis sur une ligne -eq, voici mon
fichier test.ps1
param ($computer = ".")
$proc = gwmi win32_process -computer $computer
$proc=gwmi win32_process
gwmi win32_process -computer . -filter "name='svchost.exe'" |
%{$id=$_.processid $date=$_.creationdate;
$proc | ?{$_.parentprocessid -eq $id -and $_.creationdate -gt $date}} |
group parentprocessid
donc je lance test.ps1 dans la console mais rien ne se passe il revient au
prompt.
Bonjour et merci pour ton aide,
Voila j'ai rajoute les commandes param et mis sur une ligne -eq, voici mon
fichier test.ps1
param ($computer = ".")
$proc = gwmi win32_process -computer $computer
$proc=gwmi win32_process
gwmi win32_process -computer . -filter "name='svchost.exe'" |
%{$id=$_.processid $date=$_.creationdate;
$proc | ?{$_.parentprocessid -eq $id -and $_.creationdate -gt $date}} |
group parentprocessid
donc je lance test.ps1 dans la console mais rien ne se passe il revient au
prompt.
Bonjour et merci pour ton aide,
Voila j'ai rajoute les commandes param et mis sur une ligne -eq, voici mon
fichier test.ps1
param ($computer = ".")
$proc = gwmi win32_process -computer $computer
$proc=gwmi win32_process
gwmi win32_process -computer . -filter "name='svchost.exe'" |
%{$id=$_.processid $date=$_.creationdate;
$proc | ?{$_.parentprocessid -eq $id -and $_.creationdate -gt $date}} |
group parentprocessid
donc je lance test.ps1 dans la console mais rien ne se passe il revient au
prompt.