PowerShell | Ajouter ou supprimer une ligne dans un fichier
Si vous avez besoin de supprimer une ligne dans un fichier via une commande sur un poste de travail, suivez cette article.
Nous prendrons deux méthodes de modifications, avec pour exemple un fichier hosts et un fichier de configuration du client VMWare Horizon Mirage.
Le rôle du fichier hosts dans votre système Windows est d'associer des noms d'hôtes (nom d'ordinateur, serveur...) à des adresses IP supplémentaires.
Les instructions suivantes fonctionnent pour tout les fichiers reconnu par le Bloc-notes.
Le chemin de ce fichier est celui-ci :
C:\windows\system32\drivers\etc\hosts
1 - Ajouter une ligne dans un fichier via PowerShell
Pour renommer le fichier hosts d'origine afin de le sauvegarder et ajouter une ligne, nous allons utiliser PowerShell créer le script remover-1.ps1 :
$File = "c:\Windows\System32\drivers\etc\hosts"
$temp = Get-Content "$File"
Set-Content -Path "c:\Windows\System32\drivers\etc\hosts-old_$(Get-Date -Format yyyyMMdd'-'HH\'H'mm\'mn'ss)" -Value $temp
$Content = Get-Content "$File" | where { $_ -notmatch "Ligne-de-résolution-de-nom-à-ajouter"}
Set-Content -Path "$File" -Value $Content
Batch pour baisser la restriction de sécurité afin d'exécuter le fichier remover-1.ps1
J'en avais besoin pour autoriser l'exécution de PowerShell sur des périphériques distant.
Par contre je vous conseil plutôt l'exécution de scripts signé, plus sécurisé. Vous pouvez aussi remettre la restriction à la fin du script, comme celui-ci.
Nom du fichier qui lance remover-1.ps1 à partir du dossier c:\scripts : cmd.bat
@echo off
for /f %%a in ('powershell.exe get-executionpolicy') do set "b=%%a"
powershell.exe Set-ExecutionPolicy Unrestricted
cd "C:\scripts"
powershell.exe ".\remover-1.ps1"
if %b% == Restricted (powershell.exe Set-ExecutionPolicy Restricted)
exit /B 0
2 - Remplacer une ligne dans le fichier via PowerShell
$File = "C:\program files\Wanova\Mirage Service\Wanova.Desktop.Service.exe.config"
$content = Get-Content $File | foreach { $_ -replace "blog4fayadem97x.fr","blog4me.fr" }
Set-Content -Path "$File" -Value $Content
Restart-Service -Name "Wanova Mirage Desktop Service"