Wie finde ich die Produkt-GUID eines installierten MSI-Setups?

Antworten:

162

Zum Abrufen des Upgrade-Codes : Wie finde ich den Upgrade-Code für eine installierte MSI-Datei?


Kurzfassung

Die folgenden Informationen sind im Laufe der Zeit erheblich gewachsen und möglicherweise etwas zu ausführlich geworden. Wie bekomme ich schnell Produktcodes? (vier Ansätze):

1 - Use the Powershell "one-liner"

Scrollen Sie nach unten für Screenshot und Schritt für Schritt . Haftungsausschluss auch unten - geringfügige oder mäßige Risiken, je nachdem, wen Sie fragen. Funktioniert für mich in Ordnung. Jede durch diese Option ausgelöste Selbstreparatur sollte generell abgebrochen werden können. Die Paketintegritätsprüfungen ausgelöst hat einige Ereignisprotokoll „Rauschen“ hinzufügen though. Hinweis ! IdentifyingNumber ist die ProductCode(WMI-Besonderheit).

get-wmiobject Win32_Product | Format-Table IdentifyingNumber, Name, LocalPackage -AutoSize

Schnellstart von Powershell : Halten Windows key, tippen R, "Powershell" eingeben und drückenEnter

2 - Use VBScript( Skript auf github.com )

Wird unten unter " Alternative Tools" (Abschnitt 3) beschrieben . Diese Option ist aus den nachstehend ausführlich erläuterten Gründen möglicherweise sicherer als Powershell. Im Wesentlichen ist es (viel) schneller und kann keine MSI-Selbstreparatur auslösen, da es nicht über WMI läuft (es greift direkt auf die MSI-COM-API zu - mit rasender Geschwindigkeit). Es ist jedoch aufwändiger als die Powershell-Option (mehrere Codezeilen).

3 - Registry Lookup

Einige schwören darauf, Dinge in der Registrierung nachzuschlagen. Nicht mein empfohlener Ansatz - ich gehe gerne die richtigen APIs durch (oder mit anderen Worten: Betriebssystemfunktionsaufrufe). Es gibt immer seltsame Ausnahmen, die nur von den Interna der API-Implementierung berücksichtigt werden:

  • HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
  • HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall
  • HKCU\Software\Microsoft\Windows\CurrentVersion\Uninstall

4 - Original MSI File / WiX Source

Sie finden die Product Codein Property tablejeder MSI-Datei (und auch in jeder anderen Eigenschaft). Es ist jedoch denkbar, dass die GUID (selten) durch eine zum Zeitpunkt der Installation angewendete Transformation überschrieben wird und daher nicht mit der GUID übereinstimmt, unter der das Produkt registriert ist (Ansatz 1 und 2 oben geben den tatsächlichen Produktcode an, der bei Windows registriert ist) seltene Szenarien).

Sie benötigen ein Tool zum Anzeigen von MSI-Dateien . Unten in der folgenden Antwort finden Sie eine Liste der kostenlosen Tools, die Sie herunterladen können (oder die unten stehende Kurzoption): Wie kann ich den Inhalt von zwei (oder mehr) MSI-Dateien vergleichen?

UPDATE : Laden Sie SuperOrca aus Bequemlichkeits- und Geschwindigkeitsgründen unverzüglich von diesem Direkt-Download-Hotlink herunter - das Tool ist gut genug, um die Aufgabe zu erledigen - installieren, öffnen Sie MSI und gehen Sie direkt zur Eigenschaftentabelle und suchen Sie die Zeile ( Bitte überprüfen Sie immer einen Hotlink zum direkten Herunterladen von Viren - natürlich - Sie können dazu virustotal.com verwenden - Online-Scan mit Dutzenden von Antiviren- und Malware-Suiten, um zu scannen, was Sie hochladen).ProductCode

Orca ist ein Microsoft-eigenes Tool, das mit Visual Studio und dem Windows SDK installiert wird . Suchen Sie nach Orca-x86_en-us.msi- unter Program Files (x86)und installieren Sie das MSI, falls es gefunden wurde.

  • Aktueller Pfad :C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x86
  • Ändern Sie die Versionsnummern entsprechend

Und unten finden Sie die ursprüngliche Antwort, die "organisch gewachsen" ist, sehr detailliert.

Lesen Sie möglicherweise den Abschnitt " MSI-Pakete deinstallieren " weiter unten, wenn dies die Aufgabe ist, die Sie ausführen müssen.


Produktcodes abrufen

UPDATE : Wenn Sie auch den Upgrade-Code benötigen , überprüfen Sie diese Antwort: Wie finde ich den Upgrade-Code für eine installierte MSI-Datei? (Ruft die zugehörigen Produktcodes, Upgrade-Codes und Produktnamen in einer Tabellenausgabe ab - ähnlich der folgenden).

  • Kann PowerShell nicht verwenden? Siehe Abschnitt "Alternative Tools" weiter unten.
  • Möchten Sie deinstallieren? Siehe den Abschnitt "MSI-Pakete deinstallieren" weiter unten.

Feuer Powershell ( halten Sie die Windows - Taste, tippen R, lassen Sie die Windows - Taste, geben Sie in „Powershell“ und drücken Sie OK ) und führen Sie den folgenden Befehl ein , um eine Liste der installierten MSI - Paket Produktcodes zusammen mit dem lokalen Cache Paketpfad und den Produktnamen (maximieren Sie das PowerShell-Fenster, um abgeschnittene Namen zu vermeiden).

Bevor Sie diese Befehlszeile ausführen, lesen Sie bitte den folgenden Haftungsausschluss (nichts Gefährliches, nur einige mögliche Belästigungen). Abschnitt 3 unter "Alternative Tools" zeigt eine alternative Nicht-WMI-Methode, um dieselben Informationen mit VBScript abzurufen. Wenn Sie versuchen, ein Paket zu deinstallieren, finden Sie unten einen Abschnitt mit einigen Beispielbefehlszeilen für msiexec.exe:

get-wmiobject Win32_Product | Format-Table IdentifyingNumber, Name, LocalPackage -AutoSize

Die Ausgabe sollte ungefähr so ​​aussehen:

Geben Sie hier die Bildbeschreibung ein

Hinweis! Aus irgendeinem seltsamen Grund wird der "ProductCode " in WMI als "IdentifyingNumber" bezeichnet . Also mit anderen Worten - auf dem Bild über dem IdentifyingNumber ist der Productcode .

Wenn Sie diese Abfrage remote für viele Remotecomputer ausführen müssen, lesen Sie den folgenden Abschnitt " Abrufen von Produktcodes von einem Remotecomputer ".

HAFTUNGSAUSSCHLUSS (wichtig, bitte lesen Sie, bevor Sie den Befehl ausführen !): Aufgrund des seltsamen Microsoft-Designs Win32_Product löst jeder WMI-Aufruf von (wie der PowerShell-Befehl unten) eine Validierung des Paketbestandes aus . Dies ist nicht nur recht langsam , sondern kann in seltenen Fällen auch eine MSI-Selbstreparatur auslösen. Dies kann ein kleines Paket oder etwas Großes sein - wie Visual Studio. In den meisten Fällen passiert dies nicht - aber es besteht ein Risiko. Führen Sie diesen Befehl nicht direkt vor einem wichtigen Meeting aus - er ist niemals gefährlich (er ist schreibgeschützt), kann jedoch in sehr seltenen Fällen zu einer langen Reparatur führen(Ich denke, Sie können die Selbstreparatur auch abbrechen - es sei denn, das betreffende Paket verhindert dies aktiv. Sie wird jedoch neu gestartet, wenn Sie Win32_Product erneut aufrufen, und dies bleibt bestehen, bis Sie die Selbstreparatur abgeschlossen haben. Manchmal wird sie auch dann fortgesetzt, wenn Sie lassen es zu Ende gehen: Wie kann ich feststellen, was die wiederholte Selbstreparatur von Windows Installer verursacht? ).

Und nur zur Veranschaulichung : Einige Leute melden ihre Ereignisprotokolle mit MsiInstaller EventID 1035-Einträgen (siehe Antwort des Codechefs) - anscheinend verursacht durch WMI-Abfragen an die Win32_Product-Klasse (persönlich habe ich das noch nie gesehen). Dies steht nicht in direktem Zusammenhang mit dem oben vorgeschlagenen Powershell-Befehl, sondern steht im Zusammenhang mit der allgemeinen Verwendung der WIM-Klasse Win32_Product.

Sie können die Ausgabe auch in Listenform (anstelle der Tabelle) erhalten:

get-wmiobject -class Win32_Product

In diesem Fall ist die Ausgabe ähnlich wie folgt:

Geben Sie hier die Bildbeschreibung ein


Produktcodes von einem Remotecomputer abrufen

Theoretisch sollten Sie nur einen Remotecomputernamen als Teil des Befehls selbst angeben können. Hier ist der gleiche Befehl wie oben, der für die Ausführung auf dem Computer "RemoteMachine" eingerichtet wurde ( -ComputerName RemoteMachineAbschnitt hinzugefügt):

get-wmiobject Win32_Product -ComputerName RemoteMachine | Format-Table IdentifyingNumber, Name, LocalPackage -AutoSize

Dies funktioniert möglicherweise, wenn Sie mit Domänenadministratorrechten für eine ordnungsgemäße Domäne ausgeführt werden. In einer Arbeitsgruppenumgebung (kleines Büro / Heimnetzwerk) müssen Sie wahrscheinlich Benutzeranmeldeinformationen direkt zu den WMI-Aufrufen hinzufügen, damit dies funktioniert.

Darüber hinaus werden Remoteverbindungen in WMI (zumindest) von der Windows-Firewall , den DCOM-Einstellungen und der Benutzerkontensteuerung (User Account Control, UAC) (sowie allen zusätzlichen Nicht-Microsoft-Faktoren - beispielsweise echten Firewalls , Software-Firewalls von Drittanbietern und Sicherheitssoftware verschiedener Art - beeinflusst Arten , etc ...). Ob es funktioniert oder nicht, hängt von Ihrem genauen Setup ab.

UPDATE : In dieser Antwort finden Sie einen ausführlichen Abschnitt zum Ausführen von Remote-WMI: Wie finde ich den Upgrade-Code für eine installierte MSI-Datei? . Es scheint, dass eine Firewall-Regel und die Unterdrückung der UAC-Eingabeaufforderung durch eine Registrierungsoptimierung dazu führen kann, dass Dinge in einer Arbeitsgruppen-Netzwerkumgebung funktionieren. Nicht empfohlene Änderungen in Bezug auf die Sicherheit, aber es hat bei mir funktioniert.


Alternative Tools

Für PowerShell muss das .NET Framework installiert sein (derzeit in Version 3.5.1, wie es scheint? Oktober 2017). Die eigentliche PowerShell-Anwendung selbst kann auch dann auf dem Computer fehlen , wenn .NET installiert ist. Schließlich glaube ich, dass PowerShell durch verschiedene Systemrichtlinien und -berechtigungen deaktiviert oder gesperrt werden kann.

In diesem Fall können Sie verschiedene andere Methoden ausprobieren, um Produktcodes abzurufen. Meine bevorzugte Alternative ist VBScript - es ist schnell und flexibel (kann aber auch auf bestimmten Computern gesperrt werden, und die Skripterstellung ist immer etwas aufwändiger als die Verwendung von Tools).

  1. Beginnen wir mit einem integrierten Windows-WMI-Tool : wbemtest.exe.
  • Starten wbemtest.exe( Halten Sie die Windows-Taste gedrückt, tippen Sie auf R, lassen Sie die Windows-Taste los, geben Sie "wbemtest.exe" ein und drücken Sie OK ).
  • Klicken Sie auf Verbinden und dann auf OK (der Namespace ist standardmäßig root \ cimv2) und klicken Sie erneut auf " Verbinden ".
  • Klicken Sie auf " Abfrage " und geben Sie diesen WQL-Befehl ein (SQL- Variante ): SELECT IdentifyingNumber,Name,Version FROM Win32_Productund klicken Sie auf "Verwenden" (oder gleichwertig - das Tool wird lokalisiert).
  • Beispielausgabe-Screenshot (abgeschnitten). Nicht die schönste Formatierung, aber Sie können die Daten erhalten, die Sie benötigen. IdentifyingNumber ist der MSI-Produktcode :

wbemtest.exe

  1. Als Nächstes können Sie ein benutzerdefiniertes WMI-Tool mit allen Funktionen ausprobieren, z WMIExplorer.exe
  • Dies ist in Windows nicht enthalten. Es ist jedoch ein sehr gutes Werkzeug. Empfohlen.
  • Überprüfen Sie es heraus an: https://github.com/vinaypamnani/wmie2/releases
  • Starten Sie das Tool, klicken Sie auf Verbinden und doppelklicken Sie auf ROOT \ CIMV2
  • Geben Sie auf der Registerkarte " Abfrage " die folgende Abfrage ein SELECT IdentifyingNumber,Name,Version FROM Win32_Productund drücken Sie Ausführen.
  • Screenshot übersprungen, die Anwendung erfordert zu viel Bildschirmfläche.
  1. Schließlich können Sie ein VBScript verwenden , um über die MSI-Automatisierungsschnittstelle auf Informationen zuzugreifen (Kernfunktion von Windows - es hat nichts mit WMI zu tun ).
  • Kopieren Sie das folgende Skript, fügen Sie es in eine * .vbs-Datei auf Ihrem Desktop ein und versuchen Sie, es durch Doppelklick auszuführen. Ihr Desktop muss für Sie beschreibbar sein, oder Sie können einen anderen beschreibbaren Speicherort verwenden.
  • Dies ist kein großartiges VBScript. Knappheit wurde der Fehlerbehandlung und Vollständigkeit vorgezogen , sollte jedoch die Arbeit mit minimaler Komplexität erledigen.
  • Die Ausgabedatei wird in dem Ordner erstellt, in dem Sie das Skript ausführen ( Ordner muss beschreibbar sein ). Die Ausgabedatei wird aufgerufen msiinfo.csv.
  • Doppelklicken Sie auf die Datei, um sie in einer Tabellenkalkulationsanwendung zu öffnen. Wählen Sie beim Import ein Komma als Trennzeichen. ODER öffnen Sie die Datei einfach im Editor oder in einem beliebigen Text-Viewer.
  • Das Öffnen in einer Tabelle ermöglicht erweiterte Sortierfunktionen.
  • Dieses Skript kann leicht angepasst werden, um eine erhebliche Menge weiterer Details zur MSI-Installation anzuzeigen . Eine Demonstration hierzu finden Sie hier: So finden Sie heraus, welche Produkte installiert sind - neuere Produkte sind bereits in MSI-Fenstern installiert .
' Retrieve all ProductCodes (with ProductName and ProductVersion)
Set fso = CreateObject("Scripting.FileSystemObject")
Set output = fso.CreateTextFile("msiinfo.csv", True, True)
Set installer = CreateObject("WindowsInstaller.Installer")

On Error Resume Next ' we ignore all errors

For Each product In installer.ProductsEx("", "", 7)
   productcode = product.ProductCode
   name = product.InstallProperty("ProductName")
   version=product.InstallProperty("VersionString")
   output.writeline (productcode & ", " & name & ", " & version)
Next

output.Close

Ich kann mir derzeit keine weiteren allgemeinen Optionen zum Abrufen von Produktcodes vorstellen. Fügen Sie diese bitte hinzu, wenn Sie welche kennen. Bearbeiten Sie einfach inline, anstatt zu viele Kommentare hinzuzufügen.

Sie können auf diese Informationen in Ihrer Anwendung zugreifen, indem Sie die MSI-Automatisierungsschnittstelle (COM-basiert) ODER die C ++ MSI-Installationsfunktionen (Win32-API) aufrufen . Oder auch WMI - Abfragen verwenden aus Ihrer Anwendung , wie Sie in den Proben oben mit zu tun PowerShell, wbemtest.exeoder WMIExplorer.exe.


Deinstallieren Sie MSI-Pakete

Wenn Sie das MSI-Paket deinstallieren möchten, für das Sie den Produktcode gefunden haben, können Sie dies über eine Eingabeaufforderung mit erhöhten Rechten wie folgt tun (nach cmd.exe suchen , mit der rechten Maustaste klicken und als Administrator ausführen ):

Option 1 : Grundlegende interaktive Deinstallation ohne Protokollierung (schnell und einfach):

msiexec.exe /x {00000000-0000-0000-0000-00000000000C}

Kurze Parametererklärung:

/X = run uninstall sequence
{00000000-0000-0000-0000-00000000000C} = product code for product to uninstall

Sie können auch die (ausführliche) Protokollierung aktivieren und im unbeaufsichtigten Modus ausführen, wenn Sie möchten. Dies führt uns zu Option 2:

Option 2 : Stille Deinstallation mit ausführlicher Protokollierung (besser für Batchdateien):

msiexec.exe /x {00000000-0000-0000-0000-00000000000C} /QN /L*V "C:\My.log" REBOOT=ReallySuppress

Kurze Parametererklärung:

/X = run uninstall sequence
{00000000-0000-0000-0000-00000000000C} = product code for product to uninstall
/QN = run completely silently
/L*V "C:\My.log"= verbose logging at specified path
REBOOT=ReallySuppress = avoid unexpected, sudden reboot

Hier finden Sie eine umfassende Referenz zur Deinstallation von MSI (verschiedene Möglichkeiten zum Deinstallieren von MSI-Paketen): Deinstallieren einer MSI-Datei über die Befehlszeile ohne Verwendung von msiexec . Es gibt eine Vielzahl verschiedener Möglichkeiten zur Deinstallation.

Wenn Sie eine Batch-Datei schreiben, lesen Sie bitte Abschnitt 3 in der obigen, verknüpften Antwort für einige gängige und standardmäßige Deinstallationsbefehlszeilenvarianten.

Und ein schneller Link zu msiexec.exe (Befehlszeilenoptionen) (Übersicht über die Befehlszeile für msiexec.exe von MSDN). Und die Technet-Version auch.


Abrufen anderer MSI-Eigenschaften / Informationen (z. B. Upgrade-Code)

UPDATE : Hier finden Sie eine neue Antwort, wie Sie den Upgrade-Code für installierte Pakete finden, anstatt den Code in MSI-Dateien manuell nachzuschlagen. Für installierte Pakete ist dies viel zuverlässiger. Wenn das Paket nicht installiert ist, müssen Sie weiterhin in der MSI-Datei (oder der Quelldatei, die zum Kompilieren der MSI verwendet wird) nach dem Upgrade-Code suchen. Verlassen Sie den älteren Abschnitt unten:

Wenn Sie den UpgradeCode oder andere MSI-Eigenschaften erhalten möchten , können Sie die zwischengespeicherte Installations-MSI für das Produkt an dem in der obigen Abbildung durch " LocalPackage " angegebenen Speicherort öffnen (z. B .: C:\WINDOWS\Installer\50c080ae.msi- Es handelt sich um einen Hex-Dateinamen, der jeweils eindeutig ist System). Dann suchen Sie in der " Eigenschaftstabelle " nach UpgradeCode (es ist möglich, dass der UpgradeCode in einer Transformation neu definiert wird - um sicherzugehen, dass Sie den richtigen Wert erhalten, den Sie benötigen, um den Code programmgesteuert vom System abzurufen -, werde ich ein Skript für bereitstellen Dies ist in Kürze der Fall . Der im zwischengespeicherten MSI gefundene UpgradeCode ist jedoch im Allgemeinen korrekt .

Verwenden Sie Orca oder ein anderes Verpackungstool, um die zwischengespeicherten MSI-Dateien zu öffnen . Hier finden Sie eine Diskussion der verschiedenen Tools (eines davon reicht aus): Welches Installationsprodukt soll verwendet werden? Installshield, WiX, Wise, Advanced Installer, etc . Wenn Sie ein solches Tool nicht installiert haben, ist es möglicherweise am schnellsten, Super Orca auszuprobieren (es ist einfach zu verwenden, aber von mir nicht ausführlich getestet).

UPDATE : Hier ist eine neue Antwort mit Informationen zu verschiedenen kostenlosen Produkten, mit denen Sie MSI-Dateien anzeigen können: Wie kann ich den Inhalt von zwei (oder mehr) MSI-Dateien vergleichen?

Wenn Sie Visual Studio installiert haben , suchen Sie nach Orca-x86_en-us.msi- unter Program Files (x86)- und installieren Sie es (dies ist Microsofts eigener, offizieller MSI-Viewer und -Editor). Dann finden Sie Orca im Startmenü. Geh in kürzester Zeit :-). Technisch gesehen wird Orca als Teil des Windows SDK (nicht Visual Studio) installiert, aber Windows SDK wird mit der Visual Studio-Installation gebündelt. Wenn Sie Visual Studio nicht installiert haben , kennen Sie vielleicht jemanden, der dies tut? Lassen Sie sie einfach nach diesem MSI suchen und senden Sie es (es ist eine winzige halbe MB-Datei) - sollte sie Sekunden dauern. UPDATE : Sie benötigen mehrere CAB-Dateien sowie die MSI - diese befinden sich in demselben Ordner, in dem sich die MSI befindet. Wenn nicht, können Sie das Windows SDK jederzeit herunterladen(Es ist kostenlos, aber groß - und alles, was Sie installieren, verlangsamt Ihren PC). Ich bin nicht sicher, welcher Teil des SDK das Orca MSI installiert. Wenn Sie dies tun, bearbeiten Sie diese einfach und fügen Sie hier Details hinzu.



Ähnliche Themen (als Referenz und einfacher Zugriff - ich sollte diese Liste bereinigen):

Stein Åsmul
quelle
Vielen Dank. Ich habe versucht, geek.exe und Revo zu verwenden, aber ich habe von der Registrierung nach einem Schlüsselwort gesucht, aber ich habe die Guid nicht aufgezeichnet und dies würde mir die leeren zeigen.
Paul Totzke
2
Win32_Productsollte wirklich nicht abgefragt werden, da es sich nicht um eine schreibgeschützte Operation handelt. Anscheinend führt es eine Konsistenzprüfung für jedes Paket durch und fährt dann mit Reparaturinstallationen fort, falls welche gefunden werden. Siehe sdmsoftware.com/group-policy-blog/wmi/… und support.microsoft.com/kb/974524
Michael Wild
Ich glaube, dass dies in der obigen Antwort bereits gründlich dokumentiert ist (Haftungsausschluss). Win32_Productwird nur aufgerufen, weil der UpgradeCode auf andere Weise nicht leicht zugänglich ist. Hier wird ein anderer Weg beschrieben , der jedoch auch einige unangenehme Aspekte aufweist (MSI-API-Sitzungsobjekte).
Stein Åsmul
Ich dachte, Sie sprechen über UpgradeCode. Sie können den ProductCode einfach über die MSI-API erhalten, für die ich oben ein VBScript bereitstelle (Abschnitt 3 in "Alternative Tools"). Möglicherweise könnte ein Powershell-Cmdlet erstellt werden, um die Aufgabe zu erledigen. Vielleicht werde ich einen Blick darauf werfen, wenn ich Zeit habe. Es könnte direkt über die MSI-API gehen - unter der Haube.
Stein Åsmul
1
Ich habe ein viel fortgeschritteneres VBScript, um die Ausgabe in einem sortierbaren und filterbaren / durchsuchbaren HTML-Format zu formatieren, aber ich bin mit der Qualitätssicherung noch nicht fertig und es ist auch hauptsächlich für meinen eigenen Gebrauch und zum Testen gedacht. Außerdem werden Upgrade-Codes und zugehörige Produktcodes angezeigt (mit demselben Upgrade-Code). Ich würde vorschlagen, dass Sie die exportierte Textdatei in einer Tabellenkalkulationsanwendung (wie Microsoft Excel) öffnen und als durch Trennzeichen getrennte Liste mit Komma als Trennzeichen importieren. Dann können Sie mit der Formatierung alles tun, was Sie wollen. Benennen Sie die Ausgabedatei einfach in msiinfo.csv um und doppelklicken Sie darauf. Legen Sie dann das Komma als Trennzeichen fest.
Stein Åsmul
2

Wenn Sie zu viele Installationsprogramme haben, um das Gesuchte leicht zu finden, finden Sie hier eine PowerShell, mit der Sie einen Filter bereitstellen und ihn nach Anzeigenamen eingrenzen können.

$filter = "*core*sdk*"; (Get-ChildItem HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall).Name | % { $path = "Registry::$_"; Get-ItemProperty $path } | Where-Object { $_.DisplayName -like $filter } | Select-Object -Property DisplayName, PsChildName
Alexis Coles
quelle
Wie bei früheren Antworten ist Get-WmiObject in PS 7 nicht verfügbar. Dieser Code funktioniert einwandfrei. Vielen Dank!
Goujon
0

Es gibt auch ein sehr hilfreiches GUI-Tool namens Produktbrowser, das anscheinend von Microsoft oder zumindest einem Mitarbeiter von Microsoft erstellt wurde.

Es kann auf Github hier Produktbrowser gefunden werden

Ich persönlich hatte es sehr leicht, die GUID zu finden, die ich damit brauchte.

Grimmig
quelle