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

尝试用这样的空格双引号文件夹:

/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 回答
0

我被另一个问题误导了。

我的 winexe 是一个 32 位应用程序,它在 64 位远程系统(windows server 2003)上运行 32 位 reg.exe。

在这种情况下,键“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 回答