gpt4 book ai didi

powershell - 将两个 PSCustomObjects 合并为一个 - PowerShell

转载 作者:行者123 更新时间:2023-12-05 06:55:27 25 4
gpt4 key购买 nike

我需要 PowerShell 的帮助,以将两个输出或两个 PSCustomObjects 合并为一个。例如,

$services = Get-Service | Select Name, Starttype,Status
$processes = Get-Process | Select ID

我需要带表头的输出姓名、开始类型、状态、ID

我已经尝试创建 CSV 并加入它们,但问题是当服务的整个输出结束时进程 ID 开始。我需要它们并行。

其次,我尝试创建 PSCustomObjects 但没有成功。

请帮助我处理 PowerShell 代码。

我试图实现的实际代码。

**$exclusionItems = @()
$OasHighItems = @()
foreach($item in $items){
$exclusionItems += [PSCustomObject]@{
EXCLUSION_BY_NAME_OR_LOCATION = $item.EXCLUSION_BY_NAME_OR_LOCATION
EXCLUSION_EXCLUDE_SUBFOLDERS = $item.EXCLUSION_EXCLUDE_SUBFOLDERS
EXCLUSION_ON_READ= $item.EXCLUSION_ON_READ
}

}
foreach($oas in $oashigh){
$oashighItems += [PSCustomObject]@{
OAS_PROCESSES_LIST = $oas
}
}
$Array = @()
$Array = $exclusionItems,$oashighItems
$Array | Update-FirstObjectProperties | Export-Excel $ExcelParams -TableName Table -Show**

最佳答案

我假设您想通过名称连接两个对象,即将进程名称与服务名称相匹配。为此,您可以遍历所有进程和服务,仅保留服务名称等于进程名称的那些,并使用计算属性将结果合并到一个对象中:

$services = Get-Service;
Get-Process | ForEach-Object {$p = $_; $services |
Where-Object{$p.ProcessName -eq $_.Name} |
Select-Object Name,StartType,Status,@{n='ID';e={$p.ID}}}

我机器上的输出是:

Name                  StartType  Status    ID
---- --------- ------ --
CcmExec Automatic Running 14856
CmRcService Automatic Running 5748
FusionInventory-Agent Automatic Running 5996
IBMPMSVC Automatic Running 3540
IntelAudioService Automatic Running 6104
... and so on ...

关于powershell - 将两个 PSCustomObjects 合并为一个 - PowerShell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65341056/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com