从PowerShell中的CSV文件导出服务器服务的结果



我正在尝试比较在9个服务器上运行的服务,这些服务都应该是同一设置,但当前不是那样。我决定创建一个将所有服务从PowerShell导出到CSV文件的脚本,因此我将服务器A与B,A到C,A到D等。

每个CSV文件包含以下列:名称,标题,状态,StartMode

我希望能够比较差异,并提出下面显示的小powershell脚本

$IWB06 = import-csv C:PS_TempPIN-VUHOIWB06_Services.csv
$IWB09 = import-csv C:PS_TempPIN-VUHOIWB09_Services.csv
Compare-Object -ReferenceObject $IWB06 -DifferenceObject $IWB09 -Property 'Unique ID', 'name', 'caption', 'state', 'startmode', 'comparrison' -PassThru -IncludeEqual |
    Format-Table -AutoSize

我唯一的问题是在PowerShell控制台上显示,但我无法将结果导出到CSV文件。

有关如何导出控制台中显示的内容到CSV文件

的任何建议

用以下内容替换最后一行:

$Results = Compare-Object -ReferenceObject $IWB06 -DifferenceObject $IWB09 -Property 'Unique ID', 'name', 'caption', 'state', 'startmode', 'comparrison' -PassThru -IncludeEqual
$Results | Export-Csv -NoTypeInformation -Encoding Unicode -Path C:tempMyResult.csv #Replace with your output csv destination

一次比较两个文件听起来很效率。为什么不将所有CSV组合到一个对象中,并用代表源的附加列组合。然后,您可以使用Group-Object进行总结。这样的东西:

$path = 'C:PS_Temp{0}'
(ls *.csv).Name | % {
    $file = $_
    Write-Host $_
    (Import-Csv ($path -f $_)).'Unique ID' | % {
        New-Object psobject -Property @{
            file = $file
            id = $_
        }
    }
} | Group-Object id | % {
    $_ | Add-Member -MemberType NoteProperty -Name Files -Value ($_.Group.file -Join '|') -PassThru 
} | Select Name, Files, Count

这是一个仅使用唯一ID,但您可以将其扩展到其他列。

的简单示例。

输出将是这样的:

Name Files                               Count
---- -----                               -----
3    PIN-VUHOIWB06.csv|PIN-VUHOIWB09.csv     2
4    PIN-VUHOIWB06.csv|PIN-VUHOIWB09.csv     2
5    PIN-VUHOIWB06.csv|PIN-VUHOIWB09.csv     2
6    PIN-VUHOIWB06.csv|PIN-VUHOIWB09.csv     2
7    PIN-VUHOIWB06.csv                       1
8    PIN-VUHOIWB06.csv                       1
9    PIN-VUHOIWB06.csv                       1
1    PIN-VUHOIWB09.csv                       1
2    PIN-VUHOIWB09.csv                       1

将其添加到您的代码:

$comparison = Compare-Object -ReferenceObject $IWB06 -DifferenceObject $IWB09 -Property 'Unique ID', 'name', 'caption', 'state', 'startmode', 'comparrison' -PassThru -IncludeEqual |

$comparison | Export-CSV -path $someFullPath

相关内容

  • 没有找到相关文章

最新更新