Love0912 发表于 2024-7-22 15:25

关于20240719微软全球蓝屏事件的解决小工具 V1.02

本帖最后由 Love0912 于 2024-7-23 16:33 编辑

本来是发帖到精品软件区的,结果被删帖告知这属于编程范畴,木得办法,来这里再发一次,希望不会被删帖
按照惯例做如下阐述声明:
1、自行编写,所以没有版权啥的一说,但是不建议二次编辑或商用(至少你要知会我一声)
2、本软件旨在解决微软20240719日更新导致的全球蓝屏事件。
3、如果部分情况没有成功触发的,可以自行看注释手动解决,注释写的很明白了
4、如果可以,免费的热心、吾爱币施舍两个。。写帖子也好辛苦的{:301_972:}
软件界面及原理阐述:
原理就是根据微软官方披露的信息,删除crowdstrike目录下C-00000291打头的文件,然后重启电脑即可。
-------------------------
20240723二次编辑
首先鸣谢热心观众NewbieXvwu的建议反馈,根据他的建议我进行了二次编辑修改
主要修改内容:提示中增加了建议PE下运行的提醒
将指向性C盘修改成了自动检索所有磁盘目录,提高直通系统目录的准确性。
修改为根据检索情况决定是否重启电脑,
--------------------------
以下为相关代码
@echo off
echo ####################################################
echo.
echo 本批处理脚本运行完毕后,会自动重启电脑,请提前保存相关文件。
echo.
echo 请确保以管理员身份运行此脚本,因为需要系统最高权限。
echo.
echo 本批处理脚本由二虎电脑编写,请勿二次编辑。
echo.
echo ######################################################
pause
:: 检查脚本是否以管理员身份运行
net session >nul 2>&1
if %errorlevel% NEQ 0 (
    echo 请以管理员身份重新运行此脚本。
    pause
    exit
)

setlocal enabledelayedexpansion
set "problemFound=false"
:: 遍历所有驱动器从 A: 到 Z:
for %%d in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
    if exist "%%d:\" (
      echo 正在检查驱动器 %%d:
      if exist "%%d:\Windows\System32\drivers\CrowdStrike\C-00000291*.sys" (
            echo 在 %%d:\Windows\System32\drivers\CrowdStrike\ 找到了有问题的驱动文件。
            del /f /q "%%d:\Windows\System32\drivers\CrowdStrike\C-00000291*.sys"
            if !errorlevel! EQU 0 (
                echo 成功删除 %%d:\Windows\System32\drivers\CrowdStrike\ 中的有问题驱动文件。
                set "problemFound=true"
            ) else (
                echo 无法删除 %%d:\Windows\System32\drivers\CrowdStrike\ 中的有问题驱动文件。请手动检查。
                echo.
                echo 目录地址:系统盘:\WINDOWS\System32\drivers\crowdstrike\
            )
      )
    )
)

if "%problemFound%" == "true" (
    goto :RestartPrompt
) else (
    echo 恭喜您的电脑没有被这次问题所影响,摁任意键将关闭当前程序。
    pause >nul
    exit
)

:RestartPrompt
echo.
echo 摁任意键将自动重启您的电脑,请保存好您的相关资料!!!
echo 如果您想手动重启电脑,请点击右上角关闭按钮!
pause >nul
shutdown /r /t 0
endlocal@echo off
echo ####################################################
echo.
echo 本批处理脚本运行完毕后,会自动重启电脑,请提前保存相关文件。
echo.
echo 请确保以管理员身份运行此脚本,因为需要系统最高权限。
echo.
echo 本批处理脚本由二虎电脑编写,请勿二次编辑。
echo.
echo ######################################################
pause
:: 检查脚本是否以管理员身份运行
net session >nul 2>&1
if %errorlevel% NEQ 0 (
    echo 请以管理员身份重新运行此脚本。
    pause
    exit
)

setlocal enabledelayedexpansion
set "problemFound=false"
:: 遍历所有驱动器从 A: 到 Z:
for %%d in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
    if exist "%%d:\" (
      echo 正在检查驱动器 %%d:
      if exist "%%d:\Windows\System32\drivers\CrowdStrike\C-00000291*.sys" (
            echo 在 %%d:\Windows\System32\drivers\CrowdStrike\ 找到了有问题的驱动文件。
            del /f /q "%%d:\Windows\System32\drivers\CrowdStrike\C-00000291*.sys"
            if !errorlevel! EQU 0 (
                echo 成功删除 %%d:\Windows\System32\drivers\CrowdStrike\ 中的有问题驱动文件。
                set "problemFound=true"
            ) else (
                echo 无法删除 %%d:\Windows\System32\drivers\CrowdStrike\ 中的有问题驱动文件。请手动检查。
                echo.
                echo 目录地址:系统盘:\WINDOWS\System32\drivers\crowdstrike\
            )
      )
    )
)

if "%problemFound%" == "true" (
    goto :RestartPrompt
) else (
    echo 恭喜您的电脑没有被这次问题所影响,摁任意键将关闭当前程序。
    pause >nul
    exit
)

:RestartPrompt
echo.
echo 摁任意键将自动重启您的电脑,请保存好您的相关资料!!!
echo 如果您想手动重启电脑,请点击右上角关闭按钮!
pause >nul
shutdown /r /t 0
endlocal

以下为运行效果图



下载地址:https://wwf.lanzoue.com/ib7vH25amcxa

NewbieXvwu 发表于 2024-7-23 11:01

Love0912 发表于 2024-7-23 08:23
这个建议非常的棒,立马着手修改一下~

抱歉,但楼主的脚本似乎仍需更改。在WinPE下个人有时会碰到盘符错乱问题(尤其在多系统的电脑上,此外部分WinPE会自动列出所有隐藏分区如EFI保留分区),因而C:此时不一定是真正的系统盘。
楼主的更改是把写死的C:改成了指向%SystemRoot%,但在WinPE下%SystemRoot%指向的是X:,也就是WinPE本身虚拟出来的内存盘(具体可搜索RAMOS查阅),并非真正的系统盘。
简而言之楼主的改动并无法在WinPE下正确寻找到系统分区(在正常的Win环境下是可以的,但此时又容易被拒绝访问,除非进入安全模式)。
我才疏学浅,个人认为最好的方式是从A:遍历到Z:,寻找哪个磁盘存在\System32\drivers\crowdstrike\C-00000291*.sys文件并将其删除。
此外,据我查询,进入安全模式执行该脚本应当有效。建议楼主注明,在安全模式下以管理员身份执行脚本,或者进入WInPE执行,但对WinPE的适配仍建议按上面修改代码。
以下是我的建议脚本,仅供参考:

@echo off

:: 检查脚本是否以管理员身份运行
openfiles >nul 2>&1
if %errorlevel% NEQ 0 (
    echo 请以管理员身份运行此脚本。
    pause
    exit /B
)

setlocal enabledelayedexpansion

:: 遍历所有驱动器从 A: 到 Z:
for %%d in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
    if exist %%d:\ (
      echo 正在检查驱动器 %%d:
      if exist %%d:\Windows\System32\drivers\CrowdStrike\C-00000291*.sys (
            echo 在 %%d:\Windows\System32\drivers\CrowdStrike\ 找到了有问题的驱动文件
            del %%d:\Windows\System32\drivers\CrowdStrike\C-00000291*.sys /f /q
            if %errorlevel% EQU 0 (
                echo 成功删除 %%d:\Windows\System32\drivers\CrowdStrike\ 中的有问题驱动文件
            ) else (
                echo 无法删除 %%d:\Windows\System32\drivers\CrowdStrike\ 中的有问题驱动文件。请手动检查。
            )
      ) else (
            echo 在 %%d: 中未找到有问题的驱动文件
      )
    )
)

pause
exit /B
此外,请注意Win10记事本默认将bat文件以UTF-8编码保存,这会使中文乱码,建议另存为——以ANSI编码保存。

NewbieXvwu 发表于 2024-7-23 14:41

Love0912 发表于 2024-7-23 13:26
我根据你的建议进行了一下修改,经过多次检查,应该可以运行,并满足你的需求;但是有一个问题,就是我电 ...

我不是大佬啦……只是碰巧提个建议而已……批处理我研究得不深,以下是ChatGPT给出的修改方案,或许可以参考?
@echo off
echo ####################################################
echo.
echo 本批处理脚本运行完毕后,会自动重启电脑,请提前保存相关文件。
echo.
echo 请确保以管理员身份运行此脚本,因为需要系统最高权限。
echo.
echo 本批处理脚本由二虎电脑编写,请勿二次编辑。
echo.
echo ######################################################
pause

:: 检查脚本是否以管理员身份运行
net session >nul 2>&1
if %errorlevel% NEQ 0 (
    echo 请以管理员身份重新运行此脚本。
    pause
    exit
)

setlocal enabledelayedexpansion
set "problemFound=false"

:: 遍历所有驱动器从 A: 到 Z:
for %%d in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
    if exist "%%d:\" (
      echo 正在检查驱动器 %%d:
      if exist "%%d:\Windows\System32\drivers\CrowdStrike\C-00000291.sys" (
            echo 在 %%d:\Windows\System32\drivers\CrowdStrike\ 找到了有问题的驱动文件。
            del /f /q "%%d:\Windows\System32\drivers\CrowdStrike\C-00000291.sys"
            if !errorlevel! EQU 0 (
                echo 成功删除 %%d:\Windows\System32\drivers\CrowdStrike\ 中的有问题驱动文件。
                set "problemFound=true"
            ) else (
                echo 无法删除 %%d:\Windows\System32\drivers\CrowdStrike\ 中的有问题驱动文件。请手动检查。
                echo.
                echo 目录地址:系统盘:\WINDOWS\System32\drivers\crowdstrike\
            )
      )
    )
)

if "%problemFound%" == "true" (
    goto :RestartPrompt
) else (
    echo 恭喜您的电脑没有被这次问题所影响,摁任意键将关闭当前程序。
    pause >nul
    exit
)

:RestartPrompt
echo.
echo 摁任意键将自动重启您的电脑,请保存好您的相关资料!!!
echo 如果您想手动重启电脑,请点击右上角关闭按钮!
pause >nul
shutdown /r /t 0
endlocal

NewbieXvwu 发表于 2024-7-22 22:16

个人认为该批处理文件仍值得修改。在正常Win环境下这类系统文件会被Win权限控制和安全软件自我保护拒绝访问,即使使用管理员权限仍无效;在WinPE下C:又不一定是目标系统盘。建议程序遍历寻找目标系统盘而非写死为C:,此外注明建议在PE下运行。

mycishe 发表于 2024-7-22 15:32

感谢分享{:17_1060:}

zhchliang 发表于 2024-7-22 15:35

谢谢分享,及时雨啊

AwardedSheet616 发表于 2024-7-22 15:37

感谢分享

LuckyClover 发表于 2024-7-22 15:37

感谢分享好东西

biaozoul 发表于 2024-7-22 15:39

好速度,这么快就出来了

ZWD01 发表于 2024-7-22 15:39

感谢分享

08sec-君君 发表于 2024-7-22 15:42

啊??我们又没用人家网络安群公司的产品。。

52soft 发表于 2024-7-22 15:42

这个太及时了

blbl 发表于 2024-7-22 15:43

牛逼 plus顶楼主谢谢
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 关于20240719微软全球蓝屏事件的解决小工具 V1.02