Tôi đang làm việc trên sao chép Windows 7/8 thêm loại bỏ chương trình applet với VBScript. Tôi đã nhận được kịch bản để bao gồm tất cả các mục chính xác, nhưng tôi đã không thể có được nó để bao gồm tất cả các thông tin bổ sung chính xác Windows hiển thị.Các chương trình Thêm/Loại bỏ kéo dữ liệu vào cột "Đã cài đặt trên" ở đâu?
Ví dụ: Windows hiển thị cột "Đã cài đặt trên" với một ngày. Trong một số trường hợp, các khóa này nhận được từ các khóa đăng ký có liên quan như:
HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\InstallDate
HKLM\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\InstallDate
HKUS\USER - SID\Software\Microsoft\Windows\CurrentVersion\Uninstall\InstallDate
Rất ít khóa thực sự có giá trị InstallDate và Windows luôn nhận được cột này. Tôi đã cố gắng chiếm đa số các ngày bị thiếu từ WMI:
("SELECT * FROM Win32_Product Where Description = " & "'" & strName & "'" & "")
for each objSoftware in colSoftware
Date = objSoftware.InstallDate
Chỉ cung cấp ngày từ các ứng dụng được cài đặt MSI. Tôi đã nghĩ rằng có lẽ Windows "đoán" ngày dựa trên các tập tin chương trình/ProgramData ngày tập tin, nhưng tôi đã cố gắng tự thay đổi chúng và nó không được phản ánh trong Add/Remove. Tôi đang cố gắng tìm ra cách Windows kéo ngày này. Tôi đã nhận thấy CCleaner có thể tái tạo thêm/xóa mà không có lỗi, vì vậy thông tin này có sẵn ở đâu đó. Tôi vừa kiệt sức để tìm kiếm nó.
Quá trình có thể chậm, vì việc chọn từ 'Win32_Product' không chỉ liệt kê các đối tượng, mà còn (lại) xác nhận chúng. Một cách gọn gàng hơn là đọc thông tin từ các phím 'Uninstall' trong registry. –
Vấn đề của tôi là hầu hết các ngày không nằm trong các phím gỡ cài đặt, như tôi đã đề cập. Ít hơn 10% số mục nhập trên hệ thống của tôi có giá trị InstallDate. Windows đang lấy ngày này từ một nơi khác và kịch bản sẽ không thực sự hiệu quả cho đến khi tôi biết vị trí đó ở đâu. – KevinD