Frage

Ich versuche Skripte/Dienste zu erstellen, die über WOL in einer Windows -Domäne aufwachen können. Jetzt möchte ich dem Benutzer die Option geben, einen Anzeigencontainer als Ausgangspunkt für das Waking von in innerhalb enthaltenen PCs auszuwählen. Mein erster Gedanke ist die Verwendung von DHCP als Repository zum Abfragen von MAC -Adressen angesichts der Hostnamen (die ich mit dem Container leicht genug abziehen kann).

Gibt es eine Möglichkeit, den DHCP -Dienst/Server programmatisch abzufragen, Hostnamen zu übergeben und die zugehörigen MAC -Adressen wiederherzustellen?

Oder gibt es eine bessere/einfachere Möglichkeit, mein Problem zu lösen?

War es hilfreich?

Lösung

Versuchen dhcpexim.exe Von Microsoft.

Oder wenn Sie es vorziehen, Pure C zu verwenden, C. DhcpenumsubnetClientsv4

Andere Tipps

Kein Problem; Da sich alle Maschinen in Ihrer Domain befinden, können Sie ein VBS -Skript zusammenstellen, das die MacAddress (ES) von der lokalen Maschine erhält und als Attribut des Computerobjekts in Active Directory speichert.

Hier ist ein kurzer Hack, wie das geht (speichern Sie dies als .VBS-Datei):

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

Da Ihre Kunden nicht alle in den oben genannten "Mitgliedsservern" sind, müssen Sie das obige Skript so ändern Eine Verzeichnissuche für die strComputerName Holen Sie sich das COMPUTERLOCATION.

Wenn Sie über ein funktionierendes Skript verfügen, bitten Sie Ihren Domänenadministrator, das Skript als Startskript zu setzen, das auf die Computer abzielt, die Sie zur Überwachung benötigen. Auf diese Weise wird es ausgeführt, wenn ein Computer steigt. Sie können das Skript auch als geplante Aufgabe ausführen, um Ihre Daten von Kunden zu erhalten, die nicht neu gestartet oder verwendet werden psexec Oder auf eine andere Möglichkeit, wie Sie sich vorstellen können, um die Daten sofort zu erhalten. Oder Sie können das Skript vollständig in die Remote -Verbindung zu allen Ihren Maschinen umschreiben und die Daten auf diese Weise erhalten (was aufgrund lokaler Firewalls möglicherweise nicht möglich ist). Oder Sie können eine kleine .NET -Konsolenanwendung schreiben, die dasselbe tut, es liegt an Ihnen ...

Auch obwohl es a gibt networkAddress-Attribute definiert für Computerobjekte; Standardmäßig hat das Computerobjekt selbst keinen Zugriff, um in diese Eigenschaft zu schreiben. Weil Start-up-Skripte im Kontext der ausgeführt werden SYSTEM Konto auf der jeweiligen Maschine Das einfachste ist, ein Attribut zu verwenden, das das Computerobjekt (SELF) hat Schreibzugriff zu. Das otherTelephone-Attribute ist mehrwertig und Teil der Personalbildungseigenschaftssatz Alle Computerobjekte haben standardmäßig Schreibzugriff. Wenn Sie das verwenden möchten networkAddress-Attribute Sie müssen explizite Schreibzugriff auf dieses Attribut für alle Ihre Computer festlegen.

Sie müssen auch berücksichtigen, dass das Speichern der MAC -Adresse in Active Directory bedeutet, dass alle Benutzer in Ihrer Domäne einen Lesezugriff darauf haben, was wiederum (abhängig von Ihrer Umgebung) ein kleines Sicherheitsrisiko darstellen kann.

Um es so zu tun, wie es das Netzwerk tut.

Greifen Sharppcap (PCAP -Wrapper für C#) und WinPCap (Windows) oder libpCap (*Nix). Schreiben Sie eine Anwendung, die SNMP -Pakete erstellt, um die ARP -Tabelle auf dem Router abzufragen.

Hinweis: Die Tabelle ARP (Adressauflösungsprotokoll) ist die Tabelle mit der Zuordnung der IP -Adresse in die MAC -Adresse.

Ich habe darüber nachgedacht, ein Beispiel zu implementieren, das dies in letzter Zeit tut, aber ich habe noch keine zu zeigen. Sobald ich es tue, werde ich sicherstellen, dass es zu den SharppCap -Beispielen hinzugefügt wird, die im Quellbaum des Projekts enthalten sind.

Dies ist ein bisschen verrückt, es scheint, dass es keine Möglichkeit gibt, den DHCP -Server programmatisch abzufragen. Danke Cottsak, dass du die Frage gestellt hast. Ich verstehe, dass das DHCP -Protokoll keine solche Abfrage hat, aber ich dachte, Mayb Die ausführbare Datei von Microsoft könnte eine Möglichkeit haben, wie Sie es aus der Befehlszeile ansprechen können. Ich habe niemanden irgendwo sagen gehört, dass es keinen solchen Fall gibt, aber es muss so sein.

Whoa, warte eine Minute ... Ich glaube, ich habe gefunden, wonach wir suchen: netsh. vgl.:

http://social.technet.microsoft.com/forums/itcg/thread/afb4be16-09bd-4260-b515-8323d85d4ccb

Wo heißt es, wenn Sie eine Eingabeaufforderung auf dem DHCP -Server öffnen, können Sie diesen Befehl ausführen:

NetSH DHCP Server Scope 192.168.1.0 Clients anzeigen

und holen Sie sich einen solchen Bericht wie folgt:

10.10.98.53-255.255.255.0 -00-0c-29-02-A4-09-Ausgelassen : 39: 25 Uhr -d

Yippeee! Danke für den Thread !! Wenn ich es nicht gäbe, hätte ich meine Suche nach Technet ADN eingeschränkt, das diese gefunden hat.

Sie können das mit DHCP nicht machen. DHCP -Attribute IP von Mac, nicht umgekehrt. ARP ist das, was IP in MAC umwandelt, aber es ist der Computer selbst, der ARP -Anfragen beantwortet. Wenn es also aus ist, wird es offensichtlich nicht antworten ...

Ich schlage vor, Sie speichern den Mac direkt in Ihrer Anzeige (ich denke, die Anzeige unterstützt benutzerdefinierte Attribute?)

Sie müssen ARP verwenden, um eine Mac -Adresse zu erhalten, und dies ist ein langer Prozess.

Mac -Adressen sind hart codiert. Wenn Sie also X -Computer haben und X -MAC -Adressen erhalten und an die Anzeige binden.

Beachten Sie, dass der Computer eingeschaltet sein muss, um seine MAC -Adresse anzufordern.

Finden Sie MAC -Adresse aus der IP -Adresse

Ja, wenn Sie sich darüber Sorgen machen, können Sie diese Informationen direkt von DHCP abrufen, wenn der PC einen Mietvertrag hat.

Wissen Sie, wie Sie mit der rechten Maustaste klicken und eine Reservierung in DHCP hinzufügen?

Schauen Sie sich DHCP nach der "eindeutigen ID" an. Es ist die MAC -Adresse, ohne die Kolons.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top