serik1986
Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору попытался сделать вливание первого аргумента как $_.sid, та же ошибка ... вроде везде как и тут идет передача аргумента, на всякий случай опубликую все функции которые участвуют в проблемной цепочке... Код: function Get-Share { [CmdletBinding()] param( [Parameter(ValueFromPipeline)] [Microsoft.ActiveDirectory.Management.ADGroup[]] $Group ) BEGIN { $Root = 'E:\Shares\' } PROCESS { $path = Join-Path $root $_.Name $path } } function Update-Share { [CmdletBinding()] param( [Parameter(ValueFromPipeline)] [string]$Path, [Microsoft.ActiveDirectory.Management.ADGroup[]]$Group ) PROCESS { If ($false -eq (Test-Path $_)) { New-Item -Path $_ -Name $Group.Name -ItemType Directory } $path | Update-SharePermissions -Group $Group } } function Update-SharePermissions{ [CmdletBinding()] param( [Parameter(ValueFromPipeline)] [string]$Path, [Microsoft.ActiveDirectory.Management.ADGroup[]]$Group ) PROCESS { $acl = get-acl $Path $isProtected = $true $preserveInheritance = $false $acl.SetAccessRuleProtection($isProtected, $preserveInheritance) Set-Acl -Path $Path -AclObject $acl $Ar = New-Object system.security.accesscontrol.filesystemaccessrule($_.sid,"FullControl", "ContainerInherit, ObjectInherit", "None", "Allow") $Acl.SetAccessRule($Ar) Set-Acl -Path $Path -AclObject $Acl } } Get-Group -PipelineVariable Group | Get-Share | Update-Share -Group $Group | |