wscript.exe停止使用自定义协议

时间:2018-05-25 15:59:00

标签: vbscript url-scheme

我们公司的所有计算机都配置了运行vbs脚本的自定义协议,因此当您单击具有该用户协议的链接时,vbs脚本将启动并执行与文件系统交互的操作,否则无法访问应用程序到浏览器。

这是用于注册协议的.reg文件:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\<name>]
"URL Protocol"=""
@="Url:<Description>"
"UseOriginalUrlEncoding"=dword:00000001

[HKEY_CLASSES_ROOT\<name>\DefaultIcon]
@="C:\\Windows\\System32\\WScript.exe"

[HKEY_CLASSES_ROOT\<name>\shell]

[HKEY_CLASSES_ROOT\<name>\shell\open]

[HKEY_CLASSES_ROOT\<name>\shell\open\command]
@="C:\\Windows\\System32\\WScript.exe \"C:\\Program Files\\<name>.vbs\" \"%1\""

2014以来,该脚本运行良好,在~50台计算机上没有问题。

上周,一位用户抱怨说它停止了工作。我发现WScript.exe不再起作用,所以我复制它创建WScript2.exe,修改自定义协议以运行WScript2.exe并重新启动它。

今天早上我的电脑也没有收听我自定义协议的点击。我将WScript.exe的副本复制到WScript2.exe并重新启动它。

我希望我的手机能够很快响起。

为什么WScript.exe停止侦听自定义协议?

为什么它的相同副本仍有效?

编辑(评论的答案)

也许如果我知道如何更好地描述&#34;它停止了工作&#34;然后我会知道如何解决它:)

由于Microsoft更新,防病毒更新或IT基础架构/配置的更改,我不知道它是否停止工作。以下是导致我解决方法的快速摘要:

  • 我将自定义协议与工作协议进行了比较,我选择了mailto作为参考
  • 我注意到更改了.reg文件的最后一行(见上文),它可以与任何其他可执行文件一起使用,但它不能与wscript.exe
  • 一起使用
  • 我将受影响的计算机上wscript.exe的执行情况与受影响的计算机(尚未受影响)上的执行进行了比较,没有区别
    • 双击显示相同的Windows Script Host Settings对话框
    • 使用自定义协议使用的相同参数从命令提示符执行按预期工作
  • 自定义协议在执行另一个可执行文件时传递正确的参数
  • 此时我认为Windows已列入黑名单wscript.exe,我开始寻找替代方案
  • 我尝试将wscript.exe重命名为wscript2.exe但我不能,因为我没有TrustedInstaller权限
  • 我制作副本而不是重命名
  • 我在命令提示符下测试了副本,它的工作方式与原来的一样
  • 我测试了自定义协议的副本,它的工作方式与原来的一样

编辑2 (更多评论答案)

所有计算机都安装了Windows 10 Pro。

点击Settings - Updates & Security - View update history,它显示Feature update to Windows 10, version 1803 Succesfully installed on 5/22/2018。单击Show what's new in this update显示没有任何用处。

编辑3

没有工作=没有任何症状,没有任何反应,没有任何执行,没有任何记录(据我所知)。

我尝试使用一行简单的vbscript MsgBox "Hello"。它可以从命令行运行它,但它不能从自定义协议中运行。任务管理器没有显示任何弹出的内容,但我不知道它是否显示它,因为生命周期太短而无法显示或者因为它没有执行。相同的脚本适用于wscript2.exe。

我的感觉是某些东西(Windows,反病毒,......)将custom protocol + wscript.exe内容列入黑名单,而不是custom protocol + any other executableany other environment + wscript.exe。这就是我尝试将wscript.exe复制到wscript2.exe的原因。我惊喜地发现它有效。

0 个答案:

没有答案