Depuis Windows Server 2003 SP1, il est impossible d’attaquer un serveur (ou un client) en WMI (Windows Management Instrumentation) sans être administrateur local ou du domaine (du moins, par défaut). Or WMI est assez puissant pour effectuer du monitoring, il permet de récupérer un grand nombre d’informations très précises et poussées sur un équipement.
Hier, j’ai donc été confronté à un problème qui est, à ce que j’ai vu, assez répandu : comment faire des requêtes WMI à distance, sans pour autant utiliser un compte administrateur du domaine. Vous me direz, “utilises un compte admin local !”. Le problème est que je souhaite monitorer des serveurs de type “Contrôleur de Domaine”, donc sans administrateur local… Après pas mal de recherches et d’essais je suis arrivé à une solution que je vais partager avec vous.
La solution s’organise en 3 parties : le réseau, WMI et DCOM.
En effet on utilise le réseau pour les appels WMI et ces appels utilisent DCOM comme support.
Le réseau, …
Avant tout, pour utiliser WMI, il faut s’assurer que certains ports sont ouverts. WMI s’appuyant sur DCOM, il faudra donc ouvrir les ports 135 (Microsoft RPC), 137-139 (NetBIOS) et 445 (Microsoft DS) sur tout les équipements réseau entre la machine distante et la machine lançant l’appel WMI.
Il faudra aussi ouvrir ces ports sur les firewalls des machines en question.
WMI, …
Activons maintenant le WMI distant pour un compte utilisateur classique. Pour celà :
- Lancer la console WMI sur la machine à monitorer.
- Dans le cas d’un serveur : “Menu démarrer (Start Menu)” > “Outils d’administration (Administration Tools)” > “Gestion de l’ordinateur (Computer Management)”
- Dans le cas d’une machine cliente : “Menu démarrer (Start Menu)” > “Panneau de Configuration (Configuration Panel)” > “Outils d’administration (Administration Tools)” > “Gestion de l’ordinateur (Computer Management)”
- Dans la console, déplier “Services et applications” (c’est la même en anglais…). Faire un clique droit sur “Contrôle WMI (WMI Control)” puis choisir “Propriété (Properties)”:
- Dans l’onglet “Sécurité (Security)” cliquer sur le bouton “Secuité (Security)”:
- Cliquer sur ajouter “Ajouter (Add)” et ajouter l’utilisateur qui devra accéder à distance.
- Donner le droit “Appel à distance autorisé (Authorize Remote Calls)” à cet utilisateur.
- Valider en cliquant sur OK et quitter toute les fenêtres ouvertes.
et DCOM.
Étant donné que WMI s’appuie sur DCOM pour les appels distants, il est important que l’utilisateur de supervision puisse y accéder. Nous allons donc ajouter notre utilisateur de supervision à liste autorisée :
- Lancer la console de configuration DCOM :
- Appuyer sur Windows et R simultanément
- Taper “DCOMCNFG” et appuyer sur “Exectuer (Execute)”
- Déplier “Services de composants (Component’s Services)” > “Ordinateurs (Computers)”
- Faire un clique droit sur “Poste de travail (My Computer)” et choisir “Propriétés (Properties)”
- Choisir l’onglet “Sécurité COM (COM Security)”
- Cliquer sur “Modifier les limites… (Modify limits…)” dans la partie “Autorisations d’accès (Access Authorization)”
- Cliquer sur “Ajouter (Add)” et ajouter votre utilisateur de supervision
- Ajouter toute les permissions à cet utilisateur et cliquer sur OK
- Recommencer l’opération d’ajout en appuyant sur le bouton “Modifier les limites…” de la partie “Autorisations d’exécution et d’activation (Execution and activation authorizations)”
Voilà tout est prêt ! Pour tester il vous suffit d’essayer cette commande sur un ordinateur distant :
wmic /USER:{User} /PASSWORD:”{Password}” /NODE:{IP} “BIOS”
où {User} est le nom d’utilisateur du compte de supervision, {Password} le mot de passe du compte de supervision et {IP} l’IP de la machine distante.




Social comments and analytics for this post…
This post was mentioned on Twitter by MadeInSyria: Blog Post: [Tuto] WMI distant sans compte admin : la so… http://madeinsyria.fr/2010/01/23/tuto-wmi-distant-sans-compte-admin-la-solution/…
Merci Omar !
Mais de rien Jérôme, tout le plaisir est pour moi (ou plutôt pour Philippe…)
Hello,
Dans la 1ère partie :
Ne pas oublier de spécifier l’étendue des droits à “cet espace de nom et les sou-sepaces de noms” !!
Pour la seconde partie :
n’est il pas plus simple de définir le compte dit de supervision “membre de” “Utilisateurs du modèle COM distribué” ?
Respectueusement
Bonne journée
J’avoue avoir perdu la main depuis le temps. Cependant de tête ça fonctionnait bien dans mon cas sur du Windows 2003. On m’a par contre remonté que ça ne fonctionne plus sous à partir de Windows 2008.
Si tu as la solution, je suis preneur !