Powershell: применить владельца к нескольким файлам и папкам на имя пользователя
У нас есть сервер, на котором находится папка "Мои документы" для всех наших пользователей. Некоторые владельцы папок сменились на администратора. Я пытаюсь разработать сценарий PowerShell, который идет в корневой каталог моих документов каждого пользователя и применяет пользователя в качестве владельца для всех вложенных папок и файлов в нем. Это возможно?
У меня есть следующее из предыдущего скрипта, который пытался установить пользователю полные права доступа для каждой корневой папки моего документа:
$FolderPath = "E:\mydocuredir\"
$MyDocsMain = Get-ChildItem -Path $FolderPath -Directory
Get-ChildItem -Path $FolderPath -Directory | ForEach-Object{
$HomeFolders = Get-ChildItem $FolderPath $_.Name -Directory
$Path = $HomeFolders.FullName
$Acl = (Get-Item $Path).GetAccessControl('Access')
$Username = $_.Name
$Ar = New-Object System.Security.AccessControl.FileSystemAccessRule($Username, 'FullControl', 'ObjectInherit', 'InheritOnly', 'Allow')
$Acl.SetAccessRule($Ar)
Set-Acl -path $Path -AclObject $Acl
}
1 ответ
Во-первых, убедитесь, что разрешения для общих и корневых папок для перенаправленных папок соответствуют рекомендациям.
Я бы использовал модуль NTFSSecurity PS ( блог по его использованию). В этом модуле есть команды, которые гораздо проще понять, поскольку они следуют тому, как вы бы устанавливали разрешения через графический интерфейс.
$FolderPath = "E:\mydocuredir"
Get-ChildItem -Path $FolderPath -Directory | ForEach-Object{
Add-NTFSAccess -Path $_.FullName -Account "domain\$($_.Name)" -AccessRights FullControl -AppliesTo ThisFolderSubfoldersAndFiles
}
Чтобы установить владельца, замените Add-NTFSAccess
команда с:
Set-NTFSOwner -Path $_.FullName -Account "domain\$($_.Name)"