Search notes:

Registry: HKEY_CLASSES_ROOT\ProgId

A ProgId is a user-friendly (that is: readable) identifier that is associated with a CLSID and thus references a COM class.
ProgIds are generally used to create COM objects. (For example in the VBA and VBScript statement createObject(prog_id)).
Unlike CLSIDs (which are guids), ProgIds are not globally unique.
The format of ProgId is <program>.<component>.<version>, for example Excel.Application.15. Apparently, the .version part is not mandatory.
The GUID of that CLSID is stored under the respective default value for HKEY_CLASSES_ROOT\<ProgId>\CLSID.
The ProgId might be referenced as default value from a file type key (HKEY_CLASSES_ROOT\.ext) in the registry.

Using ProgIDs in PowerShell to create a COM object

In PowerShell, a COM object is created with new-object -com prog.id, for example:
PS C:\> $xls = new-object -com excel.application
$xls.visible = $true
$wbk = $xls.workbooks.add()
$wbk.Sheets.item(1).cells(2,2).value = "Powershell says hello"

See also

The WinAPI function CLSIDFromProgID finds the CLSID for a given ProgID.
The method GenerateProgIdForType of the class System.Runtime.InteropServices.Marshal.
The /a command line parameters of Excel.
The PowerShell module winFileExtProgId.

Index