如何从 Wow64 下运行的 vb 脚本启动以 64 位模式运行的 Vb 脚本
我有一个 VB 脚本被迫在 Wow64 模式下运行。我想让它以本机 64 位模式启动另一个脚本或自身。有办法做到这一点吗?
初始脚本是通过显式调用 cscript.exe 来调用的(不确定这是否有影响)
谢谢
I have a VB script that's being forced to run in Wow64 mode. I'd like to have it start either another script, or itself, in native 64 bit mode. Is there anyway to do that?
The initial script is being called by an explicit call to cscript.exe (not sure if this makes a difference or not)
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
显然它非常简单。
在 Windows Vista 及更高版本中,C:\Windows\Sysnative 中有一个别名文件夹。如果您调用它,它不会重定向到 c:\windows\SysWow64 32 位文件夹,但会强制调用本机 64 位可执行文件
http://msdn.microsoft.com/en-us/library/aa384187(VS.85).aspx
因此,您可以运行通过调用 %windir%\Sysnative\cscript.exe,然后提供脚本名称作为参数,从以 wow64 模式运行的 vbscript 获取 64 位模式的 vbscript。
但是,这仅适用于 Windows Vista 或更高版本。有一个修补程序可以在 Windows XP/2003 中启用此 Sysnative 文件夹
http://support.microsoft.com/ KB/942589
Apparently its pretty simple.
In Windows Vista and newer there is an alias folder at C:\Windows\Sysnative. If you call it it will not redirect to the c:\windows\SysWow64 32 bit folder but will force the native 64 bit executables to be called
http://msdn.microsoft.com/en-us/library/aa384187(VS.85).aspx
Therefore, you can run a vbscript in 64 bit mode from a vbscript running in wow64 mode by calling %windir%\Sysnative\cscript.exe and then providing the name of your script as a parameter.
However, this only works in Windows Vista or newer. There is a hotfix which can enable this Sysnative folder in Windows XP/2003
http://support.microsoft.com/kb/942589
将以下代码放在脚本顶部以检测操作系统是否为 64 位,然后以 32 位模式重新运行
Place the following code at the top of your script to detect if the OS is 64bit then re-run in 32bit mode