在BizTalk服务器上远程执行PowerShell脚本

在BizTalk服务器上远程执行PowerShell脚本,biztalk,Biztalk,我正在尝试运行PowerShell脚本,以从本地计算机返回BizTalk server上主机实例的状态。当我从BizTalk server尝试此脚本时,我能够获得信息,但是我无法使用invoke命令运行该脚本。ps远程处理已启用,因为我可以使用invoke命令运行基本写主机。远程运行时不会显示任何结果。下面是我使用的脚本和得到的输出 Invoke-command -ComputerName XXXXXXXXXXXXXX -ScriptBlock{ write-host "HELLO&q

我正在尝试运行PowerShell脚本,以从本地计算机返回BizTalk server上主机实例的状态。当我从BizTalk server尝试此脚本时,我能够获得信息,但是我无法使用invoke命令运行该脚本。ps远程处理已启用,因为我可以使用invoke命令运行基本写主机。远程运行时不会显示任何结果。下面是我使用的脚本和得到的输出

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\srama\Desktop\bizzzz.ps1

你好

主机实例信息()

()

跟踪主机


您是否在BizTalk server上启用了Powershell远程命令


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

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

您使用哪个powershell库来执行特定于BizTalk的命令?是否有选项告诉它BizTalk主机名?这是否支持BizTalk 2010。我在biztalk中没有看到该模块。如果没有,如何获取该模块此扩展是支持biztalk 2010的biztalk Server PowerShell提供程序(您可以从此处下载)的一部分。如果要使用WMI对象,必须在远程脚本$hostInstances=get-WmiObject MSBTS\U HostInstance-命名空间根目录\MicrosoftBizTalkServer-错误操作停止中包含获取WMI对象的代码