Найти в Дзене
Антон Фелин

Добавление прав

Install-WindowsFeature -Name RSAT-AD-PowerShell -IncludeAllSubFeature # Скрипт для добавления NTFS прав к каждой папке - права даются доменному пользователю с именем папки # Укажите путь к целевому каталогу $targetPath = "C:\Your\Target\Directory" # Укажите домен (если не указать, будет использован текущий домен) $domain = "YOURDOMAIN" # или оставить пустым для текущего домена # Проверяем существование целевого каталога if (-not (Test-Path $targetPath)) { Write-Error "Целевой каталог не существует: $targetPath" exit 1 } # Получаем все подпапки в целевом каталоге $folders = Get-ChildItem -Path $targetPath -Directory foreach ($folder in $folders) { $folderPath = $folder.FullName $userName = $folder.Name $domainUserName = if ($domain) { "$domain\$userName" } else { $userName } Write-Host "Обработка папки: $folderPath (пользователь: $domainUserName)" try { # Пытаемся найти доменного пользователя через AD if ($domain) { $user = Get-ADUser -Identity $userName -Server $domain -ErrorAction

Install-WindowsFeature -Name RSAT-AD-PowerShell -IncludeAllSubFeature

# Скрипт для добавления NTFS прав к каждой папке - права даются доменному пользователю с именем папки

# Укажите путь к целевому каталогу

$targetPath = "C:\Your\Target\Directory"

# Укажите домен (если не указать, будет использован текущий домен)

$domain = "YOURDOMAIN" # или оставить пустым для текущего домена

# Проверяем существование целевого каталога

if (-not (Test-Path $targetPath)) {

Write-Error "Целевой каталог не существует: $targetPath"

exit 1

}

# Получаем все подпапки в целевом каталоге

$folders = Get-ChildItem -Path $targetPath -Directory

foreach ($folder in $folders) {

$folderPath = $folder.FullName

$userName = $folder.Name

$domainUserName = if ($domain) { "$domain\$userName" } else { $userName }

Write-Host "Обработка папки: $folderPath (пользователь: $domainUserName)"

try {

# Пытаемся найти доменного пользователя через AD

if ($domain) {

$user = Get-ADUser -Identity $userName -Server $domain -ErrorAction Stop

} else {

$user = Get-ADUser -Identity $userName -ErrorAction Stop

}

Write-Host " Доменный пользователь найден: $domainUserName"

# Получаем текущие права доступа

$acl = Get-Acl -Path $folderPath

# Создаем новое правило доступа

$accessRule = New-Object System.Security.AccessControl.FileSystemAccessRule(

$domainUserName,

"Modify", # Можно изменить на "FullControl", "Read", "Write" и т.д.

"ContainerInherit,ObjectInherit",

"None",

"Allow"

)

# Добавляем правило в ACL

$acl.AddAccessRule($accessRule)

# Применяем измененный ACL к папке

Set-Acl -Path $folderPath -AclObject $acl

Write-Host " ✓ Права успешно добавлены для $domainUserName на папку $folderPath" -ForegroundColor Green

} catch [Microsoft.ActiveDirectory.Management.ADIdentityNotFoundException] {

Write-Warning " Доменный пользователь $domainUserName не найден. Пропускаем папку $folderPath"

} catch {

Write-Error " Ошибка при обработке папки $folderPath : $($_.Exception.Message)"

}

}

Write-Host "Обработка завершена!" -ForegroundColor Cyan