windows 10 terminal GUIDs for PROFILES.JSON file

Windows Terminal: How to Find the GUIDs for the PROFILES.JSON File in the Registry

Share this post:

Last week, I write a blog post showing the features of the new Windows Terminal. One YouTube user asked “ How did you find those GUIDs in the registry?” so I created this post to break it down.

One of the last steps involved in installing and using the Windows Terminal is the modification of the PROFILES.JSON file to include the information that will allow you to add additional tabs for terminals that you want to run. A sample section that I used to add the WSL Ubuntu terminal is below.

The first entry is the “guid” item.  GUID (or UUID) is an acronym for ‘Globally Unique Identifier’ (or ‘Universally Unique Identifier’). A guid is represented as a 32-character hexadecimal string, such as {dcab32b8-e5ec-4f09-af89-44634bc7a04d}, and is usually stored in the form of a 128bit integer. It is nearly impossible for the numbers generated for the guid to have two numbers repeated making them unique.

{
            "guid": "{23596f84-c3ea-4cd8-a7df-550dce37bcd0}",
            "name": "UBUNTU!",
            "foreground": "#FF0000",
            "background": "#1CD3A2",
            "colorscheme": "Solarized Dark",
            "historySize": 9001,
            "snapOnInput": true,
            "cursorColor": "#FFFFFF",
            "cursorShape": "bar",
            "commandline": "ubuntu.exe",
            "fontFace": "Consolas",
            "fontSize": 18,
            "acrylicOpacity": 0.75,
            "useAcrylic": true,
            "closeOnExit": false,
            "padding": "0, 0, 0, 0"
       },

The guid for each terminal will be different and must be used when adding the code block to the PROFILES.JSON file to allow the Windows Terminal to find the terminal and insert it as a tabbed terminal window. The quickest way to find the guid(s) that you will want to add is to use the Registry Editor to search for them.
The registry locations will vary for the different terminals, so you are going to have to search for them using the FIND or FIND NEXT tools under the EDIT menu.

The location for the WSL terminals is noted below. The ”Publisher” item, in the form of CN=45FBC5C5-8DE5-4E85-AE6A-377002DA7605 is what you want. You will use the highlighted portion of the string, leaving out the CN=.

Kali:
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModel\StateRepository\Cache\PackageFamily\Data\7d

Ubuntu:
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModel\StateRepository\Cache\PackageFamily\Data\7e

The location for the PowerShell Core terminal is noted below. The ”Production” item, in the form of C:\WINDOWS\Installer\{69C0AFAD-2B31-4906-BDD3-8016DAAD82BC}\PowerShellExe.ico is what you want. You will use the highlighted portion of the string.

PowerShell Core:
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products\DAFA0C9613B26094DB3D0861ADDA28CB

If you wanted to get fancy and use PowerShell ISE to find the PowerShell Core guid, you could also use the following code, at the NAME: prompt, type powershell 6.

NOTE: NAME input value is case sensitive!!

Param(
[parameter(Mandatory=$true)]
[string]$Name
)
$path = 'HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*'
Get-ItemProperty -Path $path | Where-Object {$_.DisplayName -like "*$name*"} | select Displayname, ModifyPath 

Leave a Reply

Your email address will not be published. Required fields are marked *