Comment trouver la liste des administrateurs locaux sur un ordinateur

Il peut être parfois difficile d’obtenir une vue d’ensemble des personnes disposant de droits d’administrateur sur vos machines Windows, surtout si vous en gérez plusieurs ou si vous effectuez un audit des permissions. Ce guide explique comment dresser la liste des utilisateurs et des groupes membres du groupe Administrateurs local, que ce soit sur un seul PC ou sur l’ensemble d’un réseau de serveurs et de postes de travail. C’est utile pour identifier les failles de sécurité potentielles ou simplement pour garder un œil sur les personnes ayant un accès administrateur. Et oui, c’est étonnamment facile une fois qu’on a compris les commandes et les outils. Le vrai avantage ? Vous pouvez automatiser tout le processus si nécessaire, fini les vérifications manuelles interminables. Ainsi, vous saurez si un utilisateur ou un groupe inconnu a intégré le groupe Administrateurs et vous pourrez agir en conséquence.

Comment trouver les membres du groupe Administrateurs locaux sous Windows

Trouver les administrateurs locaux sur l’ordinateur local

Windows intègre une fonctionnalité permettant de voir qui fait partie du groupe Administrateurs : le composant logiciel enfichable Gestion de l’ordinateur ( compmgmt.msc).Il suffit de l’ouvrir, d’accéder à Utilisateurs et groupes locaux, puis à Groupes, et de double-cliquer sur Administrateurs. C’est simple. Mais pour les scripts ou les vérifications rapides, PowerShell est la solution idéale. Vous pouvez exécuter :

Get-LocalGroupMember -Group "Administrators"

Cette commande affiche tous les membres (utilisateurs, groupes ou comptes de service) disposant de droits d’administrateur. Il est utile de consulter la liste complète, notamment pour le dépannage ou la gestion des permissions. Sur certaines machines, cette commande peut ne pas s’exécuter instantanément, peut-être en raison d’un compte incomplet ou d’un problème lié au mode d’alimentation. Dans ce cas, il suffit souvent de la relancer ou de redémarrer l’ordinateur.

Si vous souhaitez limiter l’accès aux seuls utilisateurs locaux (et non aux groupes de domaine ou Azure AD), vous pouvez affiner le filtrage :

Get-LocalGroupMember -Group "Administrators" | Where-Object { (Get-LocalUser $_. SID -ErrorAction SilentlyContinue).Enabled }

Ainsi, vous ne verrez que les utilisateurs disposant d’un compte actif sur le système local. Attention : si votre environnement utilise Active Directory (ce qui est probable si vous utilisez des machines jointes à un domaine), de nombreux droits d’administrateur seront liés aux groupes AD, et le filtrage par SID permet de distinguer les utilisateurs locaux des utilisateurs gérés par AD.

Évidemment, Windows complique inutilement les choses. Heureusement, l’installation des outils RSAT (Remote Server Administration Tools) offre de meilleures options, notamment pour explorer les groupes Active Directory et leurs membres via un script. Il est également possible d’interroger directement Active Directory, mais c’est une toute autre histoire.

Obtenir des informations sur les utilisateurs ou les groupes AD dans les administrateurs locaux

Dans certaines configurations, vous aurez besoin de plus d’informations sur les utilisateurs d’Active Directory appartenant au groupe d’administrateurs locaux, comme leur statut ou le nom de leur compte. Les cmdlets PowerShell Get-ADGroupMember et Get-ADUser sont alors très utiles. Voici un exemple astucieux que j’ai utilisé :

$admins = Get-LocalGroupMember -Group "Administrators" | Where-Object { $_. PrincipalSource -eq "ActiveDirectory" } foreach ($admin in $admins) { if ($admin.objectclass -eq "User") { Get-ADUser $admin. SID | Select-Object SamAccountName, Enabled } elseif ($admin.objectclass -eq "Group") { Get-ADGroupMember $admin. SID | ForEach-Object { Get-ADUser $_ | Select-Object SamAccountName, Enabled } } }

Cette requête analyse Active Directory, extrayant les noms d’utilisateur et vérifiant l’activité des comptes. Tous les environnements ne disposent pas d’autant de permissions, mais sur certains domaines, c’est le seul moyen de savoir qui possède réellement des droits d’administrateur.

Récupération des membres administrateurs depuis une machine distante

Si vous souhaitez voir qui fait partie du groupe administrateur d’un PC ou serveur distant, PowerShell simplifie grandement la tâche une fois la connexion à distance configurée. Vous devrez activer WinRM et vous assurer que le port TCP 5985 est ouvert dans votre pare-feu, ce qui peut s’avérer fastidieux. Une fois ces étapes réalisées, exécutez des commandes comme :

Invoke-Command -ComputerName wsk-m2211 -ScriptBlock { Get-LocalGroupMember -Group "Administrators" | Select Name, ObjectClass, PrincipalSource }

Cette fonction renvoie la liste directement depuis la machine distante. Pour vérifier plusieurs cibles simultanément, il suffit de fournir une liste :

$computers = @("wsk-m2211", "srv-sql01", "srv-rds02") Invoke-Command -ComputerName $computers -ScriptBlock { Get-LocalGroupMember -Group "Administrators" | Where-Object { $_. Name -notlike "*Domain Admins*" } | Select-Object Name, ObjectClass, PrincipalSource }

Exportez ces informations au format CSV en utilisant la commande Export-Csv. Par exemple :

$results | Export-Csv -Path "C:\PS\admins.csv" -NoTypeInformation -Encoding UTF8

Si vous gérez un domaine entier avec Active Directory, vous pouvez même cibler toutes les machines Windows Server avec Get-ADComputer pour lister les serveurs, puis parcourir leurs noms et exécuter ces commandes à distance. Attention : des erreurs peuvent survenir si certains serveurs sont hors ligne ou disposent d’autorisations différentes. Il est donc parfois nécessaire de gérer ces erreurs ou d’ignorer silencieusement les échecs.

Comment supprimer des utilisateurs du groupe des administrateurs locaux

Limiter le nombre d’administrateurs locaux est essentiel pour la sécurité. Un nettoyage manuel ponctuel est acceptable, mais pour les audits réguliers, les préférences de stratégie de groupe ou les groupes restreints sont indispensables : ils gèrent automatiquement les membres du groupe Administrateurs. Pour une intervention rapide, PowerShell est la solution.

Remove-LocalGroupMember -Group "Administrators" -Member "username"

Et pour les ordinateurs distants, il suffit de l’insérer dans une commande Invoke-Command. Par exemple :

Invoke-Command -ComputerName wsk-m2211 -ScriptBlock { Remove-LocalGroupMember -Group "Administrators" -Member "username" }

Il est assez fastidieux de sélectionner manuellement les utilisateurs à exclure. Une méthode plus efficace consiste à rassembler tous les administrateurs actuels, puis à sélectionner visuellement ceux à exclure. Vous pouvez rediriger le résultat vers Out-GridView pour effectuer une sélection dans une liste.

$results = Invoke-Command wsk-m2211, wsk-m2233 { Get-LocalGroupMember -Group "Administrators" | Where-Object { $_. Name -notlike "*Domain Admins*" } | Select-Object Name, ObjectClass, PrincipalSource, SID } $prinolsToRemove = $results | Out-GridView -Title "Select users to remove" -OutputMode Multiple foreach ($pr in $prinolsToRemove) { Invoke-Command -ComputerName $pr. PSComputerName -ScriptBlock { Remove-LocalGroupMember -Group "Administrators" -Member $using:pr. Name } }

Ainsi, vous choisissez les personnes à exclure et le script les déconnecte de tous les serveurs distants. Ce n’est pas parfait, mais c’est mieux que de le faire manuellement à chaque fois. N’oubliez pas que cette $using:méthode vous permet de transmettre des variables locales à vos sessions distantes — un petit détail qui vous évitera bien des soucis.

J’espère que cela vous donnera une bonne base pour gérer les droits d’administrateur local sur plusieurs machines. Ce n’est pas infaillible et il arrive que certaines choses ne fonctionnent pas du premier coup ; il faudra donc s’attendre à quelques essais et erreurs. Mais une fois les scripts opérationnels, vous gagnerez un temps précieux et la sécurité sera renforcée.

Résumé

  • Utilisez Get-LocalGroupMember pour lister les administrateurs locaux.
  • Interrogez les groupes AD avec Get-ADGroupMember
  • Exécutez des vérifications à distance avec Invoke-Command après avoir configuré WinRM.
  • Automatisez le nettoyage avec des scripts PowerShell et Out-GridView

Conclure

Déterminer qui possède des droits d’administrateur n’est pas forcément un cauchemar. Une fois les scripts en place, vous pouvez surveiller les permissions, supprimer les comptes indésirables et éviter les mauvaises surprises. La configuration initiale est un peu fastidieuse, mais elle en vaut vraiment la peine si la sécurité et la conformité sont importantes. Essayez simplement de ne rien casser en manipulant le système, et n’oubliez pas que Windows a parfois tendance à compliquer les choses inutilement. J’espère que cela permettra à quelqu’un de gagner du temps ; en tout cas, ça a fonctionné pour moi.