Setup.exe のサイレントインストール:/S スイッチ、フォルダー指定、展開
NSIS 製の Setup.exe を /S でサイレント実行し、/D= でインストール先を指定し、サイレントでアンインストールし、Intune、PDQ、スクリプトで展開する方法。
更新日 2026年10月31日 · 読了 4 分
IT 部門はウィザードをクリックして進めたりはしません。スクリプトや展開ツールからインストーラーを実行し、勝手に完了することを期待します。ExeTup が生成するインストーラーはすべて NSIS インストーラーであり、NSIS は何十年も前からサイレントインストールに対応しています。このガイドでは、スイッチ、落とし穴、そして一般的な展開ツールがそれらをどう呼び出すかを説明します。
スイッチ
Setup.exe /S
ビルド時に設定した既定値(既定のフォルダー、ショートカット、選択したインストール範囲)でインストールします。ウィンドウは一切表示されません。このスイッチは大文字と小文字を区別します。/s ではなく /S です。
Setup.exe /S /D=C:\Apps\My App
別のフォルダーにインストールします。/D= のルールは次のとおりです。
- コマンドラインの最後のパラメーターでなければならない。
- パスはスペースを含んでいても引用符で囲まない。
- これも大文字と小文字を区別する。
サイレントアンインストール:
"C:\Program Files\My App\unins000.exe" /S
アンインストーラーはインストールフォルダー内の unins000.exe という名前で、設定 → アプリに登録されるため、winget uninstall やほとんどの展開ツールからも見つけられます。
サイレントインストールでも行われること
- ビルド時の選択に従って、すべてのユーザー向け(Program Files へ、昇格が必要)またはユーザーごとにインストールします。マシン単位のインストーラーを昇格していないプロンプトからサイレント実行すると、何も表示せずに失敗します。昇格したシェルか、展開ツールのシステムコンテキストから実行してください。
- 有効にしていれば、スタートメニューとデスクトップのショートカットを作成します。
- アンインストーラーとバージョンを Windows の設定に登録します。
- 「インストール後に起動」が有効でも、終了後にアプリを起動しません。サイレントモードではそのページがスキップされます。
- 複数の言語が設定されている場合は最初の言語を使用し、言語選択ダイアログはスキップされます。
終了コード
サイレントインストールが成功すると 0 で終了します。0 以外のコードは中断されたことを意味し、多くの場合、昇格が拒否されたか、インストーラーがすでに実行中だったことが原因です。スクリプトではコードを確認してください。
Setup.exe /S
if %errorlevel% neq 0 exit /b %errorlevel%
PowerShell では Start-Process -Wait -PassThru を使って .ExitCode を読み取ってください。そうしないと Setup.exe は即座に制御を返します。
$p = Start-Process -FilePath ".\Setup.exe" -ArgumentList "/S" -Wait -PassThru
exit $p.ExitCode
展開ツール
- Microsoft Intune:Win32 アプリ(
.intunewin)としてパッケージ化し、インストールコマンドにSetup.exe /S、アンインストールコマンドに"%ProgramFiles%\My App\unins000.exe" /Sを指定します。検出規則には、HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\My App配下のレジストリエントリか、メインの.exeを使います。 - PDQ Deploy、ManageEngine、Chocolatey:システムコンテキストで
Setup.exe /Sを実行する「Install」ステップを用意します。 - グループポリシー:GPO によるソフトウェアインストールは MSI ファイルを要求します。代わりに
Setup.exe /Sを実行するスタートアップスクリプトを使ってください。 - winget:
InstallerType: nullsoftを含むマニフェストで winget にスイッチを伝えます。インストーラーは安定した URL でホストされている必要があります。
アップグレード
インストール済みのバージョンの上から新しい Setup.exe /S を実行すると、ファイルがその場で置き換えられ、Windows の設定のバージョンも更新されます。ユーザーは先にアプリを閉じておく必要があります。実行中の .exe は上書きできません。
よくある質問
スイッチは /S ですか、/silent ですか?
大文字の /S です。NSIS インストーラーは /silent と /verysilent を無視します。これらは Inno Setup のスイッチです。
スペースを含むフォルダーを渡せますか?
はい、引用符なしで渡せます:Setup.exe /S /D=C:\Program Files\My App。/D= パラメーターは行の最後に置く必要があります。
サイレントインストールに管理者権限は必要ですか?
すべてのユーザー向けにビルドしたインストーラーの場合のみ必要です。ユーザーごとのインストーラーは昇格なしでサイレント実行できるため、ユーザーが管理者でない管理対象ノート PC で役立ちます。
アンインストーラーはどこにありますか?
インストールフォルダー内の unins000.exe です。同じ /S スイッチでサイレントアンインストールできます。
関連ガイド
- Windows アプリの Setup.exe を作る方法(コード不要)Setup.exe が実際に行うこと、作成する3つの方法、そしてインストーラースクリプトを書かずにアプリのフォルダーを数分でプロ品質のインストーラーに変える方法を解説します。
- スクリプトを書かずに NSIS インストーラーをオンラインで作成するNSIS とは何か、最小限の .nsi スクリプトはどのようなものか、そしてスクリプトではなくフォームから Modern UI ウィザード、ショートカット、アンインストーラー付きの標準的な NSIS Setup.exe を手に入れる方法を解説します。
- .exe を Windows インストーラーにする方法(exe から Setup.exe へ)単体の .exe や .exe を含むフォルダーを、インストーラースクリプトを書かずに、ショートカットとアンインストーラー付きの本格的な Windows インストーラーに変換する方法。