2017-10-05 2 views
0

설치 한 후 SQL Server를 설정하는 스크립트가 있습니다. 그것은 Windows 방화벽이 켜져 있는지 감지하고 Windows 방화벽 서비스에 포트를 추가합니다.은 windows firewall on 또는 off 스크립트

그러나 "실제로"실행 중인지 여부를 실제로 확인하는 방법은 매우 혼란스러워 보입니다.

서비스가 실행 중인지 확인한 후 '충분하지 않겠습니까?'라고 생각했지만 Windows 방화벽이 꺼져 있어도 서비스가 계속 실행되므로 Netsh 스크립트 섹션을 추가하는 포트가 불필요하게 실행됩니다.

나는 또한 레지스트리의 설정을 조사했으며 서비스가 실행 중이지만 방화벽이 꺼져 있어도 켜기로 설정할 수 있습니다.

아마도 스크립트의 실행 부분을 피하는 더 좋은 방법에 대한 지침은 실제로 필요하지 않습니다.

일반적으로 서버 2008을 설치하는 경우 대부분 2012 년 12 월 & 홀수 2016입니다. 감사합니다.

sc query MpsSvc | find "RUNNING" >nul 
IF %ERRORLEVEL% EQU 0 (goto firewall) ELSE (goto start) 
+1

:

@Powershell -C "Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled True" 

가 상태를 확인하려면, 당신은 Show의 결과를 분석 할 수 있습니다. https://community.spiceworks.com/how_to/71739-check-windows-firewall-status-via-command-line도 참조하십시오. – lit

답변

2

윈도우 디펜더 방화벽을 해제하는 적절한 방법은 Windows Defender는 방화벽 프로필을 비활성화하고 서비스 실행을 떠날 것입니다.

그래서 ...

이 배치 파일을 사용 해제

:

@Powershell -C "Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled False" 
:

@NetSh AdvFirewall Set AllProfiles State On 
배치 파일에서 PowerShell을 사용 해제

: 배치 파일을 사용하여

@NetSh AdvFirewall Set AllProfiles State Off 

의 전원을 켭니다

투르 배치 파일에서 PowerShell을 사용에 N : 당신은`netsh를 advfirewall` 명령이 생성됩니다 무엇을 조사 할 수

@NetSh AdvFirewall Show AllProfiles State|Find /I " ON">Nul&&(@Echo Is On)||@Echo Is Off