treedown’s Report

システム管理者に巻き起こる様々な事象を読者の貴方へ報告するブログです。会社でも家庭でも"システム"に携わるすべての方の共感を目指しています。

※https化しました。その影響でしばらくリンク切れなどがあるかもしれませんが徐々に修正していきます。 リンク切れなどのお気づきの点がございましたらコメントなどでご指摘いただけますと助かります。

サイレントインストールオプションって重要


今日はインストールにおいて「サイレントインストール」オプションについて思うところなどをご報告します。
サイレントインストールオプションって、普段単体でPCを利用している限りは全然必要ありません。むしろインストールできているかどうか分かりにくくなるくらい。
ですが、会社内では結構重要…。

サイレントインストールを使うとき

サイレントインストールを使うとき、これは簡単に言えば、「配布システムで一括インストールをするとき」です。
要するにグループポリシーなりサードパーティー製ソフトウェアで資源配布するなりで、インストールをフォアグラウンドである画面出力をすることなく、バックグラウンドプロセスとしてあらかじめ定められたオプションでインストール動作を完了させるためのインストール方法です。

ユーザが操作しなくてもいいように

サイレントインストールの一番にくる目的がこの、「ユーザの操作を不要にする」という点です。
ユーザ側の個別の操作をなくすことで時間短縮・手間軽減、余計なオプションを付けないインストールを実行することで構成を統一する、という目的が主な目的になります。
もうちょっと進んだところでは、サードパーティー製の配布ソリューションやActive Directoryのグループポリシーを使って、ログオンするタイミングで権限を代行してインストール権限を割り当てずにインストール作業を裏側で完了させる場合にサイレントインストールオプションを使います。
ログオン直後以外のトリガでも可能なこともありますね。

オプション

用意されていればいいんですが、代表的なインストールオプションのうちサイレントインストールで利用するものを(自分への備忘録がてら)書いておきます。

msiexec.exeで実行するインストールだと
「/quiet」でQuiet モードになりユーザ操作なしかつ画面の表示もなくインストールコマンドを実行することができます
「/passive」を指定すると無人モードとなり、ユーザの操作こそ不要ですが進行状況を画面に表示してインストールコマンドを実行できます。

テストするときには画面に出てこないことによって実行が正常完了したかエラーで終了したかを判別しづらくなりますので、動作確認のために「/passive」を使っておいて、いざ本番で展開するときにオプションの記述を「/quiet」に差し替える、という使い方を良くしますね。

以前に

blog.treedown.net

こんな記事もありましたが、ここの「/qn」が「/quiet」みたいなもんですね。この記事で選択した「/qb」が「/passive」に近い(とおもっています)です。

setup.exeのようにインストーラが提供されている場合には、setup.exeの仕様によってサイレントインストールに対応しているかどうかが変わってきますので、一時期というものsetup.exeを見たら「setup.exe /?」とコマンド実行してコマンドオプションを確認する癖がついていました。
setup.exeの場合にはサイレントインストールできる場合と出来ない場合があって、「setup.exe /?」の実行時にmsiexec.exeのヘルプが表示される場合、msiexec.exeに準拠したサイレントインストールオプションが利用できます。setup.exe独自でサイレントインストールオプションを用意している場合もあって、その場合には独自のインストールオプションを示す画面が表示されます。
まったく用意されていない場合、「setup.exe /?」の実行結果は/?オプションを付けない場合と同じ動作でインストールが開始します。この場合にサイレントインストールができない、ということになりますので、どうやって操作してもらうかをちょっと考える必要が出てきます。

iniファイルで指定

「setup.exe /?」でサイレントインストールオプションがない場合でも、インストーラの指定の場所にサイレントインストールオプションを示す.iniファイルを配置することでサイレントインストールを実行させることができることもあります。たとえば.iniファイル内の[DISPLAY]という箇所にNO~という記述があれば画面表示せずにインストール動作を完了させる、ということになる、といった具合に製品によって様々な記述によってサイレントインストールを実行させることができます。Microsoft Officeインストールでも.iniファイルのごときconfig.xmlファイルを編集してサイレントインストール指定をしてましたね。最近はあまり知らないのですが。

再起動オプションを忘れず

そう言えば、サイレントインストール後の挙動としてインストール後に再起動を要求するソフトウェアでは再起動が強制されている、あるいは選択式で再起動するように促される、という作りになっていることもあります。
これはユーザが何も意識せずにサイレントインストールでインストールを完了させている場合には「突然PCが再起動するんですが…?」などと問合せが来る要因となってしまいますので、再起動は抑制したいところです。
前出のmsiexec.exeですと
「/norestart」というオプションを指定することで、インストール完了後にはOSが再起動しないように指定することができます。割とこれを使います。
ユーザの知識がある程度期待できる環境では「/promptrestart」を指定して、実際に目の前で操作しているユーザに、再起動が必要な主旨の画面を表示して再起動を実行するかどうかを選択してもらうとよい、ですね。
逆にあまり使わないのは「/forcerestart」です。これだと常に、インストール後にPCが再起動してしまいますので、実際にサイレントインストールで配布した日は不測のOS再起動が各所で起こることになります。障害と勘違いされるかもしれませんね。