Jak zautomatyzować instalacje MSI?

11

Mam około 20 aplikacji, które należy uruchomić w określonej kolejności. Chcę je napisać, aby móc to zrobić zdalnie.

Każda z aplikacji ma plik Setup.exe i plik MSI.

Miałem nadzieję, że będę mieć prosty skrypt, który wywołał MSI z plikiem odpowiedzi, ale minęły lata, odkąd to zrobiłem. Nie pamiętam jednak, jak utworzyć plik odpowiedzi.

Czy to dobry sposób na zrobienie tego? A może byłby prostszy sposób?

Kosi
źródło

Odpowiedzi:

17

Porozmawiaj o załadowanym pytaniu ...

Na początek zignoruj ​​plik setup.exe. Szanse są to tylko połączenia MSI. Lub czasami wyodrębniają wiele rzeczy NASTĘPNIE wywołują MSI, zwykle możesz obejrzeć katalog tymczasowy po uruchomieniu Instalatora i dowiedzieć się, co on robi.

Zawsze oszukiwałem i przeprowadzałem suchą instalację install ( msiexec /i path/to-install.msi /l*v /qn) z podkręconym logowaniem, potem przejrzałem dziennik i wybrałem właściwości, które chciałem ustawić i ustawić je za pomocą wiersza poleceń. Pliki odpowiedzi nigdy nie działały lub nie były warte kłopotów z przejściem przez proces ich tworzenia.

Potem znalazłem InstEdit i wykorzystałem go jako ładunek łodzi . Pozwoli ci to edytować właściwości MSI i wygenerować transformację, którą możesz przekazać jako argument w skrypcie: msiexec /i path/to/installer.msi /t path/to/transform.mst najpierw polecam spróbować, jest darmowa wersja, która robi wszystko.

Możesz także zajrzeć tutaj, aby zobaczyć wszystkie przełączniki msiexec.

peelman
źródło
+1, ale niestety przełączniki nie działają ze wszystkimi MSI. Nie zastanawiałem się, dlaczego, ale z pewnością tak jest w przypadku niektórych.
Ciaran
Zależy od sposobu utworzenia MSI. Istnieje kilka właściwości, które można ustawić tak, aby ignorowały określone parametry, IIRC. Zwykle korzystanie z Instedit i budowanie transformacji zawsze działało, jedynymi napotkanymi błędami były zazwyczaj ludzkie.
peelman
1
+1 dla InstEdit
66001
1
Metoda dziennika działała dla mnie. Należy jednak pamiętać, że właściwości będą wymienione jakoProperty(S) : PROPERTY_NAME...
Drew Chapin
5

Msiexec to narzędzie, którego potrzebujesz. Ma parametr -q, który pozwala instalować rzeczy „ciche”:

/ qn: nie wyświetla interfejsu użytkownika.

/ qb: wyświetla podstawowy interfejs użytkownika.

/ qr: Wyświetla zredukowany interfejs użytkownika z modalnym oknem dialogowym wyświetlanym na końcu instalacji.

/ qf: wyświetla pełny interfejs użytkownika z modalnym oknem dialogowym wyświetlanym na końcu.

/ qn +: nie wyświetla interfejsu użytkownika, z wyjątkiem modalnego okna dialogowego wyświetlanego na końcu.

/ qb +: wyświetla podstawowy interfejs użytkownika z modalnym oknem dialogowym wyświetlanym na końcu.

/ qb-: wyświetla podstawowy interfejs użytkownika bez modalnych okien dialogowych.

Możesz także podać nazwane opcje (lub „właściwości”) na końcu wiersza poleceń; obsługiwane właściwości zależą od pakietu. Na przykład to polecenie:

msiexec /qb /l* perl-log.txt /i ActivePerl.msi PERL_PATH=Yes PERL_EXT=Yes

... to sposób instalacji ActiveState Perl, instruujący pakiet MSI, aby dodał Perl.exe do PATH i skojarzył z nim pliki .pl. ( źródło )

fretje
źródło
1
Pamiętaj, że programista może wyłączyć opcję / q w swoim instalatorze msi.
Joel Coehoorn
2

Większość aplikacji można instalować w trybie cichym, a tym samym wykonywać skrypty. Każdy plik Setup.exe może mieć wiele potencjalnych przełączników, dlatego należy zadzwonić do dostawcy lub przeszukać jego witrynę internetową. Czasami można uzyskać informacje, uruchamiając konfigurację za pomocą przełącznika / ?, / h / help. Pliki MSI mogą mieć także dowolną liczbę przełączników, ale w tym artykule parametry wiersza polecenia MSI zawierają listę.

Podczas skryptowania procesu możesz uruchomić aplikację, która instaluje się za pomocą setup.exe, a następnie uruchamia inny plik, taki jak MSI. Jednym z przykładów był MS Office XP. Kiedy to nastąpi, skrypt może pomyśleć, że plik, który uruchomiłeś, jest kompletny i rozpocznie następną konfigurację, która zakończy się niepowodzeniem, powodując, że wszystko pójdzie na południe. Aby obejść ten problem, pomiń plik instalacyjny i przejdź bezpośrednio do faktycznego instalatora (potencjalnie MSI) z opcjami wiersza poleceń. Jeśli nie jest to możliwe, konieczne może być utworzenie pauzy czasomierza. Kiedyś używałem małego narzędzia o nazwie wait.exe, które znalazłem w Internecie, ale jest na to milion sposobów. Kluczem do skryptu jest jednak możliwość zidentyfikowania poprawnie zainstalowanej aplikacji, aby można było rozpocząć następną instalację.

Kok
źródło