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)"
Другие вопросы по тегам