【发布时间】:2020-04-26 02:48:35
【问题描述】:
我正在处理 SCCM 交付的 App-V 连接组的问题。有时,它会向客户端提供多个(重复的)连接组,并且应用程序无法正常运行。
我在用户上下文中运行 get-appvclientconnectiongroups 并且存在重复项,将名称、组 ID 和版本 ID 导出到 CSV。
然后我使用提升的 Powershell 会话导入它(因为我需要管理员权限才能删除连接组)。
所以 CSV 标头是
名称、组 ID、版本 ID
重复只存在于名称标题中
例如
名称、组 ID、版本 ID
Adobe_Reader, 123, 456
Adobe_Reader, 456, 789
Adobe_Reader, 111, 555
记事本,333,222
记事本,111,444
接收者,444,777
接收者,123,999
我想做的是,对于每个重复的名称抓取,要在remove-appvclientconnectiongroup 中使用的组 ID 和版本 ID。但是 - 我不希望对每个条目都执行此操作 - 我想在每个名称左侧有一个时停止(即当名称在列表中变得唯一时)。
所以最终列表将是:
Adobe_Reader, 111, 555
记事本,111,444
接收者,123,999
这些是我们不想通过 cmdlet 运行的那些
有什么想法吗?道歉,如果这没有任何意义! 我一直在玩数组,但进展不快。
【问题讨论】:
-
一种或另一种方式,您将需要两个数组。见@Frode F.answer here
-
不是一个解决方案,但希望能让你朝着正确的方向前进:$list = Import-Csv CSVFile.csv $app = "" $list | ForEach-Object { if ($_.Name -eq $app) { Write-Host "Remove" + $_.Name $_.'Group ID' } else { $app = $_.Name } }
标签: arrays list powershell