2010-10-16 5 views
0

J'essaie de faire un xcopy/o équivalent pour copier un dossier modèle avec des sous-répertoires qui contiennent leur propre acl approprié pour créer un nouveau répertoire cible avec les mêmes sous-répertoires et leurs respectifs acl dans un environnement de serveur Windows 2008.powershell: modèle de répertoire xcopy acl vers un nouveau dossier

par exemple ..

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

targetdir 
- sql 
- pm 
- dev 

à chaque subdir ayant la même acl

ici est ce que je suis venu avec jusqu'à

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

Comment puis-je modifier ce donc il inclut l'héritage et copie l'acl de templatedir? Actuellement, il ne fait que les sous-dossiers. merci d'avance

+0

robocopy? (En particulier, voir l'option/copy où vous pouvez spécifier quels attributs seront copiés.) – OldFart

Répondre

0

dir est un alias pour Get-ChildItem donc il renverra tous les éléments "enfant" dans le répertoire modèle mais pas le répertoire lui-même. Pour copier les ACLs pour le modèle dir ajouter cette commande par exemple:

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

En ce qui concerne la mise en place d'héritage, ce serait beaucoup plus facile l'utilisation icacls.exe:

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

Run icacls /? pour voir l'aide sur cet utilitaire Windows .

Questions connexes