Instalator Windows: instalacja MSI kończy się niepowodzeniem i wyświetlany jest błąd 1603
Podczas procesu dystrybucji pakietu MSI do zdalnego systemu Windows Hosty Server 2012 R2 za pośrednictwem polecenia cmdlet Start-Process, natrafiłem na interesujące zachowanie. W niektórych przypadkach ten pakiet MSI został zainstalowany bez żadnych problemów; w innych po cichu nie udało się wygenerować identyfikatora zdarzenia 10837 w dzienniku aplikacji.
Po włączeniu pełnego rejestrowania w pliku dziennika MSI zaobserwowano następujący komunikat o błędzie:
Powodzenie instalacji lub stan błędu: 1603.
Stan błędu 1603 jest udokumentowany w witrynie Microsoft Technet. Jednak żaden z tych scenariuszy wymienionych w artykule nie dotyczył mojej sprawy. Udało mi się zainstalować ten pakiet MSI lokalnie bez żadnych problemów, a błąd pojawiał się losowo podczas wykonywania instalacji przez PowerShell.
Po dalszych testach zdałem sobie sprawę, że problem pojawiał się tylko wtedy, gdy konto użytkownika, z którego był uruchomiony skrypt, nigdy wcześniej nie logował się do systemu docelowego.
Poprosiłem jednego z moich kolegów, który lepiej rozumie, jak działa Instalator Windows, o pomoc w tej sprawie. Po dokładnym zbadaniu wskazał mi następujące wiersze w pliku dziennika MSI:
Najwyraźniej w 2014 roku Microsoft wydał biuletyn zabezpieczeń MS14-049 zawierający poprawkę usuwającą lukę w usłudze Instalator Windows. Jednak po zainstalowaniu tej aktualizacji zabezpieczeń przerywa ona instalację pakietu MSI. Jest to udokumentowane jako „Znany problem 1” w biuletynie i wyjaśnione bardziej szczegółowo tutaj.
Aby rozwiązać ten problem, firma Microsoft zaleca zainstalowanie aktualizacji 3000988.
Inną opcją jest udokumentowana w tym samym biuletynie w sekcji „Znany problem 2” polega na rezygnacji z programów, których dotyczy problem, przy użyciu ustawień rejestru. Jednak to obejście wymaga więcej ręcznej pracy i usuwa funkcję ochrony dogłębnej dla tych programów.
Przetestowałem te opcje i mogę potwierdzić, że działają one obie. Mam nadzieję, że ten artykuł pozwoli Ci zaoszczędzić trochę czasu na rozwiązywaniu podobnego problemu.