Le client SCCM (System Center Configuration Manager) est un outil essentiel pour la gestion des postes de travail dans les environnements d’entreprise. Cependant, il arrive parfois que le client SCCM rencontre des dysfonctionnements nécessitant une réinstallation complète. Une simple désinstallation via l’interface Windows ne suffit pas toujours, car certaines traces restent présentes sur le système.
Dans cet article, nous allons voir comment désinstaller proprement et totalement le client SCCM en utilisant un script PowerShell automatisé.
Pourquoi Désinstaller le Client SCCM ?
Plusieurs raisons peuvent nécessiter la suppression du client SCCM :
- Client corrompu : Certaines installations peuvent devenir défectueuses et causer des problèmes de communication avec le serveur SCCM.
- Migration vers une nouvelle version : Une réinstallation propre permet d’éviter des conflits.
- Problèmes de déploiement : Si les packages ne se déploient pas correctement, une réinstallation peut résoudre le souci.
Script PowerShell pour Supprimer Complètement le Client SCCM
Le script ci-dessous permet de désinstaller SCCM et de supprimer toutes les traces laissées sur le système.
# Vérifier si le client SCCM est installé
$SCCMClient = Get-WmiObject -Namespace "ROOT\CCM" -Class "CCM_Client"
if ($SCCMClient) {
Write-Output "Le client SCCM est installé. Début de la désinstallation..."
# Désinstallation du client SCCM
C:\Windows\ccmsetup\ccmsetup.exe /uninstall
Start-Sleep -Seconds 60 # Attendre la fin de la désinstallation
}
# Supprimer les services SCCM
$services = @("CcmExec", "smstsmgr", "CmRcService")
foreach ($service in $services) {
Get-Service -Name $service -ErrorAction SilentlyContinue | Stop-Service -Force -ErrorAction SilentlyContinue
Get-Service -Name $service -ErrorAction SilentlyContinue | Set-Service -StartupType Disabled -ErrorAction SilentlyContinue
}
# Supprimer les dossiers SCCM
$folders = @(
"C:\Windows\CCM",
"C:\Windows\ccmcache",
"C:\Windows\ccmsetup",
"C:\Windows\SMSCFG.INI",
"C:\Windows\System32\ccm",
"C:\Windows\SysWOW64\ccm"
)
foreach ($folder in $folders) {
if (Test-Path $folder) {
Remove-Item -Path $folder -Recurse -Force -ErrorAction SilentlyContinue
}
}
# Nettoyage du registre
$registryPaths = @(
"HKLM:\SOFTWARE\Microsoft\CCM",
"HKLM:\SOFTWARE\Microsoft\SMS",
"HKLM:\SOFTWARE\Wow6432Node\Microsoft\CCM",
"HKLM:\SOFTWARE\Wow6432Node\Microsoft\SMS"
)
foreach ($regPath in $registryPaths) {
if (Test-Path $regPath) {
Remove-Item -Path $regPath -Recurse -Force -ErrorAction SilentlyContinue
}
}
# Nettoyage du repository WMI
$wmiNamespaces = @("ROOT\CCM", "ROOT\SMS")
foreach ($namespace in $wmiNamespaces) {
if (Get-WmiObject -Namespace "ROOT" -Class __Namespace | Where-Object { $_.Name -eq $namespace.Split('\\')[-1] }) {
Write-Output "Suppression du namespace WMI : $namespace"
Remove-WmiObject -Namespace "ROOT" -Class __Namespace -Filter "Name='$($namespace.Split('\\')[-1])'" -ErrorAction SilentlyContinue
}
}
# Redémarrer l'ordinateur pour finaliser la suppression
Write-Output "Le client SCCM a été désinstallé avec succès. Un redémarrage est recommandé."
Explication du Script
- Désactivation temporaire des restrictions PowerShell :
- Permet l’exécution du script même si la politique de sécurité est stricte.
- Arrêt des services SCCM :
- S’assure que le client SCCM n’est plus en cours d’exécution avant de le supprimer.
- Lancement de la désinstallation du client SCCM :
- Utilise la commande
ccmsetup.exe /uninstall
pour le supprimer proprement.
- Utilise la commande
- Suppression des fichiers restants :
- Supprime les dossiers et fichiers de configuration qui pourraient empêcher une réinstallation propre.
- Nettoyage du Registre Windows :
- Supprime les clés associées à SCCM pour éviter toute corruption future.
- Redémarrage recommandé :
- Permet de finaliser proprement la suppression et de préparer le système à une réinstallation.
Automatiser la Réinstallation du Client SCCM
Après suppression, vous pouvez réinstaller SCCM avec la commande suivante :
Start-Process -FilePath "\\ServeurSCCM\\Source\\ccmsetup.exe" -ArgumentList "/mp:ServeurSCCM SMSSITECODE=XYZ /logon" -NoNewWindow -Wait
Conclusion
L’utilisation de ce script PowerShell permet d’effectuer une suppression complète et propre du client SCCM, évitant ainsi les erreurs de réinstallation et les conflits de configuration. Cette méthode est particulièrement utile pour les administrateurs système gérant un grand nombre de postes.