Wo kommt der Programme Hinzufügen/Entfernen, ziehen Sie die Daten für die "Installiert Am" - Spalte?
Arbeite ich an der Replikation der Windows 7/8 add remove programs-applet mit VBScript. Ich habe das Skript so, dass alle die richtigen Einträge, aber ich habe nicht in der Lage gewesen, um es auch an die richtige zusätzliche Informationen über den Windows-zeigt.
Als Beispiel: Windows-Meldung "Installiert Am" - Spalte mit einem Datum. In einigen Fällen wird diese von den relevanten registry-Schlüssel wie:
HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\InstallDate
HKLM\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\InstallDate
HKUS\USER - SID\Software\Microsoft\Windows\CurrentVersion\Uninstall\InstallDate
Sehr wenige Tasten, tatsächlich haben die InstallDate Wert und Windows bekomme immer diese Spalte gefüllt. Ich habe es geschafft, greifen die Mehrheit der vermissten stammt aus dem WMI:
("SELECT * FROM Win32_Product Where Description = " & "'" & strName & "'" & "")
for each objSoftware in colSoftware
Date = objSoftware.InstallDate
Diese gibt nur die Daten aus dem MSI-installierten Anwendungen.
Ich dachte, vielleicht Windows "Ahnen" die Daten basieren auf Programm-Dateien/ProgramData-Datei stammt, aber ich habe versucht manuell ändern, und es ist nicht wider in Hinzufügen/Entfernen. Ich versuche, herauszufinden, wie man Windows zieht dieses Datum. Ich habe bemerkt, CCleaner reproduzieren können, hinzufügen/entfernen, ohne Fehler, so dass diese information verfügbar ist irgendwo. Ich habe gerade erschöpft mich auf der Suche nach es.
- Der Prozess ist vermutlich langsam, weil die Auswahl von
Win32_Product
listet nicht nur die Objekte, sondern auch (re-)validiert diese. Eine bessere Möglichkeit ist das Lesen der Informationen aus derUninstall
Schlüssel in der registry. - Mein problem ist, dass die meisten Daten sind nicht in der uninstall-Schlüssel, wie ich schon erwähnt habe. Weniger als 10% der Einträge auf meinem system haben die InstallDate als Wert. Windows wird immer das Datum von woanders, und das Skript wird nicht wirklich wirksam sein, bis ich weiß, wo dieser Ort ist.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nach viel Herumspielen habe ich festgestellt, dass die Windows-Programme Hinzufügen/Entfernen wird die "Installiert Am" - Datum aus mindestens drei potenzielle Standorte:
MSI-installierten Anwendungen, es wird das Datum von Win32-Produkt (mit Abstand die häufigste Art)
Für nicht-MSI-Anwendungen sieht es für die InstallDate Wert in der entsprechenden registry Uninstall-Schlüssel (Beispiel: HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Google Chrome)
Für nicht-MSI-Anwendungen, die nicht über die InstallDate, Windows aussieht, um zu sehen, das Letzte Datum, an dem Uninstall-Schlüssel geschrieben wurde, und verwendet dieses Datum für "Installiert".
War es diese Letzte Methode, die mich ratlos für so lange. Dies bedeutet, dass jedes mal, wenn ein nicht-MSI-Programm, das ist, fehlt die InstallDate Wert aktualisiert wird, und die Versionsnummer in der Uninstall-Schlüssel geändert wird, werden Sie feststellen, die "Installiert Am" - Datum aktualisiert und gibt das Aussehen, dass das Programm gerade installiert.
Beispiel: HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Adobe Flash Player Plugin
Wenn Ihr Flash-Player-Plugin zu installieren war nicht die MSI, dann gehen Sie auf diese Taste, und ändern Sie die version von 11.8.800.94 zu 11.8.800.93 und Ihre Hinzufügen/Entfernen, ändern Sie die "Installieren" - Datum zu heute.