我已经通过 autorun.inf 将此条目添加到USB记忆棒的上下文中:

[AutoRun]
shell\pageant=Activate SSH Key
shell\pageant\command=PuTTY\pageant.exe PuTTY\davids.ppk

PuTTY \ pageant.exe PuTTY \ davids.ppk 都是USB记忆棒上的文件,应该从那里拿起。

当我从棒的根部运行它时,它按预期工作。但是从菜单启动它会尝试从 C:\ Windows \ system32 \ PuTTY \ davids.ppk 加载密钥(使用进程监视器

尝试使用简单的cmd脚本导致此输出:

    C:\Windows\system32>cd PuTTY
    Das System kann den angegebenen Pfad nicht finden.

    C:\Windows\system32>pageant.exe davids.ppk
    Der Befehl "pageant.exe" ist entweder falsch geschrieben oder
    konnte nicht gefunden werden.

有没有办法让这个工作正常?我想它应该能够通过驱动器号或让探险家使用棒作为工作目录,但我不知道如何。由于我想在旅途中使用棒,我宁愿避免硬编码我的本地驱动器号。

有帮助吗?

解决方案

我认为最简单的解决方案是创建一个批处理文件来为您执行此操作。像这样命名为 activatekey.cmd 的东西:

REM switch to the directory containing this script
for %%a in (%0) do cd /D %%~da%%~pa

cd PuTTY
pageant.exe davids.ppk

将文件 activatekey.cmd 放入USB记忆棒,然后将 autorun.inf 更改为:

[AutoRun]
shell\pageant=Activate SSH Key
shell\pageant\command=activatekey.cmd

其他提示

它似乎是“路径”。系统变量。 :(您可以将驱动器添加到路径,但获取驱动器号是问题。: - (

更新1:您可以使用VB脚本获取驱动器号。

更新2:是的,我认为你可以做到。请查看此页面

更新3:我测试了脚本。它很棒。

Dim  oDrive
Set oFSO = WScript.CreateObject("Scripting.FileSystemObject")
For Each oDrive In oFSO.Drives
WScript.Echo "Drive Letter" , oDrive.DriveLetter
WScript.Echo "Drive Type" , oDrive.DriveType
Next

使用一些文件存在检查方法来区分多个USB驱动器。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top