IT&모바일

윈도우즈 방화벽 특정 규칙(Rule)의 상태를 On/Off 하는 바로가기를 만드는 방법

술도 2023. 8. 1. 05:41
반응형

안녕하세요. 술도입니다.

오늘은 윈도우즈 기반 컴퓨터에서 방화벽 규칙 상태를 on/off 시키는 바로가기를 만드는 방법에 대해

포스팅하고자 합니다.

일반적으로 방화벽 규칙의 경우 방화벽설정에서 고급 보안이 포함된 Windows Defender 방화벽

메뉴를 통해서 해당 Rule 에 마우스 우클릭 후 규칙사용/사용안함 으로 설정이 가능한데.... 이걸

자주 사용하는 입장에서는 여간 귀찮은 일이 아닐수 없습니다.

방화벽 룰 체인저 같은 프로그램이 있는지는 모르겠지만 현재 제 상황에서

PowerShell과 배치파일을 이용하여 방화벽 룰 규칙 상태를 ON/OFF 시키는 방법을 강구해 보았습니다.

 

 

설명을 위해 아웃바운드 Rule 로 하나 추가하였습니다.

Rule 예제로 만든겁니다. (모든 아웃바운드를 차단해버리는....)

이제 저 Suldo.com Defender 를 배치파일과 PowerShell을 이용하여 파일을 만들고

간단하게 바로가기를 통해 특정 방화벽규칙을 사용/사용안함으로 바꾸는 방법에 대해서 설명하겠습니다.

 

우선 PowerShell  코드를 메모장이나 에디터를 실행하고 아래 코드를 입력합니다.

입력한 코드에서 $ruleName = "Suldo.com Defender" 이 부분은  Rule 규칙을 변경 할 Rule 명입니다.

 Rule명을 변경 할 본인의 Rule 명으로 수정하시고 적당한 파일명으로 저장 합니다.

확장자는 .ps1 으로 하시면 됩니다.

저는 Suldo.com Defender onoff.ps1 으로 저장하겠습니다.

# Rule 명
$ruleName = "Suldo.com Defender"

# 관리자 권한확인
if (-NOT ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) {
    Write-Host "The script requires administrator privileges. Please run the script again with administrator privileges.."
    Start-Sleep -Seconds 5
    Exit
}

# 방화벽 규칙 상태 확인
$ruleStatus = Get-NetFirewallRule -DisplayName $ruleName | Select-Object -ExpandProperty Enabled

# 방화벽 규칙 상태 변경
if ($ruleStatus -eq "True") {
    Set-NetFirewallRule -DisplayName $ruleName -Enabled False
    Write-Host "Firewall rule '$ruleName' has been disabled."
} else {
    Set-NetFirewallRule -DisplayName $ruleName -Enabled True
    Write-Host "Firewall rule '$ruleName' has been enabled."
}

 

그 다음 PowerShell 프로그램을 실행 할 배치(.bat)파일을 만들겠습니다.

코드는 아래와 같습니다.

@echo off
PowerShell.exe -NoProfile -ExecutionPolicy Bypass -Command "Start-Process powershell -ArgumentList '-NoProfile -ExecutionPolicy Bypass -File ""%~dp0Suldo.com Defender onoff.ps1""' -Verb RunAs"
exit

배치파일명은 본인이 원하는대로 정하시면 됩니다.

저는 SDDP_ONOFF.bat 로 할게요.

배치파일에서 수정 할 부분은 -File ""%~dp0Suldo.com Defender onoff.ps1""'

이 부분입니다.

다른건 건들지 마세요.

반드시 위에서 저장한 .ps1 파일명으로 변경해줘야 합니다.

그리고 .ps1 파일과 .bat 파일은 같은 경로에 저장을 합니다.

저 같은 경우 따로 폴더를 만들어서 같이 저장해 두었습니다.

 

Suldo.com Defender onoff.ps1 파일을 바로 실행해도 되지만 관리자 권한문제 때문에

바로바로 실행이 불가능합니다.(다른 방법이 있을지도...)

그래서 저는 배치파일로 PowerShell 프로그램 을 관리자권한으로 실행해서 Suldo.com Defender onoff.ps1

을 실행시키는 방법으로 하게 되었습니다.

 

이렇게 한 다음 테스트를 해보시고 잘 작동한다고 생각되면 .bat 파일을 바로가기로 만들어서 트레이나 바탕화면 등에 추가 하셔서 사용하시면 됩니다.(바로가기만드는건 알죠? .bat 파일에 우클릭후 바로가기 만들기> 바탕화면이나 트레이로 이동)

 

이상입니다. 궁금한 점이 있으면 댓글 달아 주세요. 자주 확인은 못하지만 확인하면 답변드릴 수 있도록 할게요.

 

반응형