Windows 版本:21H1(操作系统内部版本 19043.1151)[Windows 10 Pro 64 位] AV 是 Windows Defender 和 brain.exe
现在我的问题:
从最近起我不再能运行我的 VBS 脚本。 错误信息和排除
---------------------------
Windows Script Host
---------------------------
Script: C:\_Operations\Aebian\BorderlessGaming\BorderlessGaming.vbs
Line: 3
Char: 1
Error: This script contains malicious content and has been blocked by your antivirus software.: 'Run'
Code: 800A802D
Source: Microsoft VBScript runtime error
---------------------------
OK
---------------------------
该脚本过去运行完美,没有任何问题。脚本内容如下:
Dim WinScriptHost
Set WinScriptHost = CreateObject("WScript.Shell")
WinScriptHost.Run Chr(34) & "C:\_Operations\Aebian\BorderlessGaming\BorderlessGaming.bat" & Chr(34), 0
Set WinScriptHost = Nothing
然后运行实际脚本。我使用 VBS,因为否则我将始终打开一个 CMD 窗口,而我必须手动关闭它。BAT 文件如下所示:
@echo off
:loop
Start /MIN "" "C:\Programs\Borderless Gaming\BorderlessGaming.exe"
timeout /t 1800 >nul
taskkill /F /IM "BorderlessGaming.exe" >nul
goto loop
在我的排除中,我直接拥有整个文件夹和 VBS 文件(如上面的屏幕截图所示)。我还遗漏了什么吗?我想知道为什么现在这是一个问题,但三天前却不是。
非常感谢您的帮助,谢谢。
答案1
我现在已经改变了脚本的调用过程。因为我上面帖子中的原始 VBS 文件已经造成了麻烦。
' Run BAT invisible - Usage: wscript.exe "C:\_Operations\Aebian\util\vbi.vbs" "C:\_Operations\Aebian\BorderlessGaming\BorderlessGaming.bat"
CreateObject("Wscript.Shell").Run """" & WScript.Arguments(0) & """", 0, False
基本上,我现在有一个“专用”的 VBS 文件,它接受一个参数。它将毫无问题地运行我的 BAT 文件。在第一行的注释中,您将看到它是如何工作的。我将 VBS 文件命名为 vbi.vbs,但您可以随意命名。
感谢你的帮助。
答案2
我向 Windows Defender 团队提交了有关此问题的“误报”报告。他们使用以下示例脚本“删除了触发“恶意代码”阻止的定义”:
Set oShell = CreateObject("WScript.Shell")
oShell.Run "taskkill /f /im mspaint.exe"
我刚刚检查了 Windows Defender 定义 1.345.247.0,上面的脚本现在运行没有错误。我认为此更新应该可以让您的原始脚本干净地运行。至少,我已经确认以下代码(即完全用 VBScript 编写的原始脚本)现在运行良好。
Set oShell = CreateObject("WScript.Shell")
Do While True
oShell.Run Chr(34) & "C:\Programs\Borderless Gaming\BorderlessGaming.exe" & Chr(34), 2, 0
WScript.Sleep 1800000
oShell.Run "TaskKill /im BorderlessGaming.exe /f", 0, 1
Loop