Pergunta

Eu adicionei esta entrada no menue contexto de um stick USB via autorun.inf:

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

Ambos PuTTY\pageant.exe e PuTTY\davids.ppk ficheiros no stick USB e deve ser escolhido a partir daí.

Quando eu executo isto em uma casca da raiz da vara funciona como pretendido. Mas iniciá-lo a partir do menu ele tenta carregar a chave de C:\Windows\system32\PuTTY\davids.ppk (marcada com Processo monitorar ).

Tentando usar um script simples cmd resultou em esta saída:

    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.

Existe uma maneira de obter esse trabalho corretamente? Eu acho que ele deve ser capaz de passar a letra de unidade ou obter o Explorer para usar a vara como diretório de trabalho, mas eu não sei como. Desde que eu quero usar a vara em movimento, eu prefiro evitar hardcoding minha letra da unidade local.

Foi útil?

Solução

Eu acho que a solução mais fácil seria criar um arquivo de lote para fazer isso por você. Algo chamado activatekey.cmd assim:

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

cd PuTTY
pageant.exe davids.ppk

Coloque o activatekey.cmd arquivo em seu stick USB, e mudar o autorun.inf a ser:

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

Outras dicas

Parece que lê "Path" variável do sistema. :( Você pode adicionar a unidade a caminho, mas recebendo a letra de unidade é o problema. :(

Update 1:. Você pode obter a letra da unidade usando um script VB

Update 2: Sim, eu acho que você pode fazer isso. Marque esta página .

Update 3: Eu testei o script. Ele funciona muito bem.

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

Use algum método de verificação existência arquivo para vários drives USB diferenciar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top