在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
如何正确处理bash with winexe中的空格?
答案 0 :(得分: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"'
请注意,空格是问题,请尝试使用双引号命令,直到成功为止。如果失败,请再次告诉我们错误输出。
答案 1 :(得分:0)
我被另一个问题误导了。
我的winexe是一个32位应用程序,它在64位远程系统(Windows Server 2003)上运行32位reg.exe。
在此上下文中,键“HKEY_LOCAL_MACHINE \ SOFTWARE”默默指向我的远程系统的HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node Key。
这是由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"'