Question

Je suis en train de créer des scripts / services qui permettent le réveil PC dans un domaine Windows via WOL. Maintenant, je veux donner à l'utilisateur la possibilité de sélectionner un conteneur AD comme point de départ pour le réveil des PC qu'il contient. Ma première pensée utilise le protocole DHCP comme référentiel pour interroger les adresses MAC (étant donné les noms d'hôtes que je peux tirer assez facilement d'AD donné le conteneur).

Y at-il un moyen d'interroger programme le service DHCP / serveur, en passant hostname et récupérer les adresses MAC associées?

Ou, est-il une meilleure / plus facile de résoudre mon problème?

Était-ce utile?

La solution

dhcpexim.exe de Microsoft .

ou, si vous préférez utiliser pur C. DhcpEnumSubnetClientsV4

Autres conseils

Pas de problème; parce que toutes les machines sont dans votre domaine, vous pouvez mettre sur pied un VBScript qui va faire le MACAddress (es) de la machine locale et le stocker comme un attribut de l'objet ordinateur dans Active Directory.

Voici un hack rapide sur la façon de le faire (enregistrer comme fichier .vbs):

Option Explicit

Const ADS_PROPERTY_UPDATE = 2
Const COMPUTERLOCATION = "ou=Member Servers,dc=yourdomain,dc=com"
Const ATTRIBUTETOUSE = "otherTelephone"

Dim wshNetwork, strComputerName
Set wshNetwork = WScript.CreateObject("WScript.Network")
strComputerName = wshNetwork.ComputerName

Dim objWMIService, colNetCards, objComputer, objNetCard
Set objWMIService = GetObject("winmgmts:\\" & strComputerName & "\root\cimv2")
Set colNetCards = objWMIService.ExecQuery("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled = True")
Set objComputer = GetObject("LDAP://cn=" & strComputerName & "," & COMPUTERLOCATION) 
For Each objNetCard in colNetCards
    objComputer.PutEx ADS_PROPERTY_APPEND, ATTRIBUTETOUSE, Array(objNetCard.MACAddress)
    objComputer.SetInfo
Next

Parce que vos clients ne sont pas tous dans les « serveurs membres » OU ci-dessus, vous devrez modifier le script ci-dessus pour inclure une recherche de répertoire pour le strComputerName contractent le COMPUTERLOCATION.

Lorsque vous avez un script de travail, demandez à votre administrateur de domaine pour mettre le script en tant que script de démarrage ciblant les ordinateurs dont vous avez besoin pour surveiller; de cette façon, il va exécuter chaque fois qu'un ordinateur démarre. Vous pouvez également exécuter le script comme une tâche planifiée pour obtenir vos données de tous les clients qui n'ont pas redémarré ou utiliser psexec ou d'une autre façon que vous pouvez penser pour obtenir immédiatement les données. Ou vous pouvez réécrire le script entièrement pour se connecter à distance à toutes vos machines et d'obtenir les données de cette façon (qui pourrait ne pas être possible en raison de pare-feu locaux). Ou vous pourriez écrire une petite application de console .NET qui fait la même chose, il est à vous ...

En outre, bien qu'il y ait un networkAddress attribut défini pour les objets de données; par défaut, l'objet ordinateur lui-même n'a pas accès à écrire dans cette propriété. Parce que les scripts de démarrage jusqu'à gérées dans le cadre du compte SYSTEM sur la machine particulière la chose la plus facile est d'utiliser un attribut que l'objet ordinateur (SELF) a accès en écriture. Le otherTelephone attribut est multivalué et une partie du -Renseignements personnels Définir la propriété que tous les objets informatiques a accès en écriture par défaut. Si vous voulez utiliser l'attribut networkAddress vous devez définir l'accès explicite d'écriture à cet attribut pour tous vos ordinateurs.

Vous devez également garder à l'esprit que le stockage de l'adresse MAC dans Active Directory signifie que tous les utilisateurs de votre domaine auront un accès en lecture qui à son tour pourrait éventuellement (en fonction de votre environnement) posent un faible risque de sécurité .

Pour faire de la manière le réseau.

SharpPcap (emballage Pcap pour C #) et WinPcap (Windows) ou libpcap (* nix) . Ecrire une application qui crée des paquets SNMP pour interroger la table ARP sur le routeur.

Remarque: La table ARP (Address Resolution Protocol) est la table contenant le mappage d'adresse IP à une adresse MAC

.

J'ai pensé à mettre en œuvre un exemple qui fait cela ces derniers temps mais je n'ai un à afficher pour le moment. Une fois que je fais, je ferai en sorte qu'il est ajouté aux exemples de SharpPcap trouvés dans l'arbre source du projet.

Ceci est un peu loufoque, il semble qu'il n'y a aucun moyen d'interroger le serveur DHCP programme. Merci cottsak de poser la question. Je comprends que le protocole DHCP ne dispose pas d'une telle requête, mais je pensais que mayb l'exécutable de Microsoft pourrait avoir une certaine façon, vous pouvez répondre à partir de la ligne de commande. Je ne l'ai pas entendu personne dire partout qu'il n'y a pas un tel cas, mais il doit en être ainsi.

Whoa, attendez une minute ... Je pense avoir trouvé ce que nous recherchons: NETSH. cf:

http: // sociale. technet.microsoft.com/Forums/en/ITCG/thread/afb4be16-09bd-4260-b515-8323d85d4ccb

Quand on dit si vous ouvrez une invite de commande sur le serveur DHCP, vous pouvez exécuter cette commande:

clients étendue 192.168.1.0 show serveur dhcp netsh

et obtenir un rapport comme celui-ci:

10.10.98.53 - 255.255.255.0 -00-0c-29-02-a4-09 - EXPIRES -D JAMAIS 10.10.98.54 - 255.255.255.0 - 00-22-19-10-29-75 -1/21/2012 08:39:25 -D

Yippeee! Merci pour le fil !! Si ce n'était pas celui-ci, j'Enver aurait rétréci ma recherche à adn technet a constaté que celui-ci.

Vous ne pouvez pas le faire avec DHCP. attribue DHCP IP de MAC, et non l'inverse. ARP est ce qui convertit IP dans MAC mais c'est la machine elle-même qui répond aux demandes ARP donc s'il est éteint, il est évidemment ne va pas répondre ...

Je vous suggère de stocker le MAC dans votre AD directement (je suppose que AD supporte les attributs personnalisés?)

vous devez utiliser arp pour obtenir une adresse mac et ce, en C est un long processus.

Mac sont difficiles adresses codées, donc si vous avez des ordinateurs X vont chercher les adresses X de Mac et de les attacher à l'AD.

Notez que l'ordinateur devra être à demander son adresse mac.

Trouver l'adresse MAC de adresse IP

Oui isabelle vous inquiétez pas, vous pouvez tirer cette information directement à partir de DHCP si le PC a un bail.

Savoir comment vous faites un clic droit et ajouter une réserve DHCP?

Regardez dans DHCP pour l' 'ID unique. Il est l'adresse MAC, sans côlons.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top