Procurando por um GUID exclusivo para identificar uma instalação do Windows

10

Estou à procura de um GUID exclusivo armazenado no registro do Windows que me ajude a identificar uma instalação do Windows ou um PC.

O GUID deve:

  • Sempre existe
  • Seja exclusivo de uma instalação específica do Windows, ou seja, nenhum outro computador teria o mesmo ID
  • Nunca mude

Muito obrigado

    
por user28967 13.12.2009 / 00:30

12 respostas

6

Você espera que esse número mude ou permaneça o mesmo se a unidade para essa instalação for movida para outro sistema?

Você espera que esse número seja alterado se a instalação for clonada com fantasma ou outra coisa? Você pode depender de sistemas clonados sempre sendo sysprep'd seguindo as recomendações da Microsoft? O SID deve ficar bem, se você puder ter certeza de que suas instalações nunca serão clonadas.

No caso de um sistema com inicialização múltipla (ou seja, o sistema tem o Windows 7 e uma instalação do Windows XP), é necessário identificar as duas instalações como exclusivas ou relacionadas ou o que?

Por que você precisa fazer parte da instalação do Windows, e não algo apresentado pelo hardware, talvez o processador serial número ?

Estou assumindo que você está perguntando sobre isso para algum tipo de script ou ferramenta que você está usando para fins de inventário?

Por que você simplesmente não gera seu próprio número na primeira vez que executa a ferramenta e a salva na seção de registro LOCAL_MACHINE? Talvez até mesmo use um número RFC4122 Tipo 1 e que deve incluir o endereço de hardware para uma das interfaces de rede. Dessa forma, você pode verificar se o UUID ainda pertence a esse sistema, comparando o UUID com os adaptadores de rede atuais.

    
por 13.12.2009 / 02:32
4

Você pode obter o GUID do registro do Windows, por exemplo:

var regpath = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\MachineGuid";
var oWSS = new ActiveXObject("WScript.Shell");
clientGUID = oWSS.RegRead(regpath);
    
por 03.04.2015 / 16:02
1

Você deseja usar o ID do produto Windows. Esse é um número exclusivo gerado (com hash) parcialmente a partir da chave de produto instalada e parcialmente da configuração de hardware, incluindo o número de série do processador e o endereço MAC da primeira NIC. Você pode ler sobre isso neste (um tanto datado, mas ainda válido) artigo do TechNet . O ID do produto pode ser encontrado na tela System Information ou através de vários métodos através de programação.

    
por 01.10.2014 / 07:29
0

Supondo que seja um servidor Windows, há um artigo da base de conhecimento que fala sobre como obtê-lo do Win2k: KB224544 .

Eu não sei se o LDP.exe ainda funciona assim, mas pode.

    
por 13.12.2009 / 00:38
0

Não tenho tanta certeza de que um valor de GUID como o que você descreve realmente existe. Uma prática comum é usar as informações de ID da CPU ou da placa-mãe.

Aqui está um link para uma postagem no fórum que contém algum código de script WMI relevante: link

    
por 13.12.2009 / 01:44
0

Se você estiver procurando identificar uma instalação do Windows, talvez esteja sem sorte. Em ambientes corporativos, as estações de trabalho costumam ser visualizadas, e não instaladas. Cada computador criado a partir dessa imagem será idêntico.

O mais parecido com o que você descreveu é o SID da máquina, mas isso não funciona por dois motivos:

  1. Máquinas com Windows XP com imagens têm o mesmo SID, a menos que você execute o NewSID contra elas, o que muitas pessoas não usam.
  2. Todos os controladores de domínio em um único domínio compartilham o mesmo SID da máquina.

Para que você precisa deste identificador? Sua melhor aposta pode ser gerar sua própria, se isso for possível.

    
por 13.12.2009 / 05:44
0

Você pode tentar o endereço MAC, que é pelo menos destinado a ser globalmente exclusivo e permanente. Isso também teria a vantagem de poder obter o IP e o nome do host de uma máquina sem muita preocupação (e também não ficaria restrita ao Windows). Ele não atenderia ao requisito de estar no registro, mas você pode usar o WMI para ele.

Exemplo de scripts aqui: link

    
por 13.12.2009 / 14:57
0

Como sobre o DriveId do volume do sistema? Você pode obter o id da classe Win32_Volume WMI, procurando por entradas com SystemVolume True.

No PowerShell:

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

(Isso pode ser remotamente claro.)

    
por 13.12.2009 / 17:40
0

Há um SID usado pelo Windows Update que você pode usar. Novamente, não há garantia de que será único a cada vez, ou que não mudará.

Acho que a coisa mais próxima para atender às suas necessidades seria o endereço MAC, no entanto, isso poderia mudar se a NIC fosse substituída.

Sua melhor aposta seria escrever seu próprio GUID no registro e usá-lo.

    
por 13.12.2009 / 22:18
0

Para confirmar o SID da máquina em uma determinada máquina, você pode executar o SysInternals PSGETSID% COMPUTERNAME% $. (SID do domínio).

link

EDIT: Removidas as referências ao SID da máquina no registro, que podem não ser exclusivas (ou até corretas).

    
por 13.12.2009 / 01:08
-1

Por que não usar apenas o nome do computador? Ela será única em seu domínio, todas as instalações do Windows terão uma e só serão alteradas se um administrador de domínio a alterar, o que nunca será necessário, a menos que seja feita uma correção.

    
por 13.12.2009 / 03:23
-2

Eu também preciso encontrar uma maneira de identificar globalmente as instalações do Windows. Em primeiro lugar, para classificar e identificar adequadamente as imagens de backup e determinar quais são recuperadas em quais máquinas. Em segundo lugar, para nomear pares de sincronização para sincronizar arquivos e determinar qual par de sincronização usar dependendo das máquinas envolvidas na sincronização.

Depois de ler vários posts, incluindo os deste site, concluo que não há uma maneira fácil de encontrar um identificador global exclusivo de uma instalação do Windows. Isso é muito mau. Como o hardware, o software também deve ter seu próprio número de série. Ah bem! Portanto, esta é minha solução alternativa: em vez de encontrar um único identificador exclusivo globalmente, criei uma declaração sylized, inspirada na maneira como a Microsoft nomeia unidades de rede no Windows e na maneira como nomeia pastas compartilhadas no Virtual PC: "[WINDOWS ID DO PRODUTO ( como variável )] Instalado em [COMPUTER SERIAL NUMBER ( como variável )]. " Embora um número de identificação de produção do Windows seja único somente na medida em que a chave de produto correspondente é, ele é, no entanto, o mesmo em várias instalações, especialmente em computadores produzidos em massa contendo Windows instalado de fábrica, mas um número de série é exclusivo e é diferente de uma máquina para outra. A fórmula acima mencionada é tudo o que preciso para meus propósitos; Eu não preciso do SID (eu presumo que isso signifique Identificador de Segurança ) ou algo mais complexo, porque a combinação de ambas as variáveis referencia exatamente a instalação do Windows que eu preciso identificar, considerando que cada variável individual é , por si só, não tem utilidade para mim. Especificamente e em primeiro lugar, a identificação do produto Windows é idêntica em computadores feitos pelo mesmo fabricante e encontrados na mesma linha de produtos e que não me servem de propósito, já que possuo várias máquinas idênticas. Em segundo lugar, o número de série não está identificando de forma exclusiva o suficiente, pois eu tenho várias instalações do Windows em um computador que um número de série do computador não resolve. Por isso, sugiro o meu método.

Além disso, e antes de você perguntar sobre isso: Eu escolhi não basear meu método no nome do computador. A informação é baseada no usuário e, portanto, precisa ser inventariada. No entanto, a identificação do produto Windows e o número de série do computador já estão identificados, inventariados e invariavelmente conectados a dois produtos específicos, eliminando assim a necessidade de inventariá-los novamente. Eu não escolheria identificar uma instalação do Windows com um identificador único de discos rígidos, já que eu sou capaz e bastante capaz de alterná-los de uma máquina para outra, especialmente quando as capacidades da unidade estão em um estado de fluxo constante. Da mesma forma, eu usaria muito menos a nomenclatura de identificação da unidade de processamento central ou da placa-mãe, como foi sugerido em uma resposta anterior por Shoeless . Por fim, rejeito também a opção mais óbvia de identificar uma instalação do Windows (embora não tenha sido mencionada por ninguém a partir do que eu possa ver): usando a chave do produto. Embora seja único, é apenas uma licença para instalar uma determinada versão do Windows; ele não está realmente conectado a uma instalação particular do Windows e não o distingue como sendo instalado em uma máquina específica, mesmo que a licença tenha sido concedida em virtude da compra de um determinado computador.

    
por 01.10.2014 / 07:13

Tags