正在取消绑定带有PowerShell的BizTalk业务流程



使用PowerShell解除编排绑定的最干净方法是什么?

我想要一个在32位和64位平台上都能工作的东西。

我知道我可以加载并使用Microsoft.BizTalk.ExplorerOM程序集(用类似"Start-Job-RunAs32"的东西强制32位模式),并执行类似于此处解释的操作:http://msdn.microsoft.com/en-us/library/dd792703(v=bts.10).aspx

但我想找到更好的。

我看到您链接的示例脚本正在从GAC:加载此DLL

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

我不熟悉这个程序集,但如果它在GAC中预编译为x86,那么你需要用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:WINDOWSsyswow64windowspowershellv1.0powershell.exe" -ArgumentList "-file", $Invocation.MyCommand.Path
        exit 
    } 
    
  3. 告诉用户他们需要使用32位PowerShell重新启动脚本并退出

最新更新