SSブログ

InstallShield Windowsファイアウォールの設定を変更する方法 [InstallShield]

InstallShieldバージョン: 2010

プロジェクトタイプ: 基本のMSIプロジェクト

インストール時にPCのWindowsファイアウォールの設定を変更したい場合がある。コマンドラインからnetshコマンドを発行することでセキュリティ規則の有効/無効を切り替えることができる。

ここでは「Windowsファイアウォール」の「受信の規則」内「Windows ファイアウォール リモート管理」グループの「有効」の「はい/いいえ」を一括で変更する方法を説明する。

1.コマンド文字列の動作確認

①ファイアウォールの設定確認

「コントロールパネル」、「管理ツール」「セキュリティが強化された Windows ファイアウォール」をクリックして管理ツールを起動する。

「受信の規則」を選択し、グループ列から「Windows ファイアウォール リモート管理」が現れるまでスクロールし有効列の値を確認する。

image

②コマンドプロンプトを管理者権限で起動する。

image

③以下のコマンドを発行する。

“netsh advfirewall firewall set rule group=”Windows ファイアウォールリモート管理” new enable=yes”し4個の規則が更新されることを確認する。

image

④ファイアウォールの設定確認

再び管理ツールに戻り、メニューから「操作」、「最新の情報に更新」と選択し「受信の規則」を確認し、「Windows ファイアウォールリモート管理」または「ファイルとプリンター共有」グループの有効が“はい”となっていることを確認する。

image

動作確認が終了したらコマンドのenable=yes 部の記述を enable=no としてコマンドを発行し設定を戻しておく。

2.InstallShieldへのカスタムアクション組み込み

① インストールデザイナから「動作とロジック」、「カスタム アクションとシーケンス」、「カスタムアクション」を右クリックします「新しいEXE」、「ディレクトリを参照するパス」と選択します。

image

② “NewCustumAction1”が出来上がるので適当な名前に変更します。

“NewCustomAction”->“caAddFireWall”

image

③ プロパティを以下の内容に設定します。

プロパティ名

設定内容

説明

作業ディレクトリ

SystemFolder

ターゲットシステム上のcmd.exe を使用するためSystemFolder 識別子を使用して、system32 フォルダを作業フォルダに指定

コマンドライン

cmd.exe /c"netsh advfirewall firewall set rule group="Windows ファイアウォール リモート管理" new enable=yes"

 

スクリプト内実行

システムコンテキストで遅延実行

 

インストール実行シーケンス

次の後:InstallFiles

 

インストール実行条件

NOT Installed

初回インストール時のみ実行される条件

image

④ さらに以下の条件でインストール時のロールバック用、アンインストール用、アンインストール時のロールバック用の3つのカスタムアクションも作成します。

◆インストール時のロールバック用 caAddFireWall_RollBack

プロパティ名

設定内容

説明

作業ディレクトリ

SystemFolder

ターゲットシステム上のcmd.exe を使用するためSystemFolder 識別子を使用して、system32 フォルダを作業フォルダに指定

コマンドライン

cmd.exe /c"netsh advfirewall firewall set rule group="Windows ファイアウォール リモート管理" new enable=no"

 

スクリプト内実行

システムコンテキストでロールバック実行

 

インストール実行シーケンス

次の後:InstallFiles

 

インストール実行条件

NOT Installed

初回インストール時のみ実行される条件

◆アンインストール用 caDeleteFireWall

プロパティ名

設定内容

説明

作業ディレクトリ

SystemFolder

ターゲットシステム上のcmd.exe を使用するためSystemFolder 識別子を使用して、system32 フォルダを作業フォルダに指定

コマンドライン

cmd.exe /c"netsh advfirewall firewall set rule group="Windows ファイアウォール リモート管理" new enable=no"

 

スクリプト内実行

システムコンテキストでロールバック実行

 

インストール実行シーケンス

次の後:RemoveDuplicateFiles

 

インストール実行条件

REMOVE="ALL"

アンインストール時のみ実行される条件

◆アンインストール時のロールバック用 caDeleteFireWall_ RollBack

プロパティ名

設定内容

説明

作業ディレクトリ

SystemFolder

ターゲットシステム上のcmd.exe を使用するためSystemFolder 識別子を使用して、system32 フォルダを作業フォルダに指定

コマンドライン

cmd.exe /c"netsh advfirewall firewall set rule group="Windows ファイアウォール リモート管理" new enable=yes"

 

スクリプト内実行

システムコンテキストで遅延実行

 

インストール実行シーケンス

次の後:RemoveDuplicateFiles

 

インストール実行条件

REMOVE="ALL"

アンインストール時のみ実行される条件


この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。