質問

このエントリを autorun.inf を介してUSBスティックのコンテキストメニューに追加しました:

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

これを適切に機能させる方法はありますか?ドライブ文字を渡すか、エクスプローラを使用してスティックを作業ディレクトリとして使用できるようにする必要があると思いますが、方法はわかりません。外出先でスティックを使用したいので、ローカルドライブ文字をハードコーディングすることは避けたいです。

役に立ちましたか?

解決

最も簡単な解決策は、これを行うためのバッチファイルを作成することだと思います。次のような activatekey.cmd という名前の何か:

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

cd PuTTY
pageant.exe davids.ppk

USBスティックに activatekey.cmd ファイルを配置し、 autorun.inf を次のように変更します。

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

他のヒント

" Path"のようです。システム変数。 :(ドライブをパスに追加できますが、ドライブ文字を取得することが問題です。:-(

更新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