【问题标题】:Remote execution of PowerShell script on BizTalk servers在 BizTalk 服务器上远程执行 PowerShell 脚本
【发布时间】:2017-07-06 03:22:54
【问题描述】:

我正在尝试运行 PowerShell 脚本以从我的本地计算机返回 BizTalk 服务器上的主机实例的状态。当我从 BizTalk 服务器尝试此脚本时,我能够获取信息,但是我无法使用调用命令运行该脚本。ps 远程处理已启用,因为我可以使用调用命令运行基本写入主机。当我远程运行它时没有显示结果。我使用的脚本和我得到的输出如下。

Invoke-command -ComputerName XXXXXXXXXXXXXX -ScriptBlock{
write-host "HELLO"
Write-Host "`nHost Instance Information ("$hostInstances.Count")" -fore DarkGray

foreach ($hostInstance in $hostInstances) {
    switch ($hostInstance.servicestate) {
        1 { $hostInstanceState = "Stopped" }
        2 { $hostInstanceState = "Start pending" }
        3 { $hostInstanceState = "Stop pending" }
        4 { $hostInstanceState = "Running" }
        5 { $hostInstanceState = "Continue pending" }
        6 { $hostInstanceState = "Pause pending" }
        7 { $hostInstanceState = "Paused" }
        8 { $hostInstanceState = "Unknown" }
    }
    switch ($hostInstance.HostType) {
        1 { $hostInstanceType = "In-process" }
        2 { $hostInstanceType = "Isolated" }
    }
    if ($hostInstanceState -eq "Running") {
        Write-Host $hostInstance.hostname "($hostInstanceType)" "- "  -NoNewline
        Write-Host $hostInstanceState -fore green
    }
    elseif ($hostInstanceState -eq "Stopped") {
            if ($hostInstance.IsDisabled -eq $true ) {
                Write-Host $hostInstance.hostname "($hostInstanceType)" "- " -NoNewline
                Write-Host $hostInstanceState "(Disabled)" -fore red
            }
            else {
                Write-Host $hostInstance.hostname "($hostInstanceType)" "- " -NoNewline
                Write-Host $hostInstanceState -fore Red
            }
    }
    else {
        if ($hostInstanceType -eq "In-process") {
            Write-Host $hostInstance.hostname "($hostInstanceType)" "- " -NoNewline
            Write-Host $hostInstanceState "(Disabled:$($hostInstance.IsDisabled))" -fore DarkYellow
        }
        else {
            Write-Host $hostInstance.hostname "($hostInstanceType)"
        }
    }
}
}

输出是:

PS C:\windows\system32> C:\Users\SRamadugu\Desktop\bizzzzz.ps1

你好

主机实例信息 ( )

()

跟踪主机

【问题讨论】:

  • 您为 BizTalk 特定命令使用什么 powershell 库?是否有任何选项可以告诉它 BizTalk 主机名?

标签: biztalk


【解决方案1】:

您是否在 BizTalk 服务器上启用了 Powershell 远程命令?

Powershell Remoting

【讨论】:

    【解决方案2】:

    您必须在远程导入模块 BizTalkFactory.PowerShell.Extensions.dll:

    Invoke-command -ComputerName XXXXXXXXXXXXXX -ScriptBlock {
       Import-Module $remoteBizTalkPowerShellExtensionsPath -force
    ...
    

    【讨论】:

    • 这是否支持 biztalk 2010。我在我的 biztalk 中没有看到该模块。如果没有,我如何获得该模块
    • 此扩展是支持 BizTalk 2010 的 BizTalk Server PowerShell 提供程序的一部分(您可以从这里下载 blog.jeroenmaes.eu/2014/06/…)。如果您想使用 WMI 对象,您必须包含代码以获取远程脚本中的 WMI 对象 $hostInstances = Get-WmiObject MSBTS_HostInstance -namespace root\MicrosoftBizTalkServer -ErrorAction Stop
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-16
    相关资源
    最近更新 更多