Pregunta

He agregado esta entrada al menú contextual de una memoria USB a través de autorun.inf :

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

Tanto PuTTY \ pageant.exe como PuTTY \ davids.ppk son archivos en la memoria USB y deben recogerse desde allí.

Cuando ejecuto esto en un shell desde la raíz del stick, funciona según lo previsto. Pero al iniciarlo desde el menú, intenta cargar la clave desde C: \ Windows \ system32 \ PuTTY \ davids.ppk (marcado con Monitor de procesos ).

Intentar usar una secuencia de comandos cmd simple resultó en esta salida:

    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.

¿Hay alguna manera de hacer que esto funcione correctamente? Supongo que debería poder pasar la letra de la unidad o hacer que el explorador use el stick como directorio de trabajo, pero no sé cómo. Como quiero usar el dispositivo sobre la marcha, prefiero evitar codificar mi letra de unidad local.

¿Fue útil?

Solución

Creo que la solución más fácil sería crear un archivo por lotes para hacer esto por usted. Algo llamado enablekey.cmd como este:

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

cd PuTTY
pageant.exe davids.ppk

Coloque el archivo enablekey.cmd en su dispositivo USB y cambie el autorun.inf para que sea:

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

Otros consejos

Parece que se lee " Ruta " variable del sistema :( Puede agregar la unidad a la ruta pero obtener la letra de la unidad es el problema. :-(

Actualización 1: puede obtener la letra de la unidad utilizando un script VB.

Actualización 2: Sí, creo que puedes hacer eso. Compruebe esta página .

Actualización 3: probé el script. Funciona muy bien.

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

Utilice algún método de verificación de existencia de archivos para diferenciar múltiples unidades USB.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top