web-dev-qa-db-ja.com

スクリプトまたは自動化によってWindows7ファイアウォールをオフにするにはどうすればよいですか?

これは、マシンをドメインに参加させる前にマシンで作業することに関するものであり、GPOに依存したいのですが、現時点ではオプションではありません。

私が作業している環境では、ファイアウォールポリシーは、Total Endpoint Solutionのサードパーティファイアウォールアプリを使用することであるため、競合を防ぐためにデフォルトのWindowsファイアウォールトップを無効にする必要があります。これは、想像プロセスの最後に実行するスクリプトを使用するか、イメージを再作成していないシステムで手動で実行します。しばらくの間、私はこれを使用してこれを管理することができました:

netsh advfirewall set allprofiles state off

しかし、それは何らかの理由で機能しなくなりました。そのため、ローカルセキュリティポリシーを(手動で)クリアする必要があることがわかりました。

Local Security Policy MSC > Windows Firewall with Advanced Security
Right-Click Windows Firewall with Advanced Security - Local Group Policy Object
Clear Policy

これは、手動で行うのを避けるために使用したスクリプトです。

secedit /configure /db reset /cfg securityprofile

両方のステップの組み合わせは約1か月間機能していましたが、明らかな理由もなく、機能しなくなりました。

必要なことを達成するためにレジストリハックのテストを開始しましたが、結果はまちまちです。変更する必要のあるプロファイルを持つ2つのセットキーがあります。ローカルプロファイルの場合:

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\WindowsFirewall]
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\WindowsFirewall\DomainProfile]
"EnableFirewall"=dword:00000000
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\WindowsFirewall\PrivateProfile]
"EnableFirewall"=dword:00000000
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\WindowsFirewall\PublicProfile]
"EnableFirewall"=dword:00000000

ドメインプロファイルの場合:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SharedAccess\Parameters\FirewallPolicy]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SharedAccess\Parameters\FirewallPolicy\DomainProfile]
"EnableFirewall"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SharedAccess\Parameters\FirewallPolicy\PublicProfile]
"EnableFirewall"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SharedAccess\Parameters\FirewallPolicy\StandardProfile]
"EnableFirewall"=dword:00000000

私が抱えている問題は、ローカルプロファイルがファイアウォールをオンにした状態で元の設定を再生成し続けることです。私はもう試した:

  • a)両方のレジストリハックを適用する
  • b)再起動
  • 新しくイメージされたマシンでの結果)運がない
  • テストに使用された古いマシンでの結果)準備完了

  • a)ローカルポリシーレジストリハックを適用する

  • b)再起動
  • 新しくイメージされたマシンでの結果)運がない
  • テストに使用された古いマシンでの結果)準備完了

  • a)seceditを使用してローカルセキュリティポリシーをクリアする

  • b)両方のレジストリハックを適用する
  • c)再起動
  • 新しくイメージされたマシンでの結果)運がない
  • テストに使用された古いマシンでの結果)準備完了

  • a)seceditを使用してローカルセキュリティポリシーをクリアする

  • b)ローカルポリシーレジストリハックを適用する
  • c)再起動
  • 新しくイメージされたマシンでの結果)運がない
  • テストに使用された古いマシンでの結果)準備完了

私の目標は、スクリプト/自動化を介してWindowsファイアウォールを無効にすることです。何かご意見は?

注:これは、マシンをドメインに参加させる前です。 MSCからローカルセキュリティポリシーを手動でクリアすると、レジストリハックが機能します。 netshはまだ機能しないため、イメージ化されたすべてのマシンのポリシーを手動でクリアする必要はありません。

1
CIA

問題が見つかりました。 MDTは、イメージをインストールした後、タスクシーケンスの最後にローカルグループポリシーを適用していました。これにより、管理者でも(コマンドプロンプトコマンド、レジストリなどを介して)ローカルセキュリティポリシーへの変更へのアクセスが無効になりました。これは、MDTに付属するデフォルトのポリシーであるため、奇妙です。とにかく、このタスクシーケンスを削除すると、netsehを使用してファイアウォールをオフにできます。

netsh advfirewall set allprofiles state off

注として;ファイアウォールサービスを無効にしないでください。また、ファイアウォールをオフにしないでください。

2
CIA

この前置きとして、Windowsファイアウォールを無効にしている人は、ファイアウォールを完全にオフにするのではなく、その仕組みとGPOを介して操作する方法を時間をかけて理解することを強くお勧めします。ホストベースのファイアウォールをオフにする理由はありません。 Microsoftは、ファイアウォールルールを管理するための優れたツールを作成しています。それらを使用する必要があります。


このTechNetの記事 Windowsファイアウォールを無効にする適切な方法の概要を説明します。他の人が言っているようにサービスをオフにしないでください。サーバーがサポートされていない構成になり、トラブルシューティングが難しいさまざまなシナリオで不安定になる可能性があります。

TechNetの記事によると、netshの構文は次のとおりです。

netsh advfirewall setprofilesstate off

ここで、profilesの有効な値は、AllProfiles、CurrentProfile、DomainProfile、PrivateProfile、またはPublicProfileです。

この正確なコマンドをすでに試したようですが、機能していません。このコマンドが操作するレジストリキーもプッシュしました。以前は機能していたが現在は機能していないという事実と、これを実行している時点でこれらのマシンがドメインに参加していないという事実に基づいて、結論は1つだけです。

これを上書きしている何かがあなたの画像にあります。話の終わり。表示する画像がないため、「正しく実行していて、機能しない場合は画像内の何かが正しく構成されていない」以外に、特定の修正を提供する方法はありません。

正直なところ、他のすべてのものと一緒に画像に対してsecedit /configure /db reset /cfg securityprofileを実行する必要がある場合は、必要なすべてのものを使用して新しい画像を作成する方がよい場合があります。

7
MDMarra

エラー、GPOを整理し、そこで無効にします。または、少なくとも、スタックの最上位(最高の優先順位)に新しいGPOを作成し、ファイアウォールを無効にします。その後、戻って他のGPOを整理します。ローカルセキュリティポリシーが上書きされます。 GPOによるものであり、書き込み先のレジストリの最初の領域は、特にGPO処理用です。

簡単な答え...グループポリシー。長い答え...グループポリシー。 (ごめんなさい!)

6
Simon Catlin