Ich brauche einen Hinweis, wie Sie den Upgrade-Code von einer installierten MSI aus der Registrierung abrufen. Tatsächlich habe ich den Produktcode, der von HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\
abgerufen werden kann.Holen Sie Upgrade-Code für Produktcode aus der Registrierung
Jetzt möchte ich den Upgrade-Code (basierend auf dem Produktcode) von HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UpgradeCodes
abrufen.
Mein Problem ist, dass der Produktcode als Wert-Name verwendet wird, was bedeutet, ich habe eine REG_SZ
, wo der Name ist der Produktcode GUID und der Wert ist leer.
Eine Möglichkeit, den Produktcode abrufen könnte sein:
PS HKLM:\SOFTW...Codes> Get-ItemProperty * | select -First 1 | gm TypeName: System.Management.Automation.PSCustomObject Name MemberType Definition ---- ---------- ---------- Equals Method bool Equals(System.Object obj) GetHashCode Method int GetHashCode() GetType Method type GetType() ToString Method string ToString() 42F79228D77BA4A4EB5150F3DC090CE3 NoteProperty System.String 42F79228D77BA4A4EB5150F3DC090CE3= ...
Wie kann ich überprüfen, ob ein PSCustomObject
die Eigenschaft hat, 42F79228D77BA4A4EB5150F3DC090CE3
?
Weiß jemand, ob es einen eleganteren Weg gibt?
** Sie können dies mit WMI erreichen, sodass Sie Registrierungsschlüssel nicht lesen und interpretieren müssen **. Sie werden den richtigen Upgrade-Code automatisch im richtigen Format erhalten. Siehe diese Antwort: [** Wie finde ich den Upgrade-Code für eine installierte MSI-Datei? **] (https://stackoverflow.com/questions/46637094/how-can-i-find-the-upgrade-code- for-a-installed-msi-Datei/46637095 # 46637095) (das VBScript nach unten). –
@ SteinÅsmul: Verwenden von WMI zum Abfragen von installierten MSIs ist eine schlechte Idee -> Lesen Sie diese -> https://stackoverflow.com/questions/25083520/wmi-select-from-win32-product-takes-a-long-time. – Moerwald
Ich bin mir dessen voll bewusst, aber ** es gibt keine Selbstheilung, wenn das Paket gut installiert ist **. Was läuft, ist ein ** Integritätscheck des Pakets ** (was zugegebenermaßen sehr langsam ist), aber die Selbstreparatur läuft nur, wenn eine Diskrepanz gefunden wird. Und in den meisten Fällen kann die Selbstreparatur abgebrochen werden, wenn Sie beschäftigt sind. Ich warne bereits in meiner Antwort darauf, wie man hier Produktcodes findet: [** Wie finde ich die Produkt-GUID eines installierten MSI-Setups? **] (https://stackoverflow.com/questions/29937568/how -can-ich-finde-das-Produkt-Guid-of-ein-installiert-msi-setup/29937569 # 29937569). –