ForEach l oop оставляет мою переменную пустой - PullRequest
0 голосов
/ 16 апреля 2020

Полностью новичок в Powershell, поэтому я заранее извиняюсь за вероятную простую задачу для большинства в этой группе.

$File = Get-ChildItem "C:\location"
$ACLs= foreach ($item in $File) {get-acl $item.FullName}
$foldernames = $acls.pschildname
$ACLNames = $acls.Access.IdentityReference

$ACLNamesNew = foreach ($ACLName in $ACLNames) {
   $ACLNameString = $ACLname.Value.ToString()
   $ACLNameFormatted = $ACLNameString.Split("\")[0]
}

Конечная цель - взять строку, обрезать только имена доменов / групп из строку, вытяните только уникальные значения и напишите, что осталось в переменную $ ACLNames. Даже не пытался отфильтровать уникальность, так как даже вышеприведенное оставляет $ ACLNamesNew пустым. Швы foreach звучат в моем тестировании, но не записывают значения в переменную, как я ожидал.

1 Ответ

2 голосов
/ 16 апреля 2020

Если вы хотите собрать результат с oop, вы должны вывести что-то внутри вашего l oop. Этого должно быть достаточно .. если я правильно вас понял

$fileList = Get-ChildItem 'C:\location'
$ACLList = foreach ($file in $fileList) { get-acl $file.FullName }
$ACLNameList = $ACLList.Access.IdentityReference

$ACLNameNewList = foreach ($ACLName in $ACLNameList) {
    $ACLname.Value.ToString().Split("\")[0]
}
$ACLNameNewList
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...