How can I generate a UUID from the command line in Windows XP? Something like "uuid" or "uuidgen" in Linux.
-
cross-site duplicate: [Generate GUID in Windows with batch file](https://stackoverflow.com/q/4313422/995714) – phuclv May 27 '17 at 03:57
10 Answers
If powershell is installed this is a simple commandline to get a guid
powershell -Command "[guid]::NewGuid().ToString()"
- 431
- 4
- 3
-
You can make it a reusable command within PowerShell with. function uuid { [guid]::NewGuid().ToString() }. Just run "uuid" as needed. – Alain O'Dea Jun 05 '13 at 17:33
-
I put this line in guid.bat in a PATH folder so it works in regular command prompt and PowerShell. – biscuit314 Jan 13 '20 at 21:39
-
1for folks running this on `Git Bash`, stick this into a function in `.bashrc` as `function guid() { powershell -Command "[guid]::NewGuid().ToString()" }`. Invoke it by just typing `guid` and hitting `Enter`. – Dut A. Jan 29 '21 at 19:00
-
1Now even `powershell -command new-guid`, if I am may copy answer from mentioned cross-site dupclicate. – bogec Feb 07 '21 at 17:45
Drop the following code into a new file name uuid.vbs
set obj = CreateObject("Scriptlet.TypeLib")
WScript.StdOut.WriteLine obj.GUID
Then you can run it from the command line like so:
cscript //NoLogo uuid.vbs
This will work on pretty much any computer that has the Windows Scripting Host installed - which certainly includes anything later than Windows 2000, and probably includes 95/98/ME as well... though I don't have an instance handy to check.
If you need to remove the braces, replace the last line with this
WScript.StdOut.WriteLine Replace(Replace(obj.GUID,"{",""),"}","")
- 6,511
- 4
- 37
- 48
-
4Funny how in Windows it's only unique to each planet, but in Unix and related systems it's unique throughout the entire universe. – Bratch Jun 23 '10 at 19:45
Now in powershell, you can use built in New-GUID function:
For /f "tokens=* delims= " %%a in ('powershell -noP -c "& {(New-GUID).GUID}"') do set "GUID=%%~a"
- 7,984
- 2
- 19
- 32
You can also use this command in a command prompt:
wmic path win32_computersystemproduct get uuid
-
-
9This does NOT generate a GUID. It just shows an existing guid. DO NOT USE this if you want a unique GUID – Air2 Mar 27 '14 at 13:55
-
6
To copy a new GUID to the clipboard, use this command :
cmd /c powershell.exe -Command "[guid]::NewGuid().ToString()|Set-Clipboard"
You can run the command straight from the Start, Run dialog ( WinLogo + R ), then use Ctrl+V to paste the generated GUID, which WILL also save it into your Run dialog history - aka if you use it often it will pop-up as suggestion there ...
- 153
- 1
- 8
From MSDN Library: Generating Interface UUIDs.
- 55,164
- 49
- 193
- 250
-
-
It comes with Visual Studio - I'd expect it to come with the express edition of Visual C++ which I believe is a free download, as well – Rowland Shaw Jun 23 '10 at 11:34
-
1http://msdn.microsoft.com/en-us/library/aa373930%28VS.85%29.aspx says that the `uuidgen` utility (Uuidgen.exe) is automatically installed when you install the Platform Software Development Kit (SDK). – Mehper C. Palavuzlar Jun 23 '10 at 11:35
-
Is it not available as a seperate download, as I have no use for the SDK or for Visual Studio. – yazz.com Jun 23 '10 at 11:36
-
1@Zubair: Install SDK, get uuidgen, uninstall SDK. Anything else is a copyright violation. – harrymc Jun 23 '10 at 11:48
-
I tried installing the SDK on my Windows XP but it said it required the .NET framework to be installed. Is it possible to just find the uuidgen program, as installing .net might make other programs on my machine fail? – yazz.com Jun 23 '10 at 12:47
-
I don't think installing .NET will do harm to your programs. – Mehper C. Palavuzlar Jun 23 '10 at 12:51
-
Ok, thanks, I'll check that it is safe to install .net and if so I will do this – yazz.com Jun 23 '10 at 13:04
-
I found that uuidgen.exe is present inside my C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x64 directory, probably because of some components that I have installed along with Visual Studio.
So I simply added C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x64 to my PATH and now it's easy to remember to type uuidgen like I'm used on macOS instead of having to remember a long command.
- 570
- 4
- 9
If the system OS does not have Windows SDK but does have a C compiler with mingw-w64 toolchain then compile this small program to generate random GUID. Imported functions are UuidCreate (rpcrt4.lib) to create random UUID and StringFromCLSID (ole32.lib) to convert UUID to wide string.
#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);
}
- 10,831
- 10
- 47
- 78
You can use the Windows Subsystem for Linux, eg install Ubuntu -
Welcome to Ubuntu 22.04 LTS (GNU/Linux 5.10.16.3-microsoft-standard-WSL2 x86_64)
$ uuidgen
(prints a uuid)
- 700
- 8
- 14
FOR /F %a IN ('POWERSHELL -COMMAND "$([guid]::NewGuid().ToString())"') DO ( SET NEWGUID=%a )
- 1
- 1