ウィンドウズ・ファイアウォールの有効・無効をコマンドで確認する方法

セットアッププログラムでnetsh advfirewall firewallコマンドを使用して、Windowsファイアウォールルールを追加しているところです。私のコードは、システムがWindowsファイアウォールを無効にしている場合、エラーメッセージを与えています。

netsh advfirewall firewall add** コマンドを実行する前に、ウィンドウのファイアウォール状態をチェックする必要があります。

ファイアウォールが有効かどうかは、ウィンドウズのレジストリ値 "EnableFirewall"を使って確認しています。

HKEY_LOCAL_MACHINE/SYSTEM CurrentControlSetServices﹑SharedAccessParameters﹑FirewallPolicy﹑StandardProfile

これが正しい方法かどうかわかりません。ドメインファイアウォールプロファイル(?)もあるようです。

よろしくお願いします。

もう一つの方法は、netsh自体を使用して、ファイアウォールが有効かどうかを確認することです。netsh advfirewall show private|public|domain` というコマンドを実行してください。すると、オン/オフの状態が表示されます。

解説 (2)

Invoke-Command -ComputerName -Credential -ScriptBlock {[Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey("LocalMachine",$env:COMPUTERNAME).OpenRemoteBaseKey("LocalMachine",$env:Computername); -ScriptBlock (-ComputerName -Credential ).OpenSubKey("SystemCurrentControlSetServicesSharedAccessParametersNTheFirewallPolicyNTheStandardProfile").GetValue("EnableFirewall")} を使用してください。

1` は有効であることを意味します。

解説 (1)

私はこれをするのは初めてですが、どのように私は詳細を取得するためにREGクエリを使用していました。

コマンドラインに次のように入力し、Enterキーを押してください。

reg query \\IP_Address\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile

私の作品では、以下のコマンドも使っていました。

reg query \\ip_address\path
解説 (1)