Если вы хотите добавить дополнительные списки ACL вместо их замены, вам придется изменить целевой ACL перед его настройкой.
Вот как я могу настроить его, чтобы протестировать его перед его попыткойживые акции:
# Make folders and shares on the machine you'd like to test on
New-Item -Path C:\Users\TestUser\Documents\Share1 -Type Directory -Force
New-Item -Path C:\Users\TestUser\Documents\Share2 -Type Directory -Force
New-SmbShare -Path "C:\Users\TestUser\Documents\Share1" -Name SourceShare
New-SmbShare -Path "C:\Users\TestUser\Documents\Share2" -Name DestinationShare
Теперь потратьте немного времени, чтобы вручную внести изменения в списки ACL для общих ресурсов, чтобы вы могли определить, работает ли он при копировании из источника в место назначения.Затем продолжите ниже:
# Set network share path variables
$SourceShare = "\\GLaDOS\SourceShare"
$DestinationShare = "\\GLaDOS\DestinationShare"
# Set ACL variables
$SourceAcl = Get-Acl $SourceShare
$DestinationAcl = Get-Acl $DestinationShare
# Add all the source ACL's to the destination ACL
$SourceAcl.Access | foreach {$DestinationAcl.AddAccessRule($_)}
# Invoke the command on the computer using local path since network path does not seem to work
Invoke-Command -ComputerName GLaDOS -ScriptBlock {$LocalPath = (Get-SmbShare -Name DestinationShare).Path ; Set-Acl $LocalPath $Using:DestinationAcl}
Очевидно, что вы захотите заменить TestUser и GLaDOS на имя пользователя и имя компьютера соответственно.
PS Прежде чем использовать Invoke-Command
, я попробовал меньшесложный вариант и получил ошибку аутентификации:
PS C:\> Set-Acl $DestinationShare $DestinationAcl
Set-Acl : Attempted to perform an unauthorized operation.
Все еще не выяснил, что.У меня должны быть все необходимые разрешения.