Возвращение строки функции в качестве параметра значения Add-Member в PowerShell - PullRequest
1 голос
/ 07 марта 2019

Я пытаюсь создать скрипт Powershell, который показывает разрешения для папки и членов групп разрешений.У меня есть функция «Get-Members», которая возвращает (в виде строки, разделенной запятыми) членов группы, которая отправила функцию в качестве аргумента.

Теперь я хотел бы знать, как я могуиспользуйте возвращаемую строку с параметром значения Add-Member.Как я могу использовать функцию с этим?Я попытался

Add-Member -MemberType NoteProperty -Name "Members" -Value Get-Members($_.IdentityReference) -PassThru

, но, похоже, он не работает.

Вот и все:

($root | get-acl).Access | Add-Member -MemberType NoteProperty -Name "Members" -Value Get-Members($_.IdentityReference) -PassThru  | Add-Member -MemberType NoteProperty -Name "Folder" -Value $($root.fullname).ToString()  -PassThru | select -Property Path, IdentityReference, FileSystemRights

А вот функция:

Function Get-Members {
    param( [string]$group )

    $xyz=$group
    if ($group -match '\\')
    {
        $xyz=$group -creplace '^[^\\]*\\', ''
    }

    $Group = [ADSI]"LDAP://cn=$xyz,ou=SecurityGroups,ou=Accounting,ou=Services,dc=CONTOSO,dc=ny,dc=local"

$Members = $Group.Member | ForEach-Object {[ADSI]"LDAP://$_"}

$combined = $Members | select -ExpandProperty name

$result= $combined -join ","

return $result

}

Как мне заставить это работать?

1 Ответ

0 голосов
/ 07 марта 2019

Ваши скобки неверны. Попробуйте это:

Add-Member -MemberType NoteProperty -Name "Members" -Value (Get-Members $_.IdentityReference) -PassThru

Что заставило бы сначала выполнить часть Get-Members и вернуть ее значения свойству -Value из-за квадратных скобок.

Кроме того, я бы порекомендовал вам выбрать другое имя вместо Get-Members, потому что оно слишком близко к очень известному Get-Member командлету.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...