31

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

1

10 Answers 10

30

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
  • 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
  • Now even powershell -command new-guid, if I am may copy answer from mentioned cross-site dupclicate. 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
4

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
  • 7
    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
  • 5
    Relevant XKCD: xkcd.com/221
    – TripShock
    May 11, 2015 at 15:33
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

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

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.

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 )

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.