powershell: шаблон каталога xcopy acl в новую папку - PullRequest
0 голосов
/ 16 октября 2010

Я пытаюсь сделать эквивалент xcopy / o, чтобы скопировать папку шаблонов с подкаталогами, которые содержат свои собственные соответствующие acl, для создания нового целевого каталога с такими же подкаталогами и их соответствующим acl в среде сервера Windows 2008.

например ..

the template directory would be  templatedir
- sql 
- pm 
- dev 

targetdir  
- sql 
- pm 
- dev

с каждым поддиректором, имеющим одинаковый acl

вот что я придумал до сих пор

PS C:\> dir c:\templatefolder -recurse | where {$_.PSIsContainer} | foreach { 
$target= ($_.fullname).replace("C:\templatefolder","D:\targetfolder") 
  Get-Acl $_.Fullname | Set-Acl $target -whatif 
} 

как мне изменить это, чтобы оно включало наследование и копировало acl templatedir?в настоящее время он делает только подпапки.заранее спасибо

1 Ответ

0 голосов
/ 16 октября 2010

dir является псевдонимом для Get-ChildItem, поэтому он вернет все «дочерние» элементы в dir шаблона, но не сам dir. Чтобы скопировать ACL для шаблона dir, добавьте эту команду, например ::

PS C:\> Get-Acl C:\templatefolder | Set-Acl -path D:\targetfolder -whatif 

Что касается настройки наследования, было бы намного проще использовать icacls.exe:

C:\PS> icacls <name> /inheritance:e

Запустите icacls /?, чтобы увидеть справку по этой утилите Windows.

...