Используя shell32 в качестве примера, вы можете создать новый экземпляр следующим образом:
var shl = (Shell) Activator.CreateInstance(Type.GetTypeFromProgID("Shell.Application"));
Это будет ссылаться на существующий компонент;
var shl2 = (Shell) Marshal.GetActiveObject("Shell.Application");
Вот ссылка на то, как сделать то же самое в IronPython .
** Обратите внимание, что здесь используется progid, clsid будет почти идентичным, просто используйте Type.GetTypeFromCLSID ({GUID}).