1

我希望 powershell 比较一些包含服务、状态和计算机名的 XML 文件。这包括输出中的所有这些,但仅使用名称和状态进行比较。想法是得到这样的输出:

Name Status SideIndicator PSComputername ---- ------ ------------- -------------- Appinfo Running <=
Appinfo Stopped =>
AudioEndpointBuilder Stopped =>
AudioEndpointBuilder Running <=

如您所见,该表看起来不错,但不包括计算机名...有人有想法可以帮忙吗?这就是代码的样子。

$WBService1 = Invoke-Command  $WB1 -Credential ($WBCred) -ScriptBlock {Get-      Service} |
    Select-Object Name, Status, DisplayName, PSComputerName |
    Sort-Object Name
 $WBService2 = Invoke-Command  $WB2 -Credential ($WBCred) -ScriptBlock {Get-Service} |
    Select-Object Name, Status, DisplayName, PSComputerName |
        Sort-Object Name
$WBService1 | Export-Clixml $FileOutput\WBService1.xml
$WBService2 | Export-Clixml $FileOutput\WBService2.xml
$Service1 = Import-Clixml $FileOutput\WBService1.xml
$Service2 = Import-Clixml $FileOutput\WBService2.xml
Compare-Object $Service1 $Service2 -Property Name, Status | Sort-Object Name | Format-     Table -AutoSize Name, Status, Sideindicator, PSComputername
4

1 回答 1

2

您可以将 -Passthru 添加到 Compare-Object 以获取额外的字段:

Compare-Object $Service1 $Service2 -Property Name, Status -Passthru

例子:

PS> (compare $a $b -property name,status -PassThru |sort name)[0] |ft -a name,status,sideindicator,pscomputername

Name                      Status  SideIndicator PSComputerName
----                      ------  ------------- --------------
AdobeFlashPlayerUpdateSvc Stopped <=            adil-win8

我只是显示 1 以节省空间。

于 2014-05-15T19:05:52.597 回答