arrays - Powershell 哈希表分组

标签 arrays powershell active-directory hashtable

我有如下 CSV:

location,id
loc1,1234
loc1,1235
loc1,1236

运行 $a = Import-CSV C:\File.csv |组对象“位置”我得到以下输出:

Count  Name    Group
-----  ----    -----
3      loc1    {@{location=loc1; id=1234}, @{location=loc1; id=1235), @{location=loc1, id=1236}}

我想将所有 ID 添加到一个组中(使用 Add-QADGroupMember),但我不知道如何为 $loc1 获取一组 ID。它似乎正确地对它们进行了分组,但我似乎无法将输出解析为一个组。例如 $loc1 = 1234,1235,1236 我可以循环。

如有任何建议,我们将不胜感激!

最佳答案

Group-Object 不能很好地处理哈希表,因为键不是真正的属性。

假设:

$csv = Import-CSV C:\File.csv

你应该可以做到,例如:

$ids = $csv | %{ $_.id }

获取 ID 值的数组。您可能希望通过 Get-Unique 获取位置。

如果您想快速获取单个 ID 的位置:

$location = $csv | ?{ $_.id -eq 42 } | %{ $_.location }

如果您想快速获取单个位置的所有 ID 的数组(我认为这就是您想要的):

$loc1 = $csv | ?{ $_.location -eq 'loc1' }

作为引用,如果您想获得一个将每个位置映射到 ID 数组的哈希表:

$groups = $csv | %{ $_.location } | &{
    begin
    {
        $hash = @{}
    }
    process
    {
        $location = $_.location
        $hash[$location] = $csv | ?{ $_.location -eq $location }
    }
    end
    {
        $hash
    }
}

关于arrays - Powershell 哈希表分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17758330/

相关文章:

arrays - VBA:创建类模块数组

html - 如何使用 PowerShell 或 C# 将网页保存到 HTML 文件中?

powershell - 如何修复@{DisplayName=Firstname Lastname}

c# - MVC3 应用程序中的多个 Active Directory 查找

javascript - 将两个对象数组合并在一起 es6

c - 在 C 中从数组中添加大整数导致无输出

powershell - 如何设置动态参数的默认值?

C# 测试 null

active-directory - Active Directory 中保存加密密码的属性是什么?

arrays - 将带有文本字段的 CSV 扫描到 Swift 数组中