autorun.inf: comment obtenir une lettre de lecteur?
Question
J'ai ajouté cette entrée dans le menu contextuel d'une clé USB via autorun.inf
:
[AutoRun]
shell\pageant=Activate SSH Key
shell\pageant\command=PuTTY\pageant.exe PuTTY\davids.ppk
PuTTY \ pageant.exe
et PuTTY \ davids.ppk
sont des fichiers sur la clé USB et doivent être récupérés à partir de cet emplacement.
Lorsque je lance ceci dans un shell à partir de la racine du stick, cela fonctionne comme prévu. Mais en le démarrant depuis le menu, il essaie de charger la clé à partir de C: \ Windows \ system32 \ PuTTY \ davids.ppk
(vérifié avec Moniteur de processus ).
L'utilisation d'un script cmd simple a donné le résultat suivant:
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-t-il un moyen de faire fonctionner cela correctement? J'imagine qu'il devrait pouvoir transmettre la lettre de lecteur ou permettre à l'explorateur d'utiliser la clé comme répertoire de travail, mais je ne sais pas comment. Étant donné que je souhaite utiliser le stick en déplacement, je préfère éviter de coder en dur la lettre de mon lecteur local.
La solution
Je pense que la solution la plus simple serait de créer un fichier de commandes pour le faire à votre place. Quelque chose s'appelle activatekey.cmd
comme ceci:
REM switch to the directory containing this script
for %%a in (%0) do cd /D %%~da%%~pa
cd PuTTY
pageant.exe davids.ppk
Placez le fichier activatekey.cmd
sur votre clé USB, puis remplacez le autorun.inf
par:
[AutoRun]
shell\pageant=Activate SSH Key
shell\pageant\command=activatekey.cmd
Autres conseils
Il semble qu'il soit lu "" Path" " variable système. :( Vous pouvez ajouter le lecteur au chemin, mais le problème est d’obtenir la lettre de lecteur.: - (
Mise à jour 1: vous pouvez obtenir la lettre de lecteur à l'aide d'un script VB.
Mise à jour 2: Oui, je pense que vous pouvez le faire. Consultez cette page .
Mise à jour 3: j'ai testé le script. Cela fonctionne très 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
Utilisez une méthode de vérification d’existence de fichier pour différencier plusieurs lecteurs USB.