Chúng tôi đang xây dựng triển khai Tự động hóa thông qua Ansible có một số .msi để cài đặt.
Và chúng tôi đã gặp phải, khá ngẫu nhiên thông báo lỗi sau trong quá trình triển khai:
Một chương trình khác đang được cài đặt. Vui lòng đợi cho đến khi quá trình cài đặt hoàn tất, sau đó thử cài đặt lại phần mềm này.
Mục tiêu của chúng tôi là kích hoạt thời gian chờ thử lại bất cứ khi nào điều này xảy ra và cung cấp thông báo ghi nhật ký sẽ mô tả điều gì có khả năng gây ra lỗi này nhất.
Chúng tôi không muốn khởi động lại máy chủ hoặc buộc hủy mọi quá trình cài đặt đang diễn ra.
Tôi đã tìm thấy một số khách hàng tiềm năng để khám phá nhằm xác định quá trình nào đang gây ra điều này
TLDR; Tôi đang tìm kiếm một cách nhất quán để kiểm tra xem điều gì đang thực sự gây ra lỗi này
1) Quá trình msiexec.exe
Câu trả lời phổ biến cho câu hỏi này trên Google là kiểm tra Trình quản lý tác vụ để tìm quy trình msiexec.exe và tắt quy trình đó trước khi khởi động lại quá trình cài đặt. Đây không phải là một thay thế cho trường hợp này.
2) Dường như có là khóa Registry cho biết có quá trình cài đặt đang diễn ra hay không
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\InProgress
Nhưng tôi không thể tìm thấy bất kỳ dấu vết nào của khóa này trong sổ đăng ký của một số máy Windows (chúng tôi đã thử làm mới nó trong khi cài đặt và gỡ cài đặt .msi)
3) Trong GUI services.msc có Dịch vụ WindowsInstaller không có trạng thái nghỉ:
Dịch vụ này đã đi vào Đang chạy
trạng thái khi chúng tôi kích hoạt cài đặt MSI, nhưng sau đó nó không bao giờ thoát khỏi trạng thái này thậm chí vài phút sau khi cài đặt msi kết thúc.
4) Đang cập nhật Windows
Một khách hàng tiềm năng phổ biến khác được phát hiện ra đó là trên đường đi cập nhật hệ điều hành Window đang ngăn không cho bất kỳ .msi nào khác được cài đặt
Có cách nào nhất quán để tự động hóa việc kiểm tra này không?