PowerShell | Ajouter ou supprimer une ligne dans un fichier

Rédigé par O. Clotaire Aucun commentaire

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

Ici, il s'agissait de remplacer le nom de l'ancien serveur dans le fichier de configuration du client de VMWare Horizon Mirage. 
Ce fichier de configuration est appliqué par le client Mirage, et maintenu par son service que l'on redémarre pour la prise en compte. La dernière ligne m'a permit de redémarrer le service pour la prise en compte par le client Horizon Mirage.

Le nom du fichier qui lance remover-2.ps1 à partir du dossier c:\scripts : cmd.bat. 
C'est le même fichier que celui du chapitre 1. Remplacer simplement remover-1.ps1 par remover-2.ps1. 

remover-2.ps1 :
$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"

A PROPOS

  • Grace à mon expérience dans les Systèmes d'Information, j'ai le privilège de partager mon expérience en les centralisant sous la forme d’une base de connaissance.
  • Parfois certaines de nos questions ne trouvent pas toujours de réponse. Le domaine de l’informatique évolue rapidement, il est alors important de pouvoir profiter des solutions déjà expérimentés.
  • Ce site sera de plus en plus accessible.
  • Je vous remercie d’avance pour vos éventuelles remarques constructives permettant son amélioration.

Écrire un commentaire

 Se rappeler de moi sur ce site
Quelle est le dernier caractère du mot 4ued7n ?

Fil RSS des commentaires de cet article

↓