Question [Résolu] Attendre l'exécution d'un processus ?

Plus d'informations
il y a 7 ans 3 mois #28153 par dimshell
Réponse de dimshell sur le sujet Re:Powershell attendre l'exec
Merci pour ta réponse.

Alors j'avais fais un petit bout de code pareil mais il ne connait pas mon processus windump.

Je vais essayer ta manière.

[code:1]$avant = Get-Process

# Lancement d'une application, par exemple Windump.exe ou calc.exe
Start-Process \"C:\Users\\Desktop\Windump.exe\"

# Récupération des processus à un instant t + 1
$apres = Get-Process

# Comparaison des objets pour trouver l'intrus
Compare-Object -ReferenceObject $avant -DifferenceObject $apres
[/code:1]

[code:1]InputObject SideIndicator

System.Diagnostics.Process (conhost) =>
System.Diagnostics.Process (WinDump) =>
[/code:1]
Donc le ,processus windump est bien après avec le nom de processus (Windump)mais conhost c'est quoi ??

Message édité par: dimshell, à: 12/02/19 15:13

Message édité par: dimshell, à: 12/02/19 15:14<br><br>Message édité par: dimshell, à: 12/02/19 15:42

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

Plus d'informations
il y a 7 ans 3 mois #28157 par Arnaud Petitjean
Ne t'en fait pas pour Conhost, c'est un processus système.

Ton process s'appelle bien \&quot;WinDump\&quot;.

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 7 ans 3 mois #28158 par Arnaud Petitjean
Pour récupérer une référence vers ton process Windump, tu peux faire ceci :

[code:1]
$process = Start-Process windump.exe -PassThru
[/code:1]

C'est grâce au paramètre -PassThru que l'objet est retourné, sinon PowerShell ne fait qu'exécuter le processus.

On trouve le paramètre -PassThru sur pas mal de commandes PowerShell.

Arnaud

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 7 ans 3 mois #28160 par dimshell
Réponse de dimshell sur le sujet Re:Powershell attendre l'exec
Merci pour tes explications.
Donc après tu joue avec ta référence?

[code:1]$avant = Get-Process

# Lancement d'une application, par exemple Windump.exe ou calc.exe

$process =Start-Process C:\Users\\Desktop\Windump.exe -PassThru -ArgumentList \&quot;-i 2 -q -n -t -c 500 tcp\&quot;

# Récupération des processus à un instant t + 1
$apres = Get-Process

# Comparaison des objets pour trouver l'intrus
Compare-Object -ReferenceObject $avant -DifferenceObject $apres[/code:1]<br><br>Message édité par: dimshell, à: 12/02/19 15:47

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

Plus d'informations
il y a 7 ans 3 mois #28165 par Arnaud Petitjean
Oui tout à fait. Et tu retrouveras ainsi directement la méthode WaitForExit() sur ton objet $process.

Ca devrait simplifier ton code.

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 7 ans 3 mois #28168 par dimshell
Réponse de dimshell sur le sujet Re:Powershell attendre l'exec
Bonjour Arnaud merci pour ta réponse,

C'est bon j'ai réussi.


Je sais que le $avant et $après sont inutile je vais les supprimer après c’était pour bien voir.
[code:1]# Récupére le chemin utilisateur
$path = Get-Location

# Commande WinDump
$argum=\&quot;-i 2 -q -n -t -c 1500 tcp\&quot;

# Contenant le résultat du WinDump
$fichier = \&quot;$path\Documents\testdump.txt\&quot;

# Contenant le résultat après modifiction de la variable $fichier
$newcontenu = \&quot;$path\Documents\testdump2.txt\&quot;

# Colonne du CSV
$Header = \&quot;c1\&quot;,\&quot;ipsrc\&quot;, \&quot;portsrc\&quot;, \&quot;ipdest\&quot;, \&quot;portdest\&quot;, \&quot;c6\&quot;

# Lancement d'une application Windump.exe avec l'argument une variable contenant la commande WinDump et écrit dans le fichier fournit
$process=Start-Process $path\Desktop\Windump.exe -PassThru -ArgumentList $argum -RedirectStandardOutput $fichier

# Attends la fin d'execution du processus pour continuer le script
$process.WaitForExit()

# Lecture du fichier comme ci celui-ci été un CSV
$dump = Import-Csv $fichier -Header $Header -Delimiter \&quot; \&quot;


# Remplace après l'ip de destination le : par du vide (parcours l'ensemble des objets)
$dump | foreach {
$_.ipdest = $_.ipdest -replace \&quot;:\&quot;,\&quot; \&quot;
}

# Remplace via une regex les differentes colonnes (parcours l'ensemble des objets)
$result = $dump | foreach {
$portsrc = $_.ipsrc -replace [regex]\&quot;([0-9]{1,3}\.){3}[0-9]{1,3}(\.)\&quot;,\&quot;\&quot;
$ipsrc = ($_.ipsrc -split [regex]\&quot;([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})\&quot;)[1]
$portdest = $_.ipdest -replace [regex]\&quot;([0-9]{1,3}\.){3}[0-9]{1,3}(\.)\&quot;, \&quot;\&quot;
$ipdest = ($_.ipdest -split [regex]\&quot;([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})\&quot;)[1]
$_ | select @{n=\&quot;ipsrc\&quot;;e={$ipsrc}},@{n=\&quot;portsrc\&quot;;e={$portsrc}},@{n=\&quot;ipdest\&quot;;e={$ipdest}},@{n=\&quot;portdest\&quot;;e={$portdest}}
}

# écrit dans le résultat dans le fichier $newcontenu et ajoute entre l'ip dest/ source / port un ; (parcours l'ensemble des objets)
$result | foreach {
\&quot;$($_.ipsrc);$($_.portsrc);$($_.ipdest);$($_.portdest)\&quot;
} | Set-Content $newcontenu



# export en CSV sans doublons
$result| select ipsrc, portsrc, ipdest, portdest -Unique | export-csv $path\Documents\windumptest.csv \&quot;;\&quot; -NoTypeInformation
[/code:1]

Et pour la tâche planifié c'était bizarre mais ça marche pas avec ce code =(

J'ai ajouté des pause
Read-Host -Prompt \&quot;Press Enter to exit\&quot;

Je suis débile , j'ai changé le nom et je charge dans la tâche planifié le mauvais nom DEBILE !!!!!!!!!!!!!!!!!!!!

Mais peut-on faire comme je veux faire pour éviter de remarquer le chemin à chaque fois?? $path

Message édité par: dimshell, à: 13/02/19 15:00<br><br>Message édité par: dimshell, à: 13/02/19 15:07

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

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