Scripts PowerShell et Remédiation Proactive
Admin IT chez Argos Consulting — automatise la maintenance et détecte les dérives avant qu'elles deviennent des incidents.
Intune propose deux mécanismes complémentaires pour exécuter du PowerShell sur tes postes Windows. Comprendre la différence est essentiel avant de déployer quoi que ce soit.
C:\ProgramData\Microsoft\IntuneManagementExtension\Logs\
Trois cas d'usage concrets pour Argos Consulting. Explore chaque script, comprends sa logique, et copie-le pour ton propre déploiement.
# Détecte si SMBv1 est activé (exit 1 = à remédier)
try {
$smb = Get-SmbServerConfiguration | Select-Object -ExpandProperty EnableSMB1Protocol
if ($smb -eq $true) {
Write-Output "SMBv1 activé — remédiation requise"
exit 1 # non-conforme
} else {
Write-Output "SMBv1 désactivé — OK"
exit 0 # conforme
}
} catch { Write-Output "Erreur : $_"; exit 1 }
# ─── Remediate-SMBv1.ps1 ───────────────────────────────
try {
Set-SmbServerConfiguration -EnableSMB1Protocol $false -Force
Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol -NoRestart
Write-Output "SMBv1 désactivé avec succès"
exit 0
} catch { Write-Output "Échec : $_"; exit 1 }
$threshold = 10GB
$drive = Get-PSDrive -Name C
$free = $drive.Free
if ($free -lt $threshold) {
$freeGB = [math]::Round($free / 1GB, 1)
Write-Output "Espace insuffisant : ${freeGB} GB libres"
exit 1 # déclenche Remediate
} else { Write-Output "Espace OK"; exit 0 }
# ─── Remediate-DiskSpace.ps1 ──────────────────────────
Clear-RecycleBin -Force -ErrorAction SilentlyContinue
Remove-Item "$env:TEMP\*" -Recurse -Force -ErrorAction SilentlyContinue
Remove-Item "C:\Windows\Temp\*" -Recurse -Force -ErrorAction SilentlyContinue
Start-Process -FilePath "cleanmgr.exe" -ArgumentList "/sagerun:1" -Wait
Write-Output "Nettoyage terminé"; exit 0
$target = "$env:PUBLIC\Desktop\Microsoft Teams.lnk"
if (-not (Test-Path $target)) {
Write-Output "Raccourci Teams absent"; exit 1
} else { Write-Output "Raccourci OK"; exit 0 }
# ─── Remediate-Shortcuts.ps1 ──────────────────────────
$WS = New-Object -ComObject WScript.Shell
$lnk = $WS.CreateShortcut("$env:PUBLIC\Desktop\Microsoft Teams.lnk")
$lnk.TargetPath = "C:\Program Files\Microsoft\Teams\current\Teams.exe"
$lnk.IconLocation = "C:\Program Files\Microsoft\Teams\current\Teams.exe,0"
$lnk.Save()
Write-Output "Raccourci créé sur le bureau public"; exit 0
[Convert]::ToBase64String([System.IO.File]::ReadAllBytes("script.ps1"))
Suis les étapes pour créer le package SMBv1 dans le portail Intune.
Dans le Centre d'administration Intune, navigue jusqu'à la section dédiée.
→ Devices
→ Manage devices
→ Scripts and remediations
→ Remediations
→ + Create
Dans l'onglet Settings, tu dois uploader deux scripts distincts.
exit 1 = à remédier
exit 0 = correction OK
Choisis à quelle fréquence Intune doit vérifier la conformité SMBv1.
Déploie sur le groupe de postes Argos Consulting.
Récapitulatif du package avant création.
Voici ce que tu verras dans la console après 24h de déploiement sur le parc Argos (80 postes). Filtre par statut pour prioriser les actions.
| Appareil | Utilisateur | Detect | Remediate | Dernière vérif. |
|---|
L'exit code de ton script dicte le comportement d'Intune. Simule différents codes pour comprendre ce qui se passe dans la console.
Ton script Detect.ps1 retourne :
Coche chaque point avant de déployer en production sur les 80 postes Argos.
(Get-Item script.ps1).length / 1KBpsexec -s powershell -ExecutionPolicy Bypass -File Detect-SMBv1.ps1C:\ProgramData\Microsoft\IntuneManagementExtension\Logs\IntuneManagementExtension.log