Lister et modifier fichiers [web.config]
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:
Code:
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 . |
Voici mon script:
Code:
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")
} |
Merci d'avance pour votre aide, à comprendre et découvrir ce langage si intéressant.