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
- 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 commandeGet-ChildItem C:\
, tapez :
Measure-Command { Get-ChildItem C:\ }
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.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
Utiliser la commande
Join-Path
pour concaténer des chemins. Par exemple, pour concaténerC:\Temp
ettest.csv
en un seul chemin, tapez :Join-Path C:\Temp test.csv
.Utiliser la commande
Test-Path
pour vérifier si un chemin existe. Par exemple, pour vérifier si le fichierC:\Temp\test.csv
existe, tapez :Test-Path C:\Temp\test.csv
.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
.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" }
- 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"
- 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
- 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
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
.Utiliser la commande
for /f
pour lire le contenu d’un fichier ligne par ligne. Par exemple, pour afficher le contenu du fichierC:\Temp\test.txt
ligne par ligne, tapez :
for /f "delims=" %%i in (C:\Temp\test.txt) do echo %%i
- Utiliser la commande
xcopy
pour copier des fichiers et des répertoires. Par exemple, pour copier le contenu du répertoireC:\Temp
dans le répertoireD:\Backup
, tapez :
xcopy C:\Temp D:\Backup /s /e
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
.Utiliser la commande
findstr
pour rechercher du texte dans des fichiers. Par exemple, pour rechercher le texte “Erreur” dans le fichierC:\Temp\log.txt
, tapez :
findstr "Erreur" C:\Temp\log.txt
Utiliser la commande
pushd
etpopd
pour changer de répertoire. La commandepushd
permet de changer de répertoire et de stocker l’emplacement actuel dans une file d’attente, tandis que la commandepopd
permet de revenir à l’emplacement précédent. Par exemple, pour naviguer dans le répertoireC:\Temp
, tapez :pushd C:\Temp
et pour revenir à l’emplacement précédent, tapez :popd
.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"
Utiliser la commande
type
pour afficher le contenu d’un fichier. Par exemple, pour afficher le contenu du fichierC:\Temp\test.txt
, tapez :type C:\Temp\test.txt
.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 :"
- Utiliser la commande
robocopy
pour copier des fichiers et des répertoires de manière plus avancée que la commandexcopy
. Par exemple, pour copier le contenu du répertoireC:\Temp
dans le répertoireD:\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.
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/ ↩︎