Buscando un GUID único para identificar una instalación de Windows


14

Estoy buscando un GUID único almacenado en el registro de Windows que me ayude a identificar una instalación de Windows o una PC.

El GUID debe;

  • Siempre existe
  • Sea exclusivo de una instalación particular de Windows, es decir, ninguna otra computadora tendría la misma ID
  • Nunca cambies

Muchas gracias


¿Por qué publicar en SF y SU? superuser.com/questions/82484/...
MDMarra

Respuestas:


7

¿Espera que este número cambie o permanezca igual si la unidad para esa instalación se traslada a otro sistema?

¿Espera que se cambie este número si la instalación se clona con ghost u otra cosa? ¿Puede confiar en que los sistemas clonados siempre estén preparados según las recomendaciones de Microsoft? El SID debería estar bien, si puede estar seguro de que sus instalaciones nunca se clonan.

En el caso de un sistema de arranque múltiple (es decir, el sistema tiene Windows 7 y una instalación de Windows XP), ¿necesita identificar las dos instalaciones como únicas, relacionadas o qué?

¿Por qué necesita que esto sea parte de la instalación de Windows, y no algo presentado por el hardware, tal vez el número de serie del procesador ?

¿Supongo que está preguntando sobre esto por algún tipo de script o herramienta que esté utilizando para fines de inventario?

¿Por qué no simplemente genera su propio número la primera vez que ejecuta la herramienta y la guarda en la sección de registro LOCAL_MACHINE? Quizás incluso use un número RFC4122 Tipo 1 y que debería incluir la dirección de hardware para una de las interfaces de red. De esa manera, puede verificar si el UUID todavía pertenece a ese sistema comparando el UUID con los adaptadores de red actuales.


7

Puede obtener GUID del registro de Windows, por ejemplo:

var regpath = "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Cryptography\\MachineGuid";
var oWSS = new ActiveXObject("WScript.Shell");
clientGUID = oWSS.RegRead(regpath);

¿Está su código en C # o en algún otro lenguaje de programación?
Tim

Es JavaScript que he usado en el gadget de Windows 7.
friednail

1
¿C # y Javascript tienen sintaxis muy similares?
Tim

Lo siento, no puedo decirte, no estoy familiarizado con C #. Estas son solo 3 líneas de un código simple, contienen definición variable, literal de cadena, creación de un nuevo objeto y uso de una notación de puntos para acceder al método de un objeto. Probablemente hay toneladas de otras estructuras de código para comparar idiomas.
friednail

@Tim, supongo que estás interesado en leer las claves de registro en C #? Si es así, tal vez esta pregunta para que sea útil para usted
friednail

2

Desea usar la identificación del producto de Windows. Este es un número único generado (en hash) parcialmente a partir de la clave de producto instalada y parcialmente a partir de la configuración del hardware, incluido el número de serie del procesador y la dirección MAC de la primera NIC. Puede leer sobre esto en este artículo de TechNet (algo anticuado, pero aún válido) . La identificación del producto se puede encontrar en la pantalla de información del sistema o mediante programación a través de varios métodos.

Información del sistema


El registro que posee la licencia de la ventana de los usuarios se encuentra en: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion, no se necesitan trucos especiales para leerlo
Walter Vehoeven

0

Suponiendo que es un servidor de Windows, hay un artículo de base de conocimiento que habla sobre cómo sacarlo de Win2k: KB224544 .

No sé si LDP.exe todavía funciona así, pero puede ser.


Ese artículo solo se aplica a los controladores de dominio.
MDMarra

Gracias por la información, estoy buscando un GUID que exista en todas las versiones de Windows, XP y superiores
User28967


0

Si está buscando identificar una instalación de Windows, puede que no tenga suerte. En entornos corporativos, las estaciones de trabajo a menudo tienen imágenes en lugar de instalarse. Cada computadora construida a partir de esta imagen será idéntica.

Lo más parecido a lo que ha descrito es el SID de la máquina, sin embargo, esto no funciona por dos razones:

  1. Las máquinas con Windows XP con imágenes tienen el mismo SID a menos que ejecute NewSID contra ellas, lo que muchas personas no tienen.
  2. Todos los controladores de dominio en un solo dominio comparten el mismo SID de la máquina.

¿Para qué necesita este identificador? Su mejor apuesta puede ser generar la suya, si eso es posible.


1
Si las máquinas son syspreps después de la imagen, el SID será diferente. Si no lo son (que a menudo no lo son), los SID serán los mismos.
mrdenny

0

Puede probar la dirección MAC, que al menos pretende ser globalmente única y permanente. Esto también tendría la buena ventaja de que podría obtener la IP y el nombre de host de una máquina sin demasiada molestia (y tampoco se limitará a Windows). No cumpliría con su requisito de estar en el registro, pero puede usar WMI para ello.

Ejemplos de scripts aquí: http://www.winforums.com/showthread.php?t=8842


0

¿Qué tal el DriveId del volumen del sistema? Puede obtener la identificación de la Win32_Volumeclase WMI, buscando entradas con SystemVolume True.

En PowerShell:

gwmi win32_volume -filter 'SystemVolume=true' | ft -a DriveLetter,SystemVolume,DeviceId

(Por supuesto, esto puede ser remoto).


0

Hay una SID utilizada por Windows Update que puede usar. Una vez más, no hay garantía de que sea único cada vez, o de que no cambie.

Creo que lo más cercano para satisfacer sus necesidades sería la dirección MAC, sin embargo, eso podría cambiar si se reemplazara la NIC.

Su mejor opción sería escribir su propio GUID en el registro y usarlo.


0

Para confirmar el SID de la máquina en una máquina en particular, puede ejecutar SysInternals PSGETSID% COMPUTERNAME% $. (Dominio SID).

http://blogs.msdn.com/aaron_margosis/archive/2009/11/05/machine-sids-and-domain-sids.aspx

EDITAR: Se eliminaron las referencias al SID de la máquina en el registro, que pueden no ser únicas (o incluso correctas).


Oh, vamos, si vas a modificar a alguien, al menos deja un comentario y hazles saber lo que está mal.
Matt Simmons

No se garantiza que los SID de la máquina sean únicos: blogs.technet.com/markrussinovich/archive/2009/11/03/…
hasta nuevo aviso.

@ Dennis: correcto. Entonces, si está en un dominio: psgetsid.exe% computername% $ produciría un identificador único.
Greg Askew

@Greg: ¿Qué pasa si construyes tus estaciones de trabajo a partir de imágenes? Si no ejecutó newsid, todos compartirán el mismo SID de la máquina.
Stephen Jennings, el

@Stephen: el uso del SID de dominio resolvería ese problema. blogs.msdn.com/aaron_margosis/archive/2009/11/05/…
Greg Askew

-1

¿Por qué no solo usar el nombre de la computadora? Será único dentro de su dominio, todas las instalaciones de Windows tienen uno y solo cambiarán si un administrador de dominio lo cambia, lo que nunca debería ser necesario a menos que se realice una corrección.


-2

Yo también necesito encontrar una manera de identificar globalmente de manera única las instalaciones de Windows. En primer lugar, para clasificar e identificar adecuadamente las imágenes de respaldo y determinar cuáles se recuperan en qué máquinas. En segundo lugar, para nombrar pares de sincronización para sincronizar archivos y determinar qué par de sincronización usar dependiendo de las máquinas involucradas en la sincronización.

Después de leer varias publicaciones, incluidas las de este sitio web, concluyo que no hay una manera fácil de encontrar un identificador único global de una instalación de Windows. Eso es muy malo. Al igual que el hardware, el software también debe tener su propio número de serie. ¡Oh bien! Así que esta es mi solución: en lugar de encontrar un único identificador único a nivel mundial, he creado una declaración sincronizada, inspirada en la forma en que Microsoft nombra las unidades de red en Windows y la forma en que nombra las carpetas compartidas en Virtual PC: "[WINDOWS ID DEL PRODUCTO ( como variable )] Instalado en [NÚMERO DE SERIE DE COMPUTADORA ( como variable)]. "Aunque un número de identificación de producción de Windows es único solo en la medida en que la clave del producto correspondiente es, sin embargo, es probable que sea el mismo en varias instalaciones, especialmente en computadoras producidas en serie que contienen Windows instalado de fábrica, pero un el número es único y es diferente de una máquina a otra. La fórmula mencionada anteriormente es todo lo que necesito para mis propósitos; no necesito el SID (supongo que significa Identificador de seguridad) o algo más complejo, porque la combinación de ambas variables hace referencia exactamente a la instalación de Windows que necesito identificar, mientras que cada variable individual, por sí sola, no me sirve de nada. Específicamente y en primer lugar, la identificación del producto de Windows es idéntica en las computadoras fabricadas por el mismo fabricante y se encuentran en la misma línea de productos y eso no me sirve para nada, ya que tengo varias máquinas idénticas. En segundo lugar, el número de serie no es lo suficientemente identificable, ya que tengo varias instalaciones de Windows en una computadora que el número de serie de una computadora no incluye. Por lo tanto, sugiero mi método.

Además, y antes de preguntar al respecto: elegí no basar mi método en el nombre de la computadora. La información está basada en el usuario y, por lo tanto, debe inventariarse. Sin embargo, la identificación del producto de Windows y el número de serie de la computadora ya están identificados, inventariados e invariablemente conectados a dos productos específicos, eliminando así la necesidad de inventariarlos nuevamente. Tampoco elegiría identificar una instalación de Windows con un identificador único de discos duros, ya que soy capaz y bastante apto para cambiarlos de una máquina a otra, especialmente cuando las capacidades de las unidades están en un estado de flujo constante. Del mismo modo, utilizaría mucho menos la nomenclatura de identificación de la unidad central de procesamiento o de la placa base, como se sugirió anteriormente en una respuesta anterior de Shoeless.. Finalmente, también rechazo la opción más obvia de identificar una instalación de Windows (aunque nadie más lo haya mencionado por lo que puedo ver): usar la clave del producto. Aunque es único, es solo una licencia para instalar una determinada versión de Windows; en realidad no está conectado a una instalación particular de Windows y no lo distingue como instalado en una máquina en particular, a pesar de que la licencia se otorgó en virtud de la compra de una computadora determinada.


3
¿Y tu respuesta a la pregunta es ...?
Deer Hunter
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.