Sto lavorando per replicare l'applet per la rimozione di Windows 7/8 da rimuovere con VBScript. Ho ottenuto lo script per includere tutte le voci corrette, ma non sono stato in grado di farlo includere tutte le informazioni aggiuntive corrette di Windows.Dove vengono aggiunti i programmi Aggiungi/Rimuovi per la colonna "Installato su"?
Ad esempio: Windows visualizza la colonna "Installato su" con una data. In alcuni casi si ottiene questi dalle chiavi di registro rilevanti come:
HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\InstallDate
HKLM\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\InstallDate
HKUS\USER - SID\Software\Microsoft\Windows\CurrentVersion\Uninstall\InstallDate
Molto pochi tasti in realtà hanno il valore InstallDate e Windows sempre ottenere questa colonna riempiti. Sono riuscito a prendere la maggior parte delle date mancanti da WMI:
("SELECT * FROM Win32_Product Where Description = " & "'" & strName & "'" & "")
for each objSoftware in colSoftware
Date = objSoftware.InstallDate
Questo dà solo le date da MSI applicazioni installate.
Stavo pensando che Windows "ha indovinato" le date in base alle date dei file Program Files/ProgramData, ma ho provato a modificarle manualmente e non si riflette in Aggiungi/Rimuovi. Sto cercando di capire come Windows tira questa data. Ho notato che CCleaner può riprodurre add/remove senza errori, quindi questa informazione è disponibile da qualche parte. Mi sono appena stancato di cercarlo.
Il processo probabilmente è lento, perché la selezione da 'Win32_Product' non solo elenca gli oggetti, ma anche (ri) li convalida. Un modo più semplice è leggere le informazioni dalle chiavi 'Uninstall' nel registro. –
Il mio problema è che la maggior parte delle date non sono nelle chiavi di disinstallazione, come ho detto. Meno del 10% delle voci sul mio sistema ha come valore InstallDate. Windows sta ottenendo questa data da un'altra parte e lo script non sarà realmente efficace finché non saprò dove si trova. – KevinD