Bonjour à tous,
Etant juste débutant en Powershell, je dois réaliser un script novice, je m'explique:
Ayant referencé différents serveus Web à travers le parc informatique, la mission est de modifier des paramêtres contenus dans les fichiers "web.config" de chaque serveur.
Au niveau méthode voici à quoi j'ai pensé:
- Parcourir tous les serveurs et lister les emplacements des fichiers Web.conf. sur chaque serveur
- Verifier dans ces fichiers si les paramêtres sont ok ou non.
- Si non ok, remplacer les valeurs (true par false)
- Rassembler toutes ces infos dans un fichier excel avec Nom serveur, Chemin du fichier web.conf, Paramêtre 1= False ou true, Par 2= ...
Pour l'instant j'ai ceci, mais je bloque déjà car erreur:
Voici mon script:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 Vous ne pouvez pas appeler de méthode sur une expression ayant la valeur Null. Au niveau de C:\Temp\Lister et auditer\Script.ps1*: 4 Caractère*: 72 + Copy-Item -LiteralPath $filePath -Destination ($filePath).Replace <<<< ($fileName,("_"+$fileName)) + CategoryInfo : InvalidOperation: (Replace:String) [], RuntimeEx ception + FullyQualifiedErrorId : InvokeMethodOnNull Get-Content : Impossible de lier l'argument au paramètre «*Path*», car il a la valeur Null. Au niveau de C:\Temp\Lister et auditer\Script.ps1*: 6 Caractère*: 19 + (Get-Content <<<< $filePath) | ForEach-Object { + CategoryInfo : InvalidData: (:) [Get-Content], ParameterBinding ValidationException + FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,M icrosoft.PowerShell.Commands.GetContentCommand Press any key to continue .
Merci d'avance pour votre aide, à comprendre et découvrir ce langage si intéressant.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Get-ChildItem -Path "C:\Temp\Lister et auditer\Web.config\web.config1\" -Name "web.config" -Recurse | ForEach-Object { $filePath = $_.FullName $fileName = $_.Name Copy-Item -LiteralPath $filePath -Destination ($filePath).Replace($fileName,("_"+$fileName)) (Get-Content $filePath) | ForEach-Object { $_ -Replace 'Compilation debug.?=.?"true"', 'Compilation debug="false"' $_ -Replace 'Trace enable.?=.?"true"', 'Trace enable="false"' $_ -Replace 'customErrors mode.?=.?"On"', 'customErrors mode="Off"' $_ -Replace 'directoryBrowse enabled.?=.?"true"', 'directoryBrowse enabled="false"' } | Set-Content $filePath Write-Host "Press any key to continue …" $x = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown") }
Partager