15/11/2024

AstucesPowerShell

Comment supprimer un profil utilisateur Windows avec PowerShell ?

I. Présentation

Dans ce tutoriel, nous allons apprendre à supprimer un profil utilisateur Windows à l'aide de PowerShell, de façon propre ! Cet article fait suite à celui déjà en ligne et qui donne la marche à suivre à l'aide de l'interface graphique.

Dans cet exemple, j'utilise une machine sous Windows 11, mais la procédure est identique sous Windows 10.

Pour rappel, à partir de l'interface graphique c'est dans les "Paramètres système avancé" que l'on peut lister et supprimer les profils utilisateurs. Ici, on peut voir la présence de l'utilisateur "IT-Connect\chris.tal" que je vais tenter de supprimer en PowerShell !

Second rappel, on ne supprime pas directement le dossier de l'utilisateur dans "C:\Users" sinon on se retrouve avec des problèmes de profils temporaires si l'utilisateur vient à se reconnecter sur cette même machine.

Lister des profils utilisateurs Windows 11

II. PowerShell pour supprimer un profil utilisateur

On aurait pu utiliser les commandes Get-WmiObject et Remove-WmiObject, mais elles sont devenues obsolètes (voir ici). Alors, il faut préférer l'utilisation de Get-CimInstance et Remove-CimInstance, comme nous allons le faire dans cet exemple.

Pour lister les profils utilisateurs de la machine locale, on va utiliser la commande suivante :

Get-CimInstance -ClassName Win32_UserProfile

Note : pour agir sur une machine distante, il convient d'ajouter le paramètre -ComputerName à la commande Get-CimInstance, de façon à préciser l'ordinateur cible.

Toutefois, elle retourne un ensemble de propriétés... Sélectionnons uniquement la propriété LocalPath pour que ce soit plus lisible :

Get-CimInstance -ClassName Win32_UserProfile | ft LocalPath

L'utilisateur "IT-Connect\chris.tal" est bien retourné dans cette liste, comme les autres utilisateurs qui ont ouvert une session sur cette machine.

Get-CimInstance - Lister les profils utilisateurs Windows

Désormais, il va falloir cibler précisément le profil de notre utilisateur pour le supprimer. On peut s'appuyer sur diverses propriétés comme le SID, ou encore le LocalPath que l'on a déjà utilisé. Ce qui va donner :

Get-CimInstance -ClassName Win32_UserProfile | Where{ $_.LocalPath -eq "C:\Users\chris.tal" }

La commande ci-dessus doit retourner uniquement les informations du compte ciblé. Avant de procéder à la suppression (irréversible !), utilisez la commande Remove-CimInstance avec le paramètre -WhatIf pour faire une simulation.

Ce qui donne :

Get-CimInstance -ClassName Win32_UserProfile | Where{ $_.LocalPath -eq "C:\Users\chris.tal" } | Remove-CimInstance -WhatIf

Dans mon cas, cela retourne :

What if: Performing the operation "Remove-CimInstance" on target "Win32_UserProfile (SID = "S-1-5-21-602238038-4219226198-393252187...)".

Puis, il suffit de retirer -WhatIf pour supprimer réellement le profil de cet utilisateur. Ce qui donne :

Get-CimInstance -ClassName Win32_UserProfile | Where{ $_.LocalPath -eq "C:\Users\chris.tal" } | Remove-CimInstance

Suite à l'exécution de cette commande PowerShell, le profil de l'utilisateur a été supprimé ! Il n'apparaît plus dans la liste des profils visible avec l'interface graphique et dans "C:\Users", son répertoire n'est plus là !

Supprimer profil utilisateur avec PowerShell

Pour finir, voici une autre requête PowerShell que vous pouvez exécuter pour lister les comptes qui ne se sont pas connectés sur cette machine depuis au moins 31 jours (valeur adaptable dans la commande) :

Get-CimInstance -ClassName Win32_UserProfile | Where {($_.Special -eq $false) -and (($_.LastUseTime) -lt (Get-Date).AddDays(-31))} | ft LocalPath

Dans cette commande, on exclut les comptes spéciaux et on se base sur la propriété LastUseTime que l'on compare avec la date du jour. Cela pourrait être utilisé conjointement avec Remove-CimInstance pour supprimer les comptes inutilisés depuis X jours.

III. Conclusion

Suite à la lecture de ce tutoriel, vous êtes en mesure de supprimer un ou plusieurs profils utilisateurs Windows avec PowerShell, que ce soit en local ou à distance !

author avatar
Florian BURNEL Co-founder of IT-Connect
Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

6 commentaires sur “Comment supprimer un profil utilisateur Windows avec PowerShell ?

  • Salut

    Tu n’a pas mis la commande avec le whatif, celle que tu indique est le get, c’est normal ?

    Get-CimInstance -ClassName Win32_UserProfile | Where{ $_.LocalPath -eq « C:\Users\chris.tal » }

    Merci je connaissait pas whatif

    Répondre
    • Salut,
      Oui c’est normal, je me suis dit qu’avec les explications ça suffirait, mais je vais rajouter la commande pour que ce soit plus simple 🙂

      Répondre
  • Merci pour ton site et tout ton partage Florian Burnel, c’est un véritable puis de connaissance et référence pour moi dans mon travail !

    Nicolas de Montréal.

    Répondre
  • Bonjour,
    Ce script ne fonctionne pas du 1er coup je m’explique : si t’es loggué avec un compte user, tu fermes ta session et tu l’ouvres avec un compte admin pour supprimer le profil : ca marche pas car il est toujours en mémoire, de la même manière rebooter ne suffit pas dans pas mal de cas…
    Cdlt,

    Répondre
  • Bonjour,

    Effectivement le dossier Utilisateur est bien supprimé dans C:\Users et n’est plus visible dans Profil des utilisateurs du Panneau de configuration.

    Toutefois, il apparaît toujours dans Gestion de l’ordinateur \ Outils système \ Utilisateurs et groupes locaux

    Ne manquerait-il pas une entrée à supprimer quelque part ?
    Merci

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.