Post autorstwa Amayan-a z forum explodeW tym temacie postaram się przybliżyć możliwość nienadzorowanej instalacji programów. Mimo, ze można zainstalować dowolną ich ilość, nie polecam być zbyt mocno rozrzutnym, ponieważ ciągle wychodzą nowe wersje, albo też jakiś program może być mało użyteczny, instalujmy tylko programy które są nam niezbędne.
Programy możemy zainstalować na dwa sposoby, jeden (prostszy) opisany poniżej, lub też przy użyciu RunOnceEx.cmd ,który jest trochę trudniejszy w przygotowaniu, lecz wygląda bardziej profesjonalnie.
Nie będę opisywał instalacji każdego programu z osobna, postaram się objaśnić, jak zainstolować w zależności od typu instalatora użytego w danym programie.
Wszystkie programy które chcemy zainstalować kopiujemy w oddzielnych katalogach do
C:\XPCD\$OEM$\$1\Install\ Następnie w pliku
winnt.sif w sekcji [GuiRunOnce] dodajemy następujący wpis:
Kod:
[GuiRunOnce]
%systemdrive%\install\programy.cmd
Teraz jak widzimy musimy napisać (jak zwykle w notepad-zie) plik programy.cmd który zamieścimy w katalogu $OEM$\$1\Install\ tam gdzie znajdują się nasze programy. A powinien wyglądać mniej więcej tak:
Kod:
CLS
@echo off
ECHO.
ECHO Instalowanie TweakUI 2.10 Powertoy
ECHO Prosze czekac...
start /wait %systemdrive%\install\Powertoys\TweakUI.msi /qn
ECHO.
ECHO Instalowanie Task Switcher Powertoy
ECHO Proszę czekac...
start /wait %systemdrive%\install\Powertoys\TaskswitchPowertoySetup.exe /s /v/qn
W taki sposób możemy zainstalowac dowolną ich ilość. Należy tylko pamiętać o dodaniu odpowiednich przełączników za nazwą pliku.
W zależności od instalatora użytego w programie, musimy używać różnych przełączników, poniżej przedstawiam typy instalatorów jak i potrzebne nam ich przełączniki, lub też sposoby na cichą instalację.
Wiele gotowych opisów przełączników do poszczególnych programów możemy znaleźć na
msfn.org InstallShield 1. Uruchom aplikację poprzez command prompt (cmd.exe) z przełącznikiem -R np. program.exe -R
2. Odbędzie się normalna instalacja programu, najważniejsze abyś na końcu zapytany (o ile wymaga tego dany program) o ponowne uruchomienie komputera, w żadnym wypadku tego nie robił.
3. Po instalacji w katalogu systemowym, zwykle c:\Windows znajdź plik o nazwie program.iss i skopiuj go do katalogu gdzie znajduje się Twój program.exe czyli gdzieś w
$OEM$\$1\Install\katalog_programu 4. W pliku program.cmd możesz teraz użyć
start /wait %systemdrive%\install\katalog_programu\program.exe -s
5. Powtórz te kroki dla każdej aplikacji zawierającej instalator InstallShield
Microsoft Windows Installer (.MSI) Większość z tych aplikacji instalujemy z przłącznikiem /QN - nie pokazuje niczego podczas instalacji, lub też /QB - pokazuje prosty pasek postępu instalacji. Niektóre aplikacje jak np. "Power Toys" wymagają przełącznika /s /v/qn. Powinieneś sprawdzić którego należy użyć.
Tak Wygląda przykładowa komenda w pliku programy.cmd
start /wait %systemdrive%\install\Powertoys\TweakUI.msi /qn
Niektóre programy wymagają restartu na zakończenie instalacji aby temu zapobiec musimy na końcu komendy dodać REBOOT=Suppress
Jeśli występuje przełącznik /QN lub też /QB należy wtedy umiescić go razem z REBOOT=Suppress w cudzysłowiu np.
program.exe /s /v"/qn REBOOT=Suppress"
WISE InstallerCzyli programy w których na początku instalacji pokazuje się ładne niebieskie okienko z napisem "Initializing Wise Instalation Wizard...", aby zainstalować wystarczy dodać przełącznik /S
Przykładowa komenda w pliku programy.cmd
start /wait %systemdrive%\install\Katalog_Programu\program.exe /s
Nullsoft SuperPiMP Install System (NSIS)Jak w przypadku Wise Installer należy dodać /S jako przełącznik.
Można również zdefiniować katalog w którym chcemy go zainstalować dodając przełącznik /D np.
start /wait %systemdrive%\install\Katalog_Programu\WinAmp.exe /S /D=D:\Program Files\WinAmp
Inno Setup Ten Rodzaj instalatora obsługuje dwa przełączniki Silent i Verysilent, my używać, bedziemy tego drugiego.
Aplikacje te czasami podczas instalcji wyświetlają okno dialogowe z pytaniem "This will install jakiś_program.Do you wish to continue?"
Aby to obejść musimy dodać przełącznik SP-
Następnym problem jest fakt iż część aplikacji zostaje uruchomiona od razu po zakończeniu procesu instalacji. Wtedy musimy użyć komendy Taskkill
Przykładowy fragment pliku programy.cmd
Kod:
ECHO.
ECHO Installing ProgramX
ECHO Please wait...
start /wait %systemdrive%\install\katalog_programu\programX.exe /VERYSILENT /SP-
ECHO.
ECHO Zamykanie procesu programX.exe
taskkill.exe /F /IM programX.exe
ECHO.