Domanda

Sto cercando di creare script / servizi che permettono di risveglio PC in un dominio Windows tramite WOL. Ora voglio dare all'utente la possibilità di selezionare un contenitore AD come punto di partenza per la veglia di PC contenuti all'interno. Il mio pensiero iniziale utilizza il protocollo DHCP come un repository per interrogare per MAC indirizzi indicati i nomi di host (che posso abbastanza facilmente tirare da AD data del contenitore).

C'è un modo per interrogare a livello di codice il servizio DHCP / server, i nomi degli host passando e recuperare gli indirizzi associati MAC?

In alternativa, c'è un / modo migliore più facile per risolvere il mio problema?

È stato utile?

Soluzione

dhcpexim.exe da Microsoft .

o, se si preferisce usare puro C. DhcpEnumSubnetClientsV4

Altri suggerimenti

Non c'è problema; perché tutte le macchine sono nel tuo dominio si può mettere insieme un VBScript che otterrà il MACAddress (es) dalla macchina locale e conservarlo come un attributo dell'oggetto computer in Active Directory.

Ecco un trucco veloce su come farlo (salvare questo come un .vbs-file):

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

Perché i vostri clienti non sono tutti sulla "Member Server" OU sopra è necessario modificare lo script di cui sopra per includere un ricerca di directory per il strComputerName fare ottenere il COMPUTERLOCATION.

Quando si dispone di uno script di lavoro, chiedere all'amministratore di dominio per inserire lo script come script di start-up destinati a un computer che è necessario monitorare; in questo modo che sarà l'esecuzione ogni volta che un computer stivali su. È inoltre possibile eseguire lo script come un'operazione pianificata per ottenere i dati da qualsiasi client che non hanno riavviato o utilizzare psexec o qualche altro modo si può pensare di ottenere i dati immediatamente. Oppure si può riscrivere il copione del tutto per la connessione remota per tutte le macchine e ottenere i dati in questo modo (che potrebbe non essere possibile a causa di firewall locali). Oppure si potrebbe scrivere un'applicazione console piccolo NET che fa la stessa cosa, tocca a voi ...

Inoltre, anche se c'è una networkAddress attributo definito per oggetti computer; Per impostazione predefinita, l'oggetto computer stesso non ha accesso a scrivere a questa proprietà. Perché start up-script eseguiti nel contesto dell'account SYSTEM sulla macchina particolare, la cosa più semplice è quello di utilizzare un attributo che l'oggetto computer (SELF) ha accesso in scrittura. Il otherTelephone-attributo è multivalore e parte del Personal-Information Proprietà Set cui tutti gli oggetti di computer ha accesso in scrittura per impostazione predefinita. Se si desidera utilizzare il networkAddress-attribute è necessario impostare l'accesso in scrittura esplicito a tale attributo per tutti i computer.

Inoltre è necessario tenere a mente che la memorizzazione del l'indirizzo MAC in Active Directory significa che tutti gli utenti del dominio avranno accesso in lettura ad esso che a sua volta potrebbe eventualmente (a seconda dell'ambiente) rappresentare un piccolo rischio per la sicurezza .

Per farlo nel modo in cui la rete fa.

SharpPcap (Pcap wrapper per C #) e WinPcap (Windows) o libpcap (* nix) . Scrivere un'applicazione che crea pacchetti SNMP per interrogare la tabella ARP sul router.

Nota: L'ARP (Address Resolution Protocol) tabella è la tabella che contiene la mappatura degli indirizzi IP all'indirizzo MAC

.

Ho pensato sull'implementazione di un esempio che fa questo ultimamente ma non ho uno da mostrare. Una volta che faccio, farò in modo che esso viene aggiunto agli esempi SharpPcap trovano in struttura di origine del progetto.

Questo è un po 'stravagante sembra che non c'è modo per interrogare il server DHCP di programmazione. Grazie cottsak per porre la domanda. Mi sembra di capire che il protocollo DHCP non ha una query, ma ho pensato mayb l'eseguibile da Microsoft potrebbe avere qualche modo si può affrontare il problema dalla riga di comando. Non ho sentito nessuno da nessuna parte dire che non v'è nessun caso del genere, ma deve essere così.

Ehi, aspetta un attimo ... Credo di aver trovato quello che stiamo cercando: netsh. CF:

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

Quando si dice se si apre un prompt dei comandi sul server DHCP è possibile eseguire questo comando:

del server DHCP netsh portata 192.168.1.0 mostrare ai clienti

e ottenere un rapporto di questo tipo:

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

Yippeee! Grazie per il thread !! Se non fosse stato per questo, ho Enver avrebbe ristretto la mia ricerca di TechNet ADN ha scoperto che uno.

Non si può fare questo con DHCP. DHCP attributi IP da MAC, non il contrario. ARP è ciò che converte IP in Mac ma è la macchina stessa che risponde alle richieste ARP quindi se è fuori di esso è, ovviamente, non andando risposta ...

Vi suggerisco di memorizzare il MAC nel tuo annuncio direttamente (immagino AD supporta gli attributi personalizzati?)

è necessario utilizzare arp per ottenere un indirizzo mac e farlo in C è un processo lungo.

indirizzi Mac sono hard coded, quindi se si dispone di computer X andare a prendere gli indirizzi X mac e legarli alla AD.

Si noti che il computer dovrà essere a richiedere il suo indirizzo MAC.

indirizzo Trovare MAC dall'indirizzo IP

Si dun ti preoccupare, si può tirare queste informazioni direttamente dal DHCP se il PC dispone di un contratto di locazione.

sapere come si fa clic destro e aggiungere una riserva in DHCP?

Cerca nel DHCP per l' 'ID univoco'. E 'l'indirizzo MAC, sans i due punti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top