【问题标题】:Unbinding BizTalk orchestrations with PowerShell使用 PowerShell 取消绑定 BizTalk 业务流程
【发布时间】:2012-01-25 08:34:36
【问题描述】:

使用 PowerShell 解除业务流程绑定的最简洁方法是什么?

我想要一些可以在 32 位和 64 位平台上运行的东西。

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

但我想找到更好的东西。

【问题讨论】:

    标签: powershell biztalk


    【解决方案1】:

    我看到您链接的示例脚本正在从 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 重新启动您的脚本(如果您的脚本有参数,则效果不佳):

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

    【讨论】:

    • 这个回复真的回答了这个问题吗?
    • @SteveC 你为什么不这么认为?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多