问题描述
我知道这是一个奇怪的问题,但我被锁定到第三方供应商,在目标64位Windows Server 2008 R2群集服务器上启动32位cmd.exe。从这里我想要启动一个64位PowerShell窗口并运行一个脚本。
I know it's a weird question but I am locked into a third party vendor which launches a 32-bit cmd.exe on a target 64-bit Windows Server 2008 R2 clustered server. From here I want to launch a 64-bit PowerShell window and run a script.
这是我的测试:
powershell.exeGet-Module -ListAvailable | Where-Object {$ _。name -eq'FailoverClusters'}
如果我从一个32位cmd.exe运行这里,我得到什么返回。如果我从64位cmd.exe运行我得到:
If I run this from a 32-bit cmd.exe I get nothing returned. If I run from a 64-bit cmd.exe I get:
ModuleType Name ExportedCommands
---------- ---- ----------------
Manifest FailoverClusters {}
对于从32位cmd shell调用64位PowerShell脚本,我可以做什么?
Any ideas on what I can do to invoke a 64-bit powershell script from a 32-bit cmd shell?
推荐答案
syswow64允许从64位代码运行32位系统可执行文件。
sysnative允许您从32位代码运行64位系统可执行文件。
syswow64 lets you run 32 bit system executables from 64 bit code.sysnative lets you run 64 bit system executables from 32 bit code.
因此,您需要运行:
%SystemRoot%\sysnative\WindowsPowerShell\v1.0\powershell.exe
%SystemRoot%\sysnative\WindowsPowerShell\v1.0\powershell.exe
这篇关于如何从32位cmd.exe启动64位powershell?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!