Construim implementarea automatizării prin Ansible, care au mai multe .msi de instalat.
Și am întâlnit, mai degrabă aleatoriu, următorul mesaj de eroare în timpul implementării:
Se instalează un alt program. Vă rugăm să așteptați până când instalarea este finalizată și apoi încercați să instalați din nou acest software.
Scopul nostru este să declanșăm un timp de reîncercare ori de câte ori se întâmplă acest lucru și să furnizăm un mesaj de înregistrare care va descrie ceea ce provoacă cel mai probabil această eroare.
Nu dorim să repornim serverul sau să omorâm forțat nicio instalare în curs.
Am găsit câteva piste de explorat pentru a identifica ce proces cauzează acest lucru
TLDR; Caut o modalitate coerentă reproductibilă de a verifica ceea ce generează de fapt această eroare
1) Procesul msiexec.exe
Răspunsul obișnuit la această întrebare pe Google este să verificați Managerul de activități pentru un proces msiexec.exe și să îl omorâți înainte de a reporni instalarea. Aceasta nu este o alternativă pentru acest caz.
2) Se pare că există fi o cheie de registry care spune dacă există sau nu o instalare în curs
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\InProgress
Dar nu am găsit nicio urmă a acestei chei în registrul mai multor mașini Windows (am încercat să o reîmprospătăm în timp ce instalăm și dezinstalăm .msi)
3) În GUI services.msc există un serviciu WindowsInstaller care nu are nicio stare în repaus:
Acest serviciu a intrat în Alergare
starea când am declanșat o instalare MSI, dar nu a ieșit niciodată din această stare nici măcar la câteva minute după ce msi a fost terminat.
4) Actualizări Windows în curs
O altă pistă comună descoperită acolo este că continuă Windows Update împiedică instalarea oricărui alt .msi
Există o modalitate consecventă de a automatiza verificarea?