Как использовать 2 условия в одном цикле foreach - PullRequest
3 голосов
/ 17 июня 2019

У меня есть фрагмент сценария. Это дает мне массив с 2 свойствами: Account и AccessRights. Теперь я хочу построить цикл foreach, но мне также нужно сохранить второе значение в переменной для дальнейшего использования.

Так что, если я сделаю:

foreach ($id in $ACLFile.Account) {
    # do stuff
}

У меня есть только свойство учетной записи, сохраненное в $id. Но как я могу также получить значение AccessRights?

$ACLFile = GetNTFSAccess | select Account, AccessRights
$ACLGroup = $ACLFile | Group-Object Account
$Singles = $ACLGroup.Where({$_.Count -eq 1}).Group
$Duplicates = $ACLGroup.Where({$_.Count -gt 1})
$ItemizedDuplicates = $Duplicates | foreach {
    [PSCustomObject][ordered]@{
        "Account"=$_.Group.Account[0];
        "AccessRights" = $_.Group.AccessRights -join ", "
    }
}
@($ItemizedDuplicates, $Singles)

1 Ответ

4 голосов
/ 17 июня 2019

Перебирать объекты вместо одного свойства.

foreach ($acl in $ACLFile) {
    $id     = $acl.Account
    $access = $acl.AccessRights
    # ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...