如果调用用户未登录,则plink进程不会结束

时间:2011-06-01 07:21:05

标签: c# windows-server-2008-r2 plink

我正在从作为某个Windows用户运行的C#代码调用plink。我把plink称为

plink.exe user @ hostname -pw密码命令

通常plink进程在命令运行后立即结束,但是当运行代码的用户没有登录到Windows时,plink进程不会结束。

随着所有这些僵尸进程的建立,无法再创建新进程......

知道为什么会这样吗?

1 个答案:

答案 0 :(得分:2)

这可能是因为第一次连接到新服务器时PuTTY在注册表中注册主机密钥,在当前登录的用户下(在HKEY_CURRENT_USER下)。如果该用户未登录,则该部分注册表可能无法访问。

尝试将密钥移至HKEY_LOCAL_SYSTEM。这个过程在这里详细描述: http://xxlinxx.wordpress.com/2009/03/23/set-up-an-ssh-tunnel-as-a-windows-service-using-putty-plink/

根据您的具体使用案例,该页面上的最终说明可能也很重要: “此外,如果Windows SYSTEM用户无法看到SSH连接的主机密钥,则无法建立隧道。”

PS:这里有另一页here,讨论如何将证书移至HKEY_USERS.DEFAULT