Scripting de base et technologies de déploiement
Définition
Le scripting en IT permet d'automatiser des tâches répétitives via des fichiers de commandes. Les technologies de déploiement facilitent l'installation et la configuration de systèmes d'exploitation et de logiciels sur plusieurs machines simultanément.
| Langage de script |
Extension |
Usage |
| PowerShell |
.ps1 |
Administration Windows, Active Directory, Azure |
| Batch (CMD) |
.bat / .cmd |
Scripts Windows simples, hérité |
| Bash |
.sh |
Linux, macOS, Git Bash |
| Python |
.py |
Multiplateforme, automation, outils |
| VBScript |
.vbs |
Hérité Windows (déprécié) |
| JavaScript |
.js |
Automation web, Node.js |
Contexte
CompTIA A+ teste la capacité à identifier les types de scripts, comprendre leur syntaxe de base et savoir quand les utiliser. L'examen attend aussi la connaissance des méthodes de déploiement d'image (MDT, WDS, PXE, Autopilot).
Détails techniques
Comparaison des langages de script
| Critère |
PowerShell |
Batch |
Bash |
Python |
| Système |
Windows |
Windows |
Linux/macOS |
Multiplateforme |
| Complexité |
Moyenne |
Simple |
Moyenne |
Moyenne |
| Variables |
$variable |
%variable% |
$variable |
variable |
| Commentaire |
# commentaire |
REM commentaire |
# commentaire |
# commentaire |
| Boucle |
foreach, for |
FOR |
for, while |
for, while |
| Condition |
if, switch |
IF |
if, case |
if, elif |
Exemples de scripts basiques
# PowerShell : Créer des comptes utilisateurs en masse
$users = Import-Csv "C:\users.csv"
foreach ($user in $users) {
New-LocalUser -Name $user.Name -Password (ConvertTo-SecureString $user.Password -AsPlainText -Force)
Add-LocalGroupMember -Group "Users" -Member $user.Name
}
REM Batch : Mapper un lecteur réseau et copier des fichiers
@echo off
net use Z: \\serveur\partage /user:domaine\utilisateur
xcopy C:\Data Z:\Backup\ /E /Y
echo Sauvegarde terminée.
pause
#!/bin/bash
# Bash : Vérifier l'espace disque et alerter
USAGE=$(df / | tail -1 | awk '{print $5}' | sed 's/%//')
if [ $USAGE -gt 90 ]; then
echo "ALERTE : Disque à ${USAGE}% !"
fi
# Python : Scanner les ports ouverts sur un réseau
import subprocess
hosts = ["192.168.1." + str(i) for i in range(1, 255)]
for host in hosts:
result = subprocess.run(["ping", "-n", "1", "-w", "500", host],
capture_output=True)
if result.returncode == 0:
print(f"{host} est joignable")
Technologies de déploiement
| Technologie |
Description |
Usage |
| WDS (Windows Deployment Services) |
Déploiement d'images Windows via réseau (PXE) |
Entreprise, Windows Server |
| MDT (Microsoft Deployment Toolkit) |
Séquences de tâches pour déploiement personnalisé |
Déploiement avancé sur site |
| SCCM / MECM |
Gestion complète du cycle de vie des postes |
Grande entreprise |
| Windows Autopilot |
Déploiement cloud, zero-touch |
Microsoft 365 / Azure AD |
| Sysprep |
Généralise une image Windows (retire les identifiants uniques) |
Préparation d'image maître |
| PXE Boot |
Démarrage réseau sans média local |
Déploiement en masse |
| Unattend.xml |
Fichier de réponses pour installation automatisée |
Installation sans intervention |
Processus de déploiement d'image
1. Installer Windows sur un PC de référence
│
2. Configurer les paramètres, logiciels, drivers
│
3. Exécuter Sysprep (généralisation)
│ sysprep /generalize /oobe /shutdown
│
4. Capturer l'image (WDS ou DISM)
│ dism /Capture-Image /ImageFile:D:\image.wim
│ /CaptureDir:C:\ /Name:"Image Master"
│
5. Stocker l'image sur le serveur WDS/MDT
│
6. Déployer via PXE sur les nouveaux PC
│ PC démarre → PXE boot → Télécharge l'image → Installe
│
7. Post-installation : rejoindre le domaine, appliquer GPO
Exécution de scripts — Sécurité
| Politique d'exécution PowerShell |
Description |
| Restricted |
Aucun script (défaut Windows) |
| AllSigned |
Scripts signés uniquement |
| RemoteSigned |
Scripts locaux OK, distants doivent être signés |
| Unrestricted |
Tous les scripts (avertissement pour les distants) |
# Vérifier la politique d'exécution
Get-ExecutionPolicy
# Définir la politique (nécessite admin)
Set-ExecutionPolicy RemoteSigned -Scope LocalMachine
Automatisation courante pour les techniciens
| Tâche |
Script recommandé |
| Créer des comptes en masse |
PowerShell + CSV |
| Mapper des lecteurs réseau au logon |
Batch ou PowerShell via GPO |
| Surveiller l'espace disque |
PowerShell planifié (Task Scheduler) |
| Installer des logiciels silencieusement |
PowerShell + chocolatey ou winget |
| Sauvegarder des dossiers |
robocopy dans un batch planifié |
Exemple concret
Le service IT doit déployer Windows 11 sur 80 nouveaux laptops. Le technicien installe Windows 11 sur un PC de référence, installe Office 365, les drivers, configure les paramètres. Il exécute sysprep /generalize /oobe /shutdown, capture l'image avec DISM et la charge sur le serveur WDS. Les 80 laptops démarrent en PXE, reçoivent l'image, se configurent automatiquement via le fichier unattend.xml et rejoignent le domaine AD. En parallèle, un script PowerShell crée les 80 comptes utilisateurs depuis un CSV fourni par les RH.