見出し画像

PowerShell ファイアウォールポリシーの変更

ファイアウォールはONにしたい、でもドメインネットワーク内は緩くしたい。そんなときのメモです。


すべてのプロファイルのファイアウォールをまとめて操作する

#すべてのプロファイルのファイアウォールを無効化する
Set-NetFirewallProfile -Enabled false

#すべてのプロファイルのファイアウォールを有効化する
Set-NetFirewallProfile -Enabled true


PINGは通すようにする

#ドメインの場合にPINGを通す

#ファイルとプリンターの共有 (エコー要求 - ICMPv4 受信) ( Profile : ドメイン )
Get-NetFirewallRule -name  FPS-ICMP4-ERQ-In-NoScope | Set-NetFirewallRule -enable true

#ファイルとプリンターの共有 (エコー要求 - ICMPv6 受信) ( Profile : ドメイン )
Get-NetFirewallRule -name  FPS-ICMP6-ERQ-In-NoScope | Set-NetFirewallRule -enable true
#プライベートの場合にPINGを通す

#ファイルとプリンターの共有 (エコー要求 - ICMPv4 受信) ( Profile : プライベート )
Get-NetFirewallRule -Name FPS-ICMP4-ERQ-In | Set-NetFirewallRule -enabled true;

#ファイルとプリンターの共有 (エコー要求 - ICMPv6 受信) ( Profile : プライベート )
Get-NetFirewallRule -Name FPS-ICMP6-ERQ-In | Set-NetFirewallRule -enabled true;


PINGを通して、ファイルとプリンターを共有できるようにする


#「ファイルとプリンターの共有」(ドメインプロファイルのみ)有効
$NetDiscoveryRule = Get-NetFirewallRule | Where-Object {$_.DisplayGroup -eq "ファイルとプリンターの共有"}
foreach($Rule in $NetDiscoveryRule){
  If ($Rule.Profile -like "*Domain*"){ 
    If ($Rule.Enabled -eq "False"){
      Set-NetFirewallRule -InputObject $Rule -Enabled True
    }
  }
}



#「ファイルとプリンターの共有」(プライベートプロファイルのみ)有効
$NetDiscoveryRule = Get-NetFirewallRule | Where-Object {$_.DisplayGroup -eq "ファイルとプリンターの共有"}
foreach($Rule in $NetDiscoveryRule){
  If ($Rule.Profile -like "*Private*"){ 
    If ($Rule.Enabled -eq "False"){
      Set-NetFirewallRule -InputObject $Rule -Enabled True
    }
  }
}


#すべてのプロファイルで「ファイルとプリンターの共有」を有効化
netsh advfirewall firewall set rule group="ファイルとプリンターの共有" new enable=Yes


リモートデスクトップを許可する(一緒に設定することが多そうなので)


# リモートデスクトップを許可
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server" -Name "fDenyTSConnections" -Value "0"

# リモートデスクトップを許可 ネットワークレベル認証でリモートデスクトップを実行しているコンピューターからのみ接続を許可する
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name "UserAuthentication" -Value 1


<設定例> ファイアーウォールを全部有効にして
ドメインネットワークの中でけPINGを有効

#すべてのプロファイルのファイアウォールを有効化する
Set-NetFirewallProfile -Enabled true

#ファイルとプリンターの共有 (エコー要求 - ICMPv4 受信) ( Profile : ドメイン )
Get-NetFirewallRule -name  FPS-ICMP4-ERQ-In-NoScope | Set-NetFirewallRule -enable true

#ファイルとプリンターの共有 (エコー要求 - ICMPv6 受信) ( Profile : ドメイン )
Get-NetFirewallRule -name  FPS-ICMP6-ERQ-In-NoScope | Set-NetFirewallRule -enable true


中小企業だとファイアーウォールを全部OFFにしているところもあるんじゃないでしょうか。全部ONにして必要な通信だけ通した方がいいです。


#PowerShell #プログラミング学習 #Windows #キッティング #セキュリティ

この記事が気に入ったらサポートをしてみませんか?