Вопрос

Я добавил эту запись в контекстное меню USB-накопителя через autorun.inf :

[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.

Есть ли способ заставить это работать правильно? Я предполагаю, что он сможет передать букву диска или заставить проводник использовать флешку в качестве рабочего каталога, но я не знаю как. Поскольку я хочу использовать флешку на ходу, я бы предпочел избегать жесткого кодирования буквы моего локального диска.

Это было полезно?

Решение

Я думаю, что самым простым решением было бы создать пакетный файл, чтобы сделать это для вас. Что-то с именем activkey.cmd , например:

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

cd PuTTY
pageant.exe davids.ppk

Поместите файл activkey.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