批处理脚本来修复并开启Windows 7中的Windows Defender防火墙

@echo off
echo 修复并开启Windows Defender防火墙

:: 尝试停止Windows Firewall服务
echo 停止Windows Firewall服务...
net stop mpssvc /y
echo.

:: 尝试重新启动Base Filtering Engine服务
echo 启动Base Filtering Engine服务...
net start bfe
echo.

:: 启动Windows Firewall服务
echo 启动Windows Firewall服务...
net start mpssvc
echo.

:: 检查服务状态
echo 检查Windows Firewall服务状态...
sc query mpssvc | findstr /I /C:"RUNNING" && echo Windows Defender防火墙已成功启动 || echo 无法启动Windows Defender防火墙

echo 修复完成
pause
  1. 将文件另存为 修复防火墙.bat

  2. 右键点击保存的批处理文件 修复防火墙.bat,然后选择“以管理员身份运行”。

运行此脚本后,它将尝试停止并重新启动Windows防火墙相关的服务,并验证防火墙服务是否已成功启动。

 


@echo off
echo 修复并开启Windows Defender防火墙

:: 尝试停止Windows Firewall服务
echo 停止Windows Firewall服务...
net stop mpssvc /y
echo.

:: 确保Base Filtering Engine服务正在运行
echo 确保Base Filtering Engine服务正在运行...
sc config bfe start= auto
sc start bfe
echo.

:: 确保Windows Defender防火墙服务设置为自动启动
echo 设置Windows Defender防火墙服务为自动启动...
sc config mpssvc start= auto
echo.

:: 尝试重新启动Windows Firewall服务
echo 启动Windows Firewall服务...
net start mpssvc
echo.

:: 检查服务状态
echo 检查Windows Firewall服务状态...
sc query mpssvc | findstr /I /C:"RUNNING" && echo Windows Defender防火墙已成功启动 || echo 无法启动Windows Defender防火墙

echo 修复完成
pause

说明:

  • net stop mpssvc /y: 强制停止Windows Defender防火墙服务。
  • sc config bfe start= auto: 将Base Filtering Engine服务设置为自动启动。
  • sc start bfe: 启动Base Filtering Engine服务。
  • sc config mpssvc start= auto: 将Windows Defender防火墙服务设置为自动启动。
  • net start mpssvc: 启动Windows Defender防火墙服务。
  • sc query mpssvc | findstr /I /C:"RUNNING": 检查Windows Defender防火墙服务是否正在运行。

这个批处理脚本尝试通过设置服务的启动类型为自动,并重新启动相关的服务来修复和启动Windows Defender防火墙。运行时,请确保以管理员身份运行批处理文件,以便执行系统级别的操作。


@echo off
setlocal enabledelayedexpansion

echo 修复并开启Windows Defender防火墙

:: Function to check service status
:check_service_status
set "SERVICE_NAME=%1"
sc query %SERVICE_NAME% | findstr /I /C:"RUNNING" >nul
if %errorlevel% equ 0 (
    echo 服务 %SERVICE_NAME% 已启动
) else (
    echo 服务 %SERVICE_NAME% 未启动,尝试启动...
    net start %SERVICE_NAME%
    if %errorlevel% equ 0 (
        echo 服务 %SERVICE_NAME% 已成功启动
    ) else (
        echo 无法启动服务 %SERVICE_NAME%
    )
)
goto :eof

:: 停止Windows Defender防火墙服务
echo 停止Windows Defender防火墙服务...
net stop mpssvc /y
echo.

:: 确保Base Filtering Engine服务设置为自动启动并启动
echo 确保Base Filtering Engine服务正在运行...
sc config bfe start= auto
call :check_service_status bfe
echo.

:: 确保Windows Defender防火墙服务设置为自动启动
echo 设置Windows Defender防火墙服务为自动启动...
sc config mpssvc start= auto
echo.

:: 尝试重新启动Windows Defender防火墙服务
echo 启动Windows Defender防火墙服务...
call :check_service_status mpssvc
echo.

:: 确保Windows防火墙依赖的其他服务正在运行
echo 检查Windows防火墙依赖服务...
set DEP_SERVICES=RpcSs DcomLaunch PlugPlay
for %%s in (%DEP_SERVICES%) do (
    call :check_service_status %%s
)
echo.

:: 使用系统文件检查工具修复系统文件
echo 使用系统文件检查工具修复系统文件...
sfc /scannow
echo.

:: 检查Windows Firewall服务状态
echo 检查Windows Defender防火墙服务状态...
sc query mpssvc | findstr /I /C:"RUNNING" >nul
if %errorlevel% equ 0 (
    echo Windows Defender防火墙已成功启动
) else (
    echo 无法启动Windows Defender防火墙
)

echo 修复完成
pause

说明:

  1. 函数 check_service_status:用于检查并启动指定的服务。
  2. 停止防火墙服务net stop mpssvc /y 强制停止Windows Defender防火墙服务。
  3. 确保Base Filtering Engine服务自动启动并启动sc config bfe start= auto 和 call :check_service_status bfe
  4. 确保Windows Defender防火墙服务自动启动sc config mpssvc start= auto
  5. 检查和启动Windows Defender防火墙服务call :check_service_status mpssvc
  6. 检查并启动其他依赖服务:例如 RpcSsDcomLaunch 和 PlugPlay
  7. 系统文件检查:使用 sfc /scannow 命令修复系统文件。

批处理脚本来修复并开启Windows Defender防火墙,可以引入更多高级功能,如日志记录、错误处理、检查服务依赖关系等。下面是一个更全面和专业的示例:

batCopy Code
@echo off
setlocal enabledelayedexpansion

:: 日志文件路径
set LOGFILE=%~dp0firewall_repair_log.txt

:: 开启日志记录功能
(
    echo ===============================
    echo 开始修复并开启Windows Defender防火墙 - %date% %time%
    echo ===============================
) >> %LOGFILE%

:: 函数:日志记录
:log
echo %~1
echo %~1 >> %LOGFILE%
goto :eof

:: 函数:检查服务状态并启动服务
:check_service_status
set "SERVICE_NAME=%1"
sc query %SERVICE_NAME% | findstr /I /C:"RUNNING" >nul
if %errorlevel% equ 0 (
    call :log "服务 %SERVICE_NAME% 已启动"
) else (
    call :log "服务 %SERVICE_NAME% 未启动,尝试启动..."
    net start %SERVICE_NAME%
    if %errorlevel% equ 0 (
        call :log "服务 %SERVICE_NAME% 已成功启动"
    ) else (
        call :log "无法启动服务 %SERVICE_NAME%"
    )
)
goto :eof

:: 停止Windows Defender防火墙服务
call :log "停止Windows Defender防火墙服务..."
net stop mpssvc /y
call :log "防火墙服务已停止"
call :log ""

:: 确保Base Filtering Engine服务设置为自动启动并启动
call :log "确保Base Filtering Engine服务正在运行..."
sc config bfe start= auto
call :check_service_status bfe
call :log ""

:: 确保Windows Defender防火墙服务设置为自动启动
call :log "设置Windows Defender防火墙服务为自动启动..."
sc config mpssvc start= auto
call :log ""

:: 尝试重新启动Windows Defender防火墙服务
call :log "启动Windows Defender防火墙服务..."
call :check_service_status mpssvc
call :log ""

:: 确保Windows防火墙依赖的其他服务正在运行
call :log "检查Windows防火墙依赖服务..."
set DEP_SERVICES=RpcSs DcomLaunch PlugPlay
for %%s in (%DEP_SERVICES%) do (
    call :check_service_status %%s
)
call :log ""

:: 使用系统文件检查工具修复系统文件
call :log "使用系统文件检查工具修复系统文件..."
sfc /scannow >> %LOGFILE%
call :log ""

:: 检查Windows Firewall服务状态
call :log "检查Windows Defender防火墙服务状态..."
sc query mpssvc | findstr /I /C:"RUNNING" >nul
if %errorlevel% equ 0 (
    call :log "Windows Defender防火墙已成功启动"
) else (
    call :log "无法启动Windows Defender防火墙"
)

call :log "修复完成"

:: 结束日志记录
(
    echo ===============================
    echo 修复结束 - %date% %time%
    echo ===============================
) >> %LOGFILE%

pause

说明:

  1. 日志记录:脚本会将每个操作的输出记录到日志文件 %~dp0firewall_repair_log.txt,该文件位于脚本所在目录。
  2. 函数 log:用于简化日志记录过程。
  3. 函数 check_service_status:扩展了服务检查与启动功能,并增加了日志记录。
  4. 停止防火墙服务net stop mpssvc /y 强制停止Windows Defender防火墙服务。
  5. 确保Base Filtering Engine服务自动启动并启动sc config bfe start= auto 和 call :check_service_status bfe
  6. 确保Windows Defender防火墙服务自动启动sc config mpssvc start= auto
  7. 检查并启动Windows Defender防火墙服务call :check_service_status mpssvc
  8. 检查并启动其他依赖服务:例如 RpcSsDcomLaunch 和 PlugPlay
  9. 系统文件检查:使用 sfc /scannow 命令修复系统文件,并将输出记录到日志文件中。

此脚本通过详细的日志记录、更加灵活的错误处理机制和全面的服务依赖检查,提升了修复和开启Windows Defender防火墙的可靠性和可追溯性。运行时,请确保以管理员身份运行批处理文件,以便执行系统级别的操作。


 

posted @ 2024-06-21 04:08  suv789  阅读(25)  评论(0编辑  收藏  举报