Question [Résolu]Path Script Powershell

Plus d'informations
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.

Plus d'informations
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]

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

Plus d'informations
il y a 7 ans 3 mois #28201 par Arnaud Petitjean
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?

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.

Plus d'informations
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

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

Plus d'informations
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=\&quot;$($env:USERPROFILE)\Documents\&quot;[/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.

Plus d'informations
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=\&quot;$($env:USERPROFILE)\Documents\&quot;
$pathexec=\&quot;$($env:USERPROFILE)\Desktop\&quot;

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

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

# Contenant le résultat après modifiction de la variable $fichier
$newcontenu = \&quot;$path\WindumpTri.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 $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 \&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\Windump.csv \&quot;;\&quot; -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
Propulsé par Kunena