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-Commandpour 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-Historypour 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-Itemavec le paramètre-ItemTypepour 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-Pathpour concaténer des chemins. Par exemple, pour concaténerC:\Tempettest.csven un seul chemin, tapez :Join-Path C:\Temp test.csv.Utiliser la commande
Test-Pathpour vérifier si un chemin existe. Par exemple, pour vérifier si le fichierC:\Temp\test.csvexiste, tapez :Test-Path C:\Temp\test.csv.Utiliser la commande
Get-Processpour afficher les processus en cours d’exécution sur un ordinateur. Vous pouvez également utiliser le paramètre-Namepour 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
ActiveDirectorypour 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-Counterpour 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-NetConnectionpour 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-Commandpour 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
timeoutpour 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 /fpour lire le contenu d’un fichier ligne par ligne. Par exemple, pour afficher le contenu du fichierC:\Temp\test.txtligne par ligne, tapez :
for /f "delims=" %%i in (C:\Temp\test.txt) do echo %%i
- Utiliser la commande
xcopypour copier des fichiers et des répertoires. Par exemple, pour copier le contenu du répertoireC:\Tempdans le répertoireD:\Backup, tapez :
xcopy C:\Temp D:\Backup /s /e
Utiliser la commande
wmicpour 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
findstrpour 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
pushdetpopdpour changer de répertoire. La commandepushdpermet de changer de répertoire et de stocker l’emplacement actuel dans une file d’attente, tandis que la commandepopdpermet de revenir à l’emplacement précédent. Par exemple, pour naviguer dans le répertoireC:\Temp, tapez :pushd C:\Tempet pour revenir à l’emplacement précédent, tapez :popd.Utiliser la commande
netstatpour afficher les connexions réseau en cours. Par exemple, pour afficher les connexions TCP actives, tapez :
netstat -aon | findstr "TCP"
Utiliser la commande
typepour 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
choicepour 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
robocopypour 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:\Tempdans le répertoireD:\Backupen 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/ ↩︎