1

我创建的脚本使用仅适用于 32 位版本的 powershell 的组件。

默认情况下,windows 使用 powershell x64 执行脚本,它会导致几个错误。

是一种在脚本开头设置值以强制 Windows 使用 powershellx86 而不是 x64 的方法吗?

例子:

using powershell(x86).exe

scriptblock

谢谢

4

2 回答 2

3

你不能只启动“powershell(x86).exe”文件吗?

%SystemRoot%\syswow64\WindowsPowerShell\v1.0\powershell.exe

/弗雷德里克

于 2013-03-07T12:10:35.047 回答
1

没有直接的方法可以做到这一点,但是有一种方法可以在 x64 主机中调用另一个 Powershell 主机实例,该实例也可能是 x86。$env:PROCESSOR_ARCHITECTURE将告诉您正在运行的 Powershell 主机版本。

只是一个草图,用凿子和砂纸完成。

function Execute-Scriptx86
{
    param(
    [Parameter(Mandatory=$True,Position=1)]
    [string]$ScriptFile
    )

    if($env:PROCESSOR_ARCHITECTURE -eq "AMD64")
    {
        $powershellx86 = $env:SystemRoot + "\syswow64\WindowsPowerShell\v1.0\powershell.exe"
        & $powershellx86 -File $ScriptFile
    }
    else
    {
        & $ScriptFile
    }
}
于 2013-03-07T16:34:12.190 回答