Astuces et techniques pour PowerShell et Batch1

En tant que sysadmin, vous utilisez probablement PowerShell et Batch pour automatiser des tâches courantes sur vos serveurs et ordinateurs. Mais saviez-vous qu’il existe des astuces et des fonctionnalités moins connues qui peuvent rendre votre travail plus efficace et plus facile ? Voici quelques-unes de ces astuces et techniques avancées :

PowerShell

  1. Utiliser la commande Measure-Command pour mesurer le temps d’exécution d’une commande PowerShell. Par exemple, pour mesurer le temps qu’il faut pour exécuter la commande Get-ChildItem C:\, tapez :
Measure-Command { Get-ChildItem C:\ }
  1. Utiliser la commande Get-History pour afficher l’historique des commandes PowerShell exécutées. Vous pouvez également utiliser les flèches haut et bas pour parcourir l’historique des commandes.

  2. Utiliser la commande New-Item avec le paramètre -ItemType pour créer différents types de fichiers. Par exemple, pour créer un fichier CSV, tapez :

New-Item -ItemType csv -Path C:\Temp\test.csv
  1. Utiliser la commande Join-Path pour concaténer des chemins. Par exemple, pour concaténer C:\Temp et test.csv en un seul chemin, tapez : Join-Path C:\Temp test.csv.

  2. Utiliser la commande Test-Path pour vérifier si un chemin existe. Par exemple, pour vérifier si le fichier C:\Temp\test.csv existe, tapez : Test-Path C:\Temp\test.csv.

  3. Utiliser la commande Get-Process pour afficher les processus en cours d’exécution sur un ordinateur. Vous pouvez également utiliser le paramètre -Name pour afficher uniquement les processus correspondant à un nom spécifique. Par exemple, pour afficher les processus Notepad en cours d’exécution, tapez : Get-Process -Name notepad.

  4. Utiliser le module ActiveDirectory pour gérer les utilisateurs et les groupes Active Directory. Par exemple, pour afficher tous les utilisateurs d’un groupe, tapez :

Get-ADGroupMember -Identity "MyGroup" -Recursive | Where-Object { $_.objectClass -eq "user" }
  1. Utiliser la commande Get-Counter pour surveiller les performances système. Par exemple, pour surveiller le taux d’utilisation du processeur, tapez :
Get-Counter "\Processor(_Total)\% Processor Time"
  1. Utiliser la commande Test-NetConnection pour tester la connectivité réseau. Par exemple, pour tester la connexion à un serveur distant sur le port 80, tapez :
Test-NetConnection -ComputerName server01 -Port 80
  1. Utiliser la commande Invoke-Command pour exécuter des commandes PowerShell à distance sur des ordinateurs distants. Par exemple, pour afficher les processus en cours d’exécution sur un ordinateur distant, tapez :
 Invoke-Command -ComputerName remote01 -ScriptBlock { Get-Process }

Batch

  1. Utiliser la commande timeout pour attendre un certain nombre de secondes avant de poursuivre l’exécution du script. Par exemple, pour attendre 10 secondes, tapez : timeout /t 10.

  2. Utiliser la commande for /f pour lire le contenu d’un fichier ligne par ligne. Par exemple, pour afficher le contenu du fichier C:\Temp\test.txt ligne par ligne, tapez :

for /f "delims=" %%i in (C:\Temp\test.txt) do echo %%i
  1. Utiliser la commande xcopy pour copier des fichiers et des répertoires. Par exemple, pour copier le contenu du répertoire C:\Temp dans le répertoire D:\Backup, tapez :
xcopy C:\Temp D:\Backup /s /e
  1. Utiliser la commande wmic pour interroger les informations système à partir de la ligne de commande. Par exemple, pour afficher les informations du processeur, tapez : wmic cpu get name.

  2. Utiliser la commande findstr pour rechercher du texte dans des fichiers. Par exemple, pour rechercher le texte “Erreur” dans le fichier C:\Temp\log.txt, tapez :

findstr "Erreur" C:\Temp\log.txt
  1. Utiliser la commande pushd et popd pour changer de répertoire. La commande pushd permet de changer de répertoire et de stocker l’emplacement actuel dans une file d’attente, tandis que la commande popd permet de revenir à l’emplacement précédent. Par exemple, pour naviguer dans le répertoire C:\Temp, tapez : pushd C:\Temp et pour revenir à l’emplacement précédent, tapez : popd.

  2. Utiliser la commande netstat pour afficher les connexions réseau en cours. Par exemple, pour afficher les connexions TCP actives, tapez :

netstat -aon | findstr "TCP"
  1. Utiliser la commande type pour afficher le contenu d’un fichier. Par exemple, pour afficher le contenu du fichier C:\Temp\test.txt, tapez : type C:\Temp\test.txt.

  2. Utiliser la commande choice pour demander à l’utilisateur de faire un choix. Par exemple, pour demander à l’utilisateur de choisir entre les options A, B et C, tapez :

choice /c ABC /m "Choisissez une option :"
  1. Utiliser la commande robocopy pour copier des fichiers et des répertoires de manière plus avancée que la commande xcopy. Par exemple, pour copier le contenu du répertoire C:\Temp dans le répertoire D:\Backup en mode miroir, tapez :
robocopy C:\Temp D:\Backup /mir

Ces astuces et techniques avancées devraient vous aider à devenir plus efficace dans votre travail en tant que sysadmin. N’hésitez pas à les essayer et à les adapter à vos besoins spécifiques.


  1. Avis de non-responsabilité : cet article a été rédigé à l’aide de ChatGPT. Je n’ai pas essayé tous les conseils répertoriés ici. Utiliser avec précaution. https://chat.openai.com/ ↩︎