VBS不会修改注册表

时间:2011-07-12 19:03:19

标签: vbscript registry

我正在编写一个我需要修改几个注册表项的vbscript。问题是,从我们的某台计算机上删除Chrome或Firefox后,您无法再打开网络浏览器之外的链接。这是因为计算机仍将删除的浏览器视为默认浏览器。我有几个其他注册表修改工作,但当我运行脚本时,它不会更改以下注册表项:

    'does not work
    strRoot = "HKEY_CLASSES_ROOT\https\Shell\open\command\ddeexec\"
    wShell.RegWrite strRoot,"" & Chr(34) & "%1" & Chr(34) & ",,-1,0,,,,"
    'does not work
    strRoot = "HKEY_CLASSES_ROOT\https\Shell\open\command\ddeexec\NoActivateHandler"
    wShell.RegWrite strRoot,""
    'does not work
    strRoot = "HKEY_CLASSES_ROOT\https\Shell\open\command\ddeexec\Application\"
    wShell.RegWrite strRoot,"IExplore"
    'does not work
    strRoot = "HKEY_CLASSES_ROOT\https\Shell\open\command\ddeexec\Topic\"
    wShell.RegWrite strRoot,"WWW_OpenURL"

这也需要应用于同一路径中的“HTTP”键,同样“ddeexec”文件夹中的任何内容都不能更改。我不相信这是一个权限问题,因为我可以进入注册表并手动更改它没有问题

2 个答案:

答案 0 :(得分:1)

尝试

HKEY_CLASSES_ROOT\https\Shell\open\ddeexec\

而不是

HKEY_CLASSES_ROOT\https\Shell\open\command\ddeexec\

答案 1 :(得分:0)

您是在本地还是远程运行此脚本?机器是否有运行的防病毒软件?您使用的是哪个版本的Windows?

脚本访问的注册表权限可以与本地用户帐户的注册表权限不同。也就是说,这意味着使用注册表编辑器成功更改注册表项并不一定意味着您可以从脚本中执行此操作。

另外,在此系统上打开任何剩余的浏览器应该提示用户将其设置为默认浏览器。如果他们选择允许,则会为您重置所有这些设置。