2012-01-25 53 views

回答

1

我看你链接的示例脚本加载从GAC此DLL:

[System.reflection.Assembly]::LoadWithPartialName("Microsoft.BizTalk.ExplorerOM") 

我不熟悉这个组件,但如果它是预编译的x86在GAC中,那么你就需要使用32位PowerShell加载(在64位Windows系统上时)。在你的脚本,你可以做一个检查,看看有什么PowerShell进程位数是:

if ([IntPtr]::Size -eq 4) { # x86 } else { # x64 } 

如果你的脚本不正确的位数运行的有三件事我能想到的:

  1. 开始32正如你指出位后台作业
  2. 重新推出采用32位PowerShell的(如果你的脚本有PARAMS不能很好地工作)你的脚本:

    if (-not $correctBitness) { 
        Start-Process "C:\WINDOWS\syswow64\windowspowershell\v1.0\powershell.exe" -ArgumentList "-file", $Invocation.MyCommand.Path 
        exit 
    } 
    
  3. 告诉用户他们需要使用32位PowerShell重新启动脚本并退出。
+0

这是否反应其实回答这个问题? – SteveC

+0

@SteveC你为什么认为它不? –

相关问题