Question
[Résolu]Path Script Powershell
- dimshell
- Auteur du sujet
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 86
- Remerciements reçus 0
il y a 7 ans 3 mois #28191
par dimshell
Réponse de dimshell sur le sujet Re:Path Script Powershell
Non juste truc.truc rien d'autre
Connexion ou Créer un compte pour participer à la conversation.
- dimshell
- Auteur du sujet
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 86
- Remerciements reçus 0
il y a 7 ans 3 mois #28192
par dimshell
Réponse de dimshell sur le sujet Re:Path Script Powershell
Petit update du code mais toujours le problèmes du $path
[code:1]
$eth=@(C:\Users\\Desktop\Windump.exe -ArgumentList -D)
foreach($item in $eth){
if ($item -match 'intel'){
$newitem =$item.Substring(0,1)
}
}
# Commande WinDump
$argum=\"-i $newitem -q -n -t -c 500 tcp\"
# Contenant le résultat du WinDump
$fichier = \"C:\Users\\Documents\testdump.txt\"
# Contenant le résultat après modifiction de la variable $fichier
$newcontenu = \"C:\Users\\Documents\testdump2.txt\"
# Colonne du CSV
$Header = \"c1\",\"ipsrc\", \"portsrc\", \"ipdest\", \"portdest\", \"c6\"
# Lancement d'une application Windump.exe avec l'argument une variable contenant la commande WinDump et écrit dans le fichier fournit
$process=Start-Process C:\Users\\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 \" \"
# Remplace après l'ip de destination le : par du vide (parcours l'ensemble des objets)
$dump | foreach {
$_.ipdest = $_.ipdest -replace \":\",\" \"
}
# Remplace via une regex les differentes colonnes (parcours l'ensemble des objets)
$result = $dump | foreach {
$portsrc = $_.ipsrc -replace [regex]\"([0-9]{1,3}\.){3}[0-9]{1,3}(\.)\",\"\"
$ipsrc = ($_.ipsrc -split [regex]\"([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})\"«»)[1]
$portdest = $_.ipdest -replace [regex]\"([0-9]{1,3}\.){3}[0-9]{1,3}(\.)\", \"\"
$ipdest = ($_.ipdest -split [regex]\"([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})\"«»)[1]
$_ | select @{n=\"ipsrc\";e={$ipsrc}},@{n=\"portsrc\";e={$portsrc}},@{n=\"ipdest\";e={$ipdest}},@{n=\"portdest\";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 {
\"$($_.ipsrc);$($_.portsrc);$($_.ipdest);$($_.portdest)\"
} | Set-Content $newcontenu
# export en CSV sans doublons
$result| select ipsrc, portsrc, ipdest, portdest -Unique | export-csv C:\Users\\Documents\windumptest.csv \";\" -NoTypeInformation
[/code:1]
[code:1]
$eth=@(C:\Users\\Desktop\Windump.exe -ArgumentList -D)
foreach($item in $eth){
if ($item -match 'intel'){
$newitem =$item.Substring(0,1)
}
}
# Commande WinDump
$argum=\"-i $newitem -q -n -t -c 500 tcp\"
# Contenant le résultat du WinDump
$fichier = \"C:\Users\\Documents\testdump.txt\"
# Contenant le résultat après modifiction de la variable $fichier
$newcontenu = \"C:\Users\\Documents\testdump2.txt\"
# Colonne du CSV
$Header = \"c1\",\"ipsrc\", \"portsrc\", \"ipdest\", \"portdest\", \"c6\"
# Lancement d'une application Windump.exe avec l'argument une variable contenant la commande WinDump et écrit dans le fichier fournit
$process=Start-Process C:\Users\\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 \" \"
# Remplace après l'ip de destination le : par du vide (parcours l'ensemble des objets)
$dump | foreach {
$_.ipdest = $_.ipdest -replace \":\",\" \"
}
# Remplace via une regex les differentes colonnes (parcours l'ensemble des objets)
$result = $dump | foreach {
$portsrc = $_.ipsrc -replace [regex]\"([0-9]{1,3}\.){3}[0-9]{1,3}(\.)\",\"\"
$ipsrc = ($_.ipsrc -split [regex]\"([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})\"«»)[1]
$portdest = $_.ipdest -replace [regex]\"([0-9]{1,3}\.){3}[0-9]{1,3}(\.)\", \"\"
$ipdest = ($_.ipdest -split [regex]\"([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})\"«»)[1]
$_ | select @{n=\"ipsrc\";e={$ipsrc}},@{n=\"portsrc\";e={$portsrc}},@{n=\"ipdest\";e={$ipdest}},@{n=\"portdest\";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 {
\"$($_.ipsrc);$($_.portsrc);$($_.ipdest);$($_.portdest)\"
} | Set-Content $newcontenu
# export en CSV sans doublons
$result| select ipsrc, portsrc, ipdest, portdest -Unique | export-csv C:\Users\\Documents\windumptest.csv \";\" -NoTypeInformation
[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
- Arnaud Petitjean
-
- Hors Ligne
- Modérateur
-
il y a 7 ans 3 mois #28201
par Arnaud Petitjean
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 ?
Réponse de Arnaud Petitjean sur le sujet Re:Path Script Powershell
Bonjour,
Au lieu de Get-Location,
[code:1]
$path=Get-Location
[/code:1]
Essaie plutôt la variable automatique $PSScriptRoot
Soit
[code:1]
$path=$PSScriptRoot
[/code:1]
Celle-ci contient - au moment de l'exécution - le répertoire courant où se trouve le script. Ce qui n'est pas le cas de Get-Location.
Plus d'infos sur ce fil de discussion : How can I get the file system location of a PowerShell script?
Au lieu de Get-Location,
[code:1]
$path=Get-Location
[/code:1]
Essaie plutôt la variable automatique $PSScriptRoot
Soit
[code:1]
$path=$PSScriptRoot
[/code:1]
Celle-ci contient - au moment de l'exécution - le répertoire courant où se trouve le script. Ce qui n'est pas le cas de Get-Location.
Plus d'infos sur ce fil de discussion : How can I get the file system location of a PowerShell script?
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 ?
Les utilisateur(s) suivant ont remercié: Jonathan CHANAL
Connexion ou Créer un compte pour participer à la conversation.
- dimshell
- Auteur du sujet
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 86
- Remerciements reçus 0
il y a 7 ans 3 mois #28206
par dimshell
Réponse de dimshell sur le sujet Re:Path Script Powershell
Merci pour ta réponse.
Mais pourtant quand tu fais un get-location il me mets bien mon chemin.
Enfaîte ce que je veux faire c'est vraiment prendre le chemin genre C:\Users\mon_nom\Documents comme ça lors du déploiement pas besoin de changer à la main sur chaque serveur le script.<br><br>Message édité par: dimshell, à: 15/02/19 11:05
Mais pourtant quand tu fais un get-location il me mets bien mon chemin.
Enfaîte ce que je veux faire c'est vraiment prendre le chemin genre C:\Users\mon_nom\Documents comme ça lors du déploiement pas besoin de changer à la main sur chaque serveur le script.<br><br>Message édité par: dimshell, à: 15/02/19 11:05
Connexion ou Créer un compte pour participer à la conversation.
- Hicham Madini
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 98
- Remerciements reçus 0
il y a 7 ans 3 mois #28207
par Hicham Madini
Réponse de Hicham Madini sur le sujet Re:Path Script Powershell
Slt,
essaie ca: [code:1]$path=\"$($env:USERPROFILE)\Documents\"[/code:1]
tu peux trouver toutes les variables d'environment en utilisant:
[code:1]Get-ChildItem Env: | Sort Name[/code:1]<br><br>Message édité par: hichammadd, à: 15/02/19 11:43
essaie ca: [code:1]$path=\"$($env:USERPROFILE)\Documents\"[/code:1]
tu peux trouver toutes les variables d'environment en utilisant:
[code:1]Get-ChildItem Env: | Sort Name[/code:1]<br><br>Message édité par: hichammadd, à: 15/02/19 11:43
Connexion ou Créer un compte pour participer à la conversation.
- dimshell
- Auteur du sujet
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 86
- Remerciements reçus 0
il y a 7 ans 3 mois #28212
par dimshell
Réponse de dimshell sur le sujet Re:Path Script Powershell
Merci pour ta réponse.
ça marche niquel mais j'ai juste un soucis avec le $eth enfin vu que je suppose que c'est un tableau. il doit y avoir des conditions à respecter ?
[code:1]# Permets de lister les cartes réseau connectées
$eth=@(C:\Users\\Desktop\Windump.exe -ArgumentList -D)
# Parcours les cartes et si il y a intel dedans stock le premier caractére donc le numéro de la carte pour notre commande Windump de la varaible $argum
foreach($item in $eth){
if ($item -match 'intel'){
$newitem =$item.Substring(0,1)
}
}
$path=\"$($env:USERPROFILE)\Documents\"
$pathexec=\"$($env:USERPROFILE)\Desktop\"
# Commande WinDump
$argum=\"-i $newitem -q -n -t -c 500 tcp\"
# Contenant le résultat du WinDump
$fichier = \"$path\Windump.txt\"
# Contenant le résultat après modifiction de la variable $fichier
$newcontenu = \"$path\WindumpTri.txt\"
# Colonne du CSV
$Header = \"c1\",\"ipsrc\", \"portsrc\", \"ipdest\", \"portdest\", \"c6\"
# Lancement d'une application Windump.exe avec l'argument une variable contenant la commande WinDump et écrit dans le fichier fournit
$process=Start-Process $pathexec\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 \" \"
# Remplace après l'ip de destination le : par du vide (parcours l'ensemble des objets)
$dump | foreach {
$_.ipdest = $_.ipdest -replace \":\",\" \"
}
# Remplace via une regex les differentes colonnes (parcours l'ensemble des objets)
$result = $dump | foreach {
$portsrc = $_.ipsrc -replace [regex]\"([0-9]{1,3}\.){3}[0-9]{1,3}(\.)\",\"\"
$ipsrc = ($_.ipsrc -split [regex]\"([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})\"«»)[1]
$portdest = $_.ipdest -replace [regex]\"([0-9]{1,3}\.){3}[0-9]{1,3}(\.)\", \"\"
$ipdest = ($_.ipdest -split [regex]\"([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})\"«»)[1]
$_ | select @{n=\"ipsrc\";e={$ipsrc}},@{n=\"portsrc\";e={$portsrc}},@{n=\"ipdest\";e={$ipdest}},@{n=\"portdest\";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 {
\"$($_.ipsrc);$($_.portsrc);$($_.ipdest);$($_.portdest)\"
} | Set-Content $newcontenu
# export en CSV sans doublons
$result| select ipsrc, portsrc, ipdest, portdest -Unique | export-csv $path\Windump.csv \";\" -NoTypeInformation
[/code:1]
Message édité par: dimshell, à: 15/02/19 13:00
Message édité par: dimshell, à: 15/02/19 13:03<br><br>Message édité par: dimshell, à: 15/02/19 13:05
ça marche niquel mais j'ai juste un soucis avec le $eth enfin vu que je suppose que c'est un tableau. il doit y avoir des conditions à respecter ?
[code:1]# Permets de lister les cartes réseau connectées
$eth=@(C:\Users\\Desktop\Windump.exe -ArgumentList -D)
# Parcours les cartes et si il y a intel dedans stock le premier caractére donc le numéro de la carte pour notre commande Windump de la varaible $argum
foreach($item in $eth){
if ($item -match 'intel'){
$newitem =$item.Substring(0,1)
}
}
$path=\"$($env:USERPROFILE)\Documents\"
$pathexec=\"$($env:USERPROFILE)\Desktop\"
# Commande WinDump
$argum=\"-i $newitem -q -n -t -c 500 tcp\"
# Contenant le résultat du WinDump
$fichier = \"$path\Windump.txt\"
# Contenant le résultat après modifiction de la variable $fichier
$newcontenu = \"$path\WindumpTri.txt\"
# Colonne du CSV
$Header = \"c1\",\"ipsrc\", \"portsrc\", \"ipdest\", \"portdest\", \"c6\"
# Lancement d'une application Windump.exe avec l'argument une variable contenant la commande WinDump et écrit dans le fichier fournit
$process=Start-Process $pathexec\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 \" \"
# Remplace après l'ip de destination le : par du vide (parcours l'ensemble des objets)
$dump | foreach {
$_.ipdest = $_.ipdest -replace \":\",\" \"
}
# Remplace via une regex les differentes colonnes (parcours l'ensemble des objets)
$result = $dump | foreach {
$portsrc = $_.ipsrc -replace [regex]\"([0-9]{1,3}\.){3}[0-9]{1,3}(\.)\",\"\"
$ipsrc = ($_.ipsrc -split [regex]\"([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})\"«»)[1]
$portdest = $_.ipdest -replace [regex]\"([0-9]{1,3}\.){3}[0-9]{1,3}(\.)\", \"\"
$ipdest = ($_.ipdest -split [regex]\"([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})\"«»)[1]
$_ | select @{n=\"ipsrc\";e={$ipsrc}},@{n=\"portsrc\";e={$portsrc}},@{n=\"ipdest\";e={$ipdest}},@{n=\"portdest\";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 {
\"$($_.ipsrc);$($_.portsrc);$($_.ipdest);$($_.portdest)\"
} | Set-Content $newcontenu
# export en CSV sans doublons
$result| select ipsrc, portsrc, ipdest, portdest -Unique | export-csv $path\Windump.csv \";\" -NoTypeInformation
[/code:1]
Message édité par: dimshell, à: 15/02/19 13:00
Message édité par: dimshell, à: 15/02/19 13:03<br><br>Message édité par: dimshell, à: 15/02/19 13:05
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.047 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- [Résolu]Path Script Powershell