0

Linux では、winexe を使用してレジストリ キーの値を取得する必要があります。

reg キーへのパスにスペースが含まれています。

私はこのコマンドを使用します:

/usr/bin/winexe -U domain/user%"password" //host 'REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Antimalware\Signature Updates" /v ScheduleDay'

単純な引用符、二重引用符、それらの両方を組み合わせて試しましたが、キーが無効であるというメッセージが表示され続けます。

Windowsでこれを試してみましたが、動作します:

reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Antimalware\Signature Updates" /v ScheduleDay

winexe を使用して bash のスペースを正しく処理するにはどうすればよいですか?

4

2 に答える 2

0

私は別の問題に惑わされました。

私のwinexeは、64ビットのリモートシステム(Windowsサーバー2003)で32ビットのreg.exeを実行している32ビットのアプリケーションです。

このコンテキストでは、キー "HKEY_LOCAL_MACHINE\SOFTWARE" がリモート システムの HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node キーを黙って指しています。

これは、Windows のレジストリ リダイレクタが原因です。

http://msdn.microsoft.com/en-us/library/windows/desktop/aa384232%28v=vs.85%29.aspx

このリダイレクトを回避するには、次のように 64 ビットの reg.exe を強制的に使用する必要がありました。

/usr/bin/winexe -U domain/login%"password" //host '**cmd /C %WINDIR%\sysnative\reg.exe** "QUERY" "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Antimalware\Signature Updates"'
于 2013-06-12T14:07:33.510 に答える
0

次のように、フォルダーをスペースで二重引用符で囲んでみてください。

/usr/bin/winexe -U domain/user%"password" //host 'REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\"Microsoft Antimalware"\"Signature Updates"" /v ScheduleDay'

うまくいくかもしれませんが、わかりません。エラー出力を正確に投稿していただけますか?

編集:これを試してください:

/usr/bin/winexe -U domain/user%"password" //host '"REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Antimalware\Signature Updates" /v ScheduleDay"'

スペースが問題であることに注意してください。何かが成功するまで、コマンドを二重引用符で囲んでみてください。失敗した場合は、エラー出力をもう一度教えてください。

于 2013-05-29T20:38:27.957 に答える