32

How can I generate a UUID from the command line in Windows XP? Something like "uuid" or "uuidgen" in Linux.

1

10 Answers 10

33

If powershell is installed this is a simple commandline to get a guid

powershell -Command "[guid]::NewGuid().ToString()"
4
  • You can make it a reusable command within PowerShell with. function uuid { [guid]::NewGuid().ToString() }. Just run "uuid" as needed. Jun 5, 2013 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, 2020 at 21:39
  • 1
    for 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, 2021 at 19:00
  • 1
    Now even powershell -command new-guid, if I am may copy answer from mentioned cross-site dupclicate.
    – bogec
    Feb 7, 2021 at 17:45
7

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,"{",""),"}","")
1
  • 4
    Funny 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, 2010 at 19:45
3

You can also use this command in a command prompt:
wmic path win32_computersystemproduct get uuid

3
  • seems like it's only good for 1 guid
    – drzaus
    Jan 15, 2014 at 21:24
  • 9
    This does NOT generate a GUID. It just shows an existing guid. DO NOT USE this if you want a unique GUID
    – Air2
    Mar 27, 2014 at 13:55
  • 6
    Relevant XKCD: xkcd.com/221
    – TripShock
    May 11, 2015 at 15:33
3

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"
2

From MSDN Library: Generating Interface UUIDs.

9
  • Do you know where I can download this "uuidgen" from?
    – yazz.com
    Jun 23, 2010 at 11:24
  • 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 Jun 23, 2010 at 11:34
  • 1
    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). Jun 23, 2010 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, 2010 at 11:36
  • 1
    @Zubair: Install SDK, get uuidgen, uninstall SDK. Anything else is a copyright violation.
    – harrymc
    Jun 23, 2010 at 11:48
2

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 ...

2

I found that uuidgen.exe is present inside my C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.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.

1

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);
}
1

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)
0
  FOR /F %a IN ('POWERSHELL -COMMAND "$([guid]::NewGuid().ToString())"') DO ( SET NEWGUID=%a )

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .