如何让Internet Explorer正确处理自定义协议处理程序?

ubo*_*omb 4 windows registry internet-explorer

我想一个网站,我开发开放PuTTYssh://0.0.0.0输入网址.我在Chrome和Firefox中使用此功能,但在Internet Explorer中出现以下错误:

Windows cannot access the specified device, path, or file. You may not have the appropriate permissions to access this item.
Run Code Online (Sandbox Code Playgroud)

其次是:

Unable to open this helper application for ssh://0.0.0.0/.

The protocol specified in this address is not valid. Make sure the address is correct, and try again.
Run Code Online (Sandbox Code Playgroud)

这是我的注册表项:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\ssh]
@="URL:SSH Protocol"
"URL Protocol"=""

[HKEY_CLASSES_ROOT\ssh\shell]

[HKEY_CLASSES_ROOT\ssh\shell\open]

[HKEY_CLASSES_ROOT\ssh\shell\open\command]
@="cmd /k set in=\"%l\" & call set in=%%in:ssh:=%% & call set in=%%in:/=%% & call \"C:\\Program Files (x86)\\PuTTY\\putty.exe\" %%in%% & exit"
Run Code Online (Sandbox Code Playgroud)

我做了一个快速的实验,看起来问题是由于cmdcall.一旦我删除它们,我就会得到预期的结果.但是,我仍然需要将字符串操作作为PuTTY(并且vnc使用RealVNC VNC Viewer的URL 的相同情况)仅期望主机没有协议前缀.

编辑:似乎cmd只是导致问题.call可以与预期的行为一起使用.

ubo*_*omb 6

我想cmd.exeInternet Explorer调用存在权限问题.相反,我必须完全开始PowerShell.这是工作的注册表项,绝对没有其他脚本或PuTTY程序修改,在我在网上找到的一些解决方法中显示:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\ssh]
@="URL:SSH Protocol"
"URL Protocol"=""

[HKEY_CLASSES_ROOT\ssh\shell]

[HKEY_CLASSES_ROOT\ssh\shell\open]

[HKEY_CLASSES_ROOT\ssh\shell\open\command]
@="C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe -Command \"$uri = [System.Uri]'%l';&\"${env:ProgramFiles}\\PuTTY\\putty.exe\" -P $uri.Port $uri.GetComponents([System.UriComponents]::UserInfo -bor [System.UriComponents]::Host, [System.UriFormat]::UriEscaped)\""
Run Code Online (Sandbox Code Playgroud)

我现在可以打开SSHVNC链接来自所有三个主要浏览器.