Domanda

Ho aggiunto questa voce nel menu contestuale di una chiavetta USB tramite autorun.inf :

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

Sia PuTTY \ pageant.exe che PuTTY \ davids.ppk sono file sulla chiavetta USB e dovrebbero essere prelevati da lì.

Quando eseguo questo in una shell dalla radice dello stick, funziona come previsto. Ma avviandolo dal menu tenta di caricare la chiave da C: \ Windows \ system32 \ PuTTY \ davids.ppk (controllato con Process Monitor ).

Il tentativo di utilizzare un semplice script cmd ha prodotto questo output:

    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.

C'è un modo per farlo funzionare correttamente? Immagino che dovrebbe essere in grado di passare la lettera di unità o convincere l'esploratore a utilizzare lo stick come directory di lavoro, ma non so come. Dal momento che voglio usare lo stick in viaggio, preferirei evitare di codificare la mia lettera di unità locale.

È stato utile?

Soluzione

Penso che la soluzione più semplice sarebbe quella di creare un file batch per farlo per te. Qualcosa chiamato activkey.cmd come questo:

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

cd PuTTY
pageant.exe davids.ppk

Posiziona il file activkey.cmd nella tua chiavetta USB e modifica il autorun.inf in:

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

Altri suggerimenti

Sembra che legga " Percorso " variabile di sistema. :( È possibile aggiungere l'unità al percorso ma ottenere la lettera dell'unità è il problema. :-(

Aggiornamento 1: è possibile ottenere la lettera di unità utilizzando uno script VB.

Aggiornamento 2: Sì, penso che tu possa farlo. Controlla questa .

Aggiornamento 3: ho testato lo script. Funziona benissimo.

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

Utilizzare un metodo di controllo dell'esistenza di file per differenziare più unità USB.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top