Pregunta

Estoy tratando de crear scripts/servicios que permiten el despertar de una Pc en un dominio de windows a través de WOL.Ahora quiero dar la opción al usuario de seleccionar un ANUNCIO contenedor como un punto de partida para el despertar de la Pc que contiene.Mi idea inicial es el uso de DHCP como un repositorio para consulta de direcciones MAC, dado los nombres de host (que puede fácilmente suficiente para tirar de ANUNCIO dado el contenedor).

Hay una forma de programación de consulta el servicio DHCP/servidor, pasando de los nombres de host y recuperar las direcciones MAC asociadas?

O, ¿hay una mejor y más fácil camino para resolver mi problema?

¿Fue útil?

Solución

Trate dhcpexim.exe de Microsoft .

o, si se prefiere el uso de C pura DhcpEnumSubnetClientsV4

Otros consejos

No hay problema; porque todas las máquinas están en su dominio se puede armar un VBScript que hará que los MACAddress (es) de la máquina local y almacenarlo como un atributo del objeto de equipo en Active Directory.

Aquí hay un truco rápido para hacer eso (salva esto como un .vbs-archivo):

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

Debido a que sus clientes no están todos en los "servidores miembro" unidad organizativa anterior tendrá que modificar el script anterior para incluir buscar un directorio para la strComputerName hacen llegar la COMPUTERLOCATION.

Cuando usted tiene un guión de trabajo, pregunte a su administrador de dominio para poner el script como un guión de puesta en marcha que apuntan a los equipos que necesita para controlar; de esa manera se va a ejecutar cada vez que un ordenador arranca. También puede ejecutar la secuencia de comandos como una tarea programada para obtener sus datos desde cualquier cliente que no se reinicia o uso rel psexec o de alguna otra manera que se pueda imaginar para obtener los datos de inmediato. O puede volver a escribir el guión completo a distancia para conectar todas sus máquinas y obtener los datos de esa manera (que podría no ser posible debido a los cortafuegos locales). O bien, podría escribir una pequeña aplicación de consola .NET, que hace lo mismo, le toca a usted ...

Además, aunque hay una networkAddress-atributo definido para objetos de equipo; Por defecto, el propio objeto de equipo no tiene acceso a escritura en esta propiedad. Debido puesta en marcha-scripts se ejecutan en el contexto de la cuenta SYSTEM en la máquina particular, lo más fácil es usar un atributo que el objeto de equipo (SELF) tiene acceso de escritura. El atributo otherTelephone tiene múltiples valores y parte de la Personal-Información de conjunto de propiedades el que todos los objetos de equipo tiene acceso de escritura por defecto. Si desea utilizar el networkAddress-atributo que necesita para configurar el acceso a escritura explícita a ese atributo para todos los equipos.

También es necesario tener en cuenta que el almacenamiento de la dirección MAC en los medios de Active Directory que todos los usuarios de su dominio tendrá acceso de lectura a la misma que a su vez podría posiblemente (dependiendo del entorno) plantear un pequeño riesgo para la seguridad .

Para hacerlo de la forma en que la red lo hace.

SharpPcap (Pcap envoltorio para C #) y WinPcap (Windows) o libpcap (* nix) . Escribir una aplicación que crea paquetes SNMP para consultar la tabla ARP del router.

Nota:. El ARP (Address Resolution Protocol) tabla es la tabla que contiene la asignación de la dirección IP a la dirección MAC

he estado pensando acerca de cómo implementar un ejemplo que hace esto últimamente, pero que no tiene uno que ver. Una vez que lo hago, voy a hacer seguro de que se agrega a la SharpPcap ejemplos encontrados en el árbol de código fuente del proyecto.

Esto es un poco loco, parece que no hay manera para consultar el servidor DHCP mediante programación. Gracias cottsak para hacer la pregunta. Tengo entendido que el protocolo DHCP no tiene una consulta de este tipo, pero pensé mayb el ejecutable de Microsoft podría tener alguna manera se puede abordar desde la línea de comandos. No he escuchado a nadie decir que en cualquier lugar que no hay tal caso, pero debe ser así.

Espera, espera un momento ... Creo que he encontrado lo que estamos buscando: NETSH. cf:

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

Donde dice si abre un símbolo del sistema en el servidor DHCP puede ejecutar este comando:

servidor dhcp netsh alcance 192.168.1.0 Mostrar clientes

y obtener un informe como este:

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

yippeee! Gracias por el hilo !! Si no fuera por esto, yo he estrechado Enver gustaría mi búsqueda a TechNet ADN encontrado que uno.

No se puede hacer eso con DHCP. DHCP IP atributos de MAC, y no al revés. ARP es lo que convierte las direcciones IP en MAC pero es la propia máquina que responde a solicitudes ARP así que si es fuera de él no es, obviamente, va a responder ...

Le sugiero que almacena el MAC en su anuncio directamente (supongo soportes AD atributos personalizados?)

es necesario utilizar ARP para obtener una Dirección MAC y hacerlo en C es un proceso largo.

direcciones de Mac están codificados, por lo que si tiene equipos X ir a buscar direcciones X de Mac y los atan a la AD.

Tenga en cuenta que el equipo tendrá que ser a solicitar su dirección MAC.

dirección MAC Buscando a partir de la dirección IP

Sí dun preocupe, usted puede tirar de esta información directamente de DHCP si la PC tiene un contrato de arrendamiento.

Sabes cómo debes dar click derecho y agregar una reserva DHCP?

Buscar en DHCP para que el unique ID'.Es la dirección MAC, sin los dos puntos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top