Respostas:
Se o powershell estiver instalado, é uma linha de comando simples para obter um guia
powershell -Command "[guid]::NewGuid().ToString()"
Solte o código a seguir em um novo nome de arquivo uuid.vbs
set obj = CreateObject("Scriptlet.TypeLib")
WScript.StdOut.WriteLine obj.GUID
Em seguida, você pode executá-lo na linha de comando da seguinte maneira:
cscript //NoLogo uuid.vbs
Isso funcionará em praticamente qualquer computador que tenha o Windows Scripting Host instalado - o que certamente inclui qualquer coisa posterior ao Windows 2000 e provavelmente também inclua 95/98 / ME ... embora eu não tenha uma instância útil para verificar.
Se você precisar remover as chaves, substitua a última linha por esta
WScript.StdOut.WriteLine Replace(Replace(obj.GUID,"{",""),"}","")
Você também pode usar este comando em um prompt de comandos:
wmic path win32_computersystemproduct get uuid
Da biblioteca do MSDN: Gerando UUIDs de interface.
uuidgen
utilitário (Uuidgen.exe) é instalado automaticamente quando você instala o SDK (Platform Software Development Kit).
Para copiar um novo GUID para a área de transferência, use este comando:
cmd /c powershell.exe -Command "[guid]::NewGuid().ToString()|Set-Clipboard"
Você pode executar o comando diretamente na caixa de diálogo Iniciar, Executar (WinLogo + R) e usar Ctrl + V para colar o GUID gerado.
FOR /F %a IN ('POWERSHELL -COMMAND "$([guid]::NewGuid().ToString())"') DO ( SET NEWGUID=%a )
Se o sistema operacional do sistema não possuir o Windows SDK, mas possuir um compilador C com a cadeia de ferramentas mingw-w64, compile esse pequeno programa para gerar GUID aleatório. As funções importadas são UuidCreate (rpcrt4.lib) para criar UUID aleatório e StringFromCLSID ( ole32.lib ) para converter UUID em cadeia ampla.
#include <Windows.h>
#include <stdio.h>
/*
* int UuidCreate(GUID *id);
* int StringFromCLSID(GUID *id, wchar_t **str);
* Libraries: Rpcrt4.lib Ole32.lib
*/
int main(void)
{
GUID id;
wchar_t *str = NULL;
UuidCreate(&id);
StringFromCLSID(&id, &str);
wprintf(L"%ls\n", str);
}