Answers:
您可以手动将应用程序与协议关联。请参阅MSDN文章将应用程序注册到URI方案。
基本上,您添加一个注册表项,例如:
[HKEY_CLASSES_ROOT\ssh]
@="URL: SSH Protocol"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\ssh\DefaultIcon]
@="\"C:\\Program Files (x86)\\PuTTY\\PuTTY.exe\",0"
[HKEY_CLASSES_ROOT\ssh\shell]
[HKEY_CLASSES_ROOT\ssh\shell\open]
[HKEY_CLASSES_ROOT\ssh\shell\open\command]
@="\"C:\\Program Files (x86)\\PuTTY\\PuTTY.exe\""
尽管以上内容将整个URL传递给PuTTY命令行。而且PuTTY无法理解ssh://
前缀。因此,您将必须添加一个包装器脚本,以剥离ssh://
和将仅用户和主机传递给PuTTY。
为此,请参见:https :
//johnsofteng.wordpress.com/2009/05/12/launch-putty-from-browser/
另一种方法是使用WinSCP。它注册自己以处理ssh://
URL,并在PuTTY中打开URL 指定的会话。
(我是WinSCP的作者)
这是一个注册表类,它将在将ssh://和尾随(实际上是全部)/从URI删除之前,将其传递给PuTTY,以便PuTTY可以直接打开它:
每位使用者:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Classes\ssh]
@="URL:ssh Protocol"
"URL Protocol"="ssh://"
[HKEY_CURRENT_USER\Software\Classes\ssh\shell]
[HKEY_CURRENT_USER\Software\Classes\ssh\shell\open]
[HKEY_CURRENT_USER\Software\Classes\ssh\shell\open\command]
@="cmd /V:ON /c set params=%1 && set params=!params:ssh://=! && start \"PuTTY\" \"c:\\Program Files (x86)\\PuTTY\\putty.exe\" \"!params:/=!\""
而且,对于系统上的每个人:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\ssh]
@="URL:ssh Protocol"
"URL Protocol"="ssh://"
[HKEY_CLASSES_ROOT\ssh\shell]
[HKEY_CLASSES_ROOT\ssh\shell\open]
[HKEY_CLASSES_ROOT\ssh\shell\open\command]
@="cmd /V:ON /c set params=%1 && set params=!params:ssh://=! && start \"PuTTY\" \"c:\\Program Files (x86)\\PuTTY\\putty.exe\" \"!params:/=!\""
根据需要更改文件路径。
/ V:ON与“ SetLocal EnableDelayedExpansion”相同
/ c运行命令
我将参数设置为“ ssh://domain.tld/”。然后我用'!params:ssh:// =!'从中剥离'ssh://',这是变量params上'ssh://'到''的查找替换。我将其分配回params,现在params ='domain.tld /'。然后,我将其传递给腻子,并执行另一个查找替换,以将'/'替换为',以删除Windows出现的结尾斜杠,保留PuTTY可以使用的'domain.tld'。
这使我可以在注册表项中输入的命令中进行全部处理。它根本不进行任何消毒,并且易于利用(例如ssh:// && notepad打开记事本),因此您可能希望将URI更改为仅您知道的内容。
PowerShell
命令仅使用注册表项的方法。干得好。