サイレントインストールのオプション一覧
Windowsのインストーラーの多くは、画面を表示せずに実行できます。使うオプションはインストーラーを作成したツールによって異なるため、まず種類を確認します。
インストーラーの種類を調べる
ExeAtlasの各アプリページには、ファイルごとのインストーラーの種類(MSI、NSIS、Inno Setup、WiX、MSIX など)が載っています。それ以外の方法としては、「winget show」の出力、ファイルの[プロパティ]→[詳細]タブ、コマンドプロンプトから/?を付けて実行したときに表示されるオプション一覧があります。
winget show --id VideoLAN.VLC.\setup.exe /?MSI(Windows インストーラー)
MSIパッケージはmsiexecでインストールします。/qnで画面を一切表示せず、/norestartで自動再起動を防ぎ、/l*vで詳細なログを書き出します。パッケージが対応していれば、INSTALLDIRなどのプロパティも同じ行で指定できます。アンインストールにはパッケージのProductCode(GUID)を使います。各アプリのサイレントインストールのページに記載しています。
msiexec /i app.msi /qn /norestart /l*v "%TEMP%\app-install.log"msiexec /x {PRODUCT-CODE-GUID} /qn /norestartNSIS
NSIS(Nullsoft)で作られたインストーラーは/Sを受け付けます。大文字・小文字は区別されます。/Dはインストール先フォルダーの指定で、必ず最後に置き、パスに空白が含まれていても引用符で囲みません。アンインストーラー(通常はプログラムフォルダー内のuninstall.exe)も/Sに対応しています。
setup.exe /Ssetup.exe /S /D=C:\Program Files\App"C:\Program Files\App\uninstall.exe" /SInno Setup
/VERYSILENTですべての画面を非表示にし、/SUPPRESSMSGBOXESでメッセージボックスに既定の答えを返し、/NORESTARTで再起動を防ぎ、/SP-で「〜をインストールします」の確認を省きます。/DIRでフォルダーを、/LOGでログを指定します。Inno Setupのアンインストーラー(unins000.exe)も同じ/VERYSILENTに対応しています。
setup.exe /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-setup.exe /VERYSILENT /DIR="C:\Apps\App" /LOG="%TEMP%\app.log""C:\Program Files\App\unins000.exe" /VERYSILENT /NORESTARTWiX BurnバンドルとInstallShield
WiX Toolset(Burn)で作られたバンドルは/quiet、/norestart、/logに対応しています。MSIを内包するInstallShieldのセットアップは、MSI用のオプションを/vで引き渡します。引用符も構文の一部です。
setup.exe /quiet /norestart /log "%TEMP%\bundle.log"setup.exe /s /v"/qn /norestart"MSIXとAPPX
MSIX・APPXパッケージは、PowerShellから現在のユーザー向けにダイアログなしでインストールできます。削除はRemove-AppxPackageに完全なパッケージ名を渡して行います。
Add-AppxPackage -Path .\App.msixGet-AppxPackage *AppName* | Remove-AppxPackage結果を確認する
サイレントインストーラーは終了コードを返します。0は成功、3010は成功(再起動が必要)、1641はインストーラーが再起動を開始したことを示します。PowerShellでは-Wait付きでインストーラーを起動し、終了コードを読み取ります。
$p = Start-Process .\setup.exe -ArgumentList "/S" -Wait -PassThru$p.ExitCodeよくある質問
オプションを付けても画面が表示されるのはなぜですか?
オプションが別の種類のインストーラー用であるか、ランタイムなど独自のオプションを持つ別のセットアップが起動しているためです。まず種類を確認してください。MSIを内包するEXEでは、MSI用のオプションを引き渡す必要があります。
サイレントインストールに管理者権限は必要ですか?
Program FilesやHKLMに書き込むインストーラーでは必要です。管理者として開いたコマンドプロンプトから実行するか、IntuneやConfiguration ManagerなどSYSTEM権限で動くツールで配布します。