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 #28185
par dimshell
[Résolu]Path Script Powershell a été créé par dimshell
Bonjour,
J’aimerais utiliser une variable Path pour éviter de taper à chaque fois le chemin sur chaque serveur.
je fais bien un $path=get-location
et je le place avant le \Desktop\.. mais lors de l'exécution en tâche planifié j'ai une erreur.
[code:1]Import-Csv : Impossible de trouver une partie du chemin d'accès 'C:\windows\system32\Documents\testdump.txt'.
Au caractère C:\Users\\Desktop\ScriptWinDump.ps1:24 : 9
+ $dump = Import-Csv $fichier -Header $Header -Delimiter \" \"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OpenError: (:«») [Import-Csv], DirectoryNotFoundException
+ FullyQualifiedErrorId : FileOpenFailure,Microsoft.PowerShell.Commands.ImportCsvCommand
La propriété « ipdest » est introuvable dans cet objet. Vérifiez qu’elle existe et qu’elle peut être définie.
Au caractère C:\Users\\Desktop\ScriptWinDump.ps1:29 : 5
+ $_.ipdest = $_.ipdest -replace \":\",\" \"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation : (:«») [], RuntimeException
+ FullyQualifiedErrorId : PropertyNotFound[/code:1]
[code:1]C:\Users\\Desktop\Windump.exe -ArgumentList \"-D\"
# Commande WinDump
$a=2
$argum=\"-i $a -q -n -t -c 500 tcp\"
$path=Get-Location
# Contenant le résultat du WinDump
$fichier = \"$path\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]<br><br>Message édité par: dimshell, à: 19/02/19 10:06
J’aimerais utiliser une variable Path pour éviter de taper à chaque fois le chemin sur chaque serveur.
je fais bien un $path=get-location
et je le place avant le \Desktop\.. mais lors de l'exécution en tâche planifié j'ai une erreur.
[code:1]Import-Csv : Impossible de trouver une partie du chemin d'accès 'C:\windows\system32\Documents\testdump.txt'.
Au caractère C:\Users\\Desktop\ScriptWinDump.ps1:24 : 9
+ $dump = Import-Csv $fichier -Header $Header -Delimiter \" \"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OpenError: (:«») [Import-Csv], DirectoryNotFoundException
+ FullyQualifiedErrorId : FileOpenFailure,Microsoft.PowerShell.Commands.ImportCsvCommand
La propriété « ipdest » est introuvable dans cet objet. Vérifiez qu’elle existe et qu’elle peut être définie.
Au caractère C:\Users\\Desktop\ScriptWinDump.ps1:29 : 5
+ $_.ipdest = $_.ipdest -replace \":\",\" \"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation : (:«») [], RuntimeException
+ FullyQualifiedErrorId : PropertyNotFound[/code:1]
[code:1]C:\Users\\Desktop\Windump.exe -ArgumentList \"-D\"
# Commande WinDump
$a=2
$argum=\"-i $a -q -n -t -c 500 tcp\"
$path=Get-Location
# Contenant le résultat du WinDump
$fichier = \"$path\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]<br><br>Message édité par: dimshell, à: 19/02/19 10:06
Connexion ou Créer un compte pour participer à la conversation.
- Sinjk
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 99
- Remerciements reçus 0
il y a 7 ans 3 mois #28186
par Sinjk
Réponse de Sinjk sur le sujet Re:Path Script Powershell
Hello,
Cette partie la me chiffone
Ton script tu le lances en admin ? si c'est le cas, le get-location résultera toujours par
Cette partie la me chiffone
'C:\windows\system32\Documents\testdump.txt'
Ton script tu le lances en admin ? si c'est le cas, le get-location résultera toujours par
d'où le fait qu'il ne trouve pas une partie du chemin que tu as indiqué !C:\windows\system32
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 #28187
par dimshell
Réponse de dimshell sur le sujet Re:Path Script Powershell
Merci pour ta réponse.
Je le lance depuis un utilisateur qui est admin du poste.
Mais quand je lances la commande seule j'ai bien c:\Users\mon_nom\Documents et dans la tâche planifié C:\windows\system32
Je le lance depuis un utilisateur qui est admin du poste.
Mais quand je lances la commande seule j'ai bien c:\Users\mon_nom\Documents et dans la tâche planifié C:\windows\system32
Connexion ou Créer un compte pour participer à la conversation.
- Sinjk
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 99
- Remerciements reçus 0
il y a 7 ans 3 mois #28188
par Sinjk
Réponse de Sinjk sur le sujet Re:Path Script Powershell
Et dans la partie \"Utiliser le compte utilisateur suivant pour exécuter cette tâche:\", quel utilisateur est selectionné ?<br><br>Message édité par: Sinjk, à: 14/02/19 13:10
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 #28189
par dimshell
Réponse de dimshell sur le sujet Re:Path Script Powershell
C'est bien l'utilisateur.
Utiliser le compte utilisateur suivant pour exécuter cette tâche:
truc.truc
Utiliser le compte utilisateur suivant pour exécuter cette tâche:
truc.truc
Connexion ou Créer un compte pour participer à la conversation.
- Sinjk
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 99
- Remerciements reçus 0
il y a 7 ans 3 mois #28190
par Sinjk
Réponse de Sinjk sur le sujet Re:Path Script Powershell
D'accord, et est-ce que le path est toujours sous le même schéma C:\Users\mon_nom\Documents ?
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.043 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- [Résolu]Path Script Powershell