Как предоставить доступ к папкам доменного пользователя через Powershell?

Всем привет. Цель скрипта дать доступ к папке для определенного пользователя. Уже мучаюсь 2 дня. Разные варианты нашел. Но все выдает ошибку, типо не правильный аргумент и т.д.

Схема такая. Есть файлобменник ( папка Obmen ) . Дальше создается под папки. Общий путь к личной папки пользователя такой.

C:\Obmen\Sklad\Иванов Иван Иванович\Личное.

Хочется права дать таким способом что бы у пользователя на эти папки C:\Obmen\Sklad был доступ только для чтение.

........Иванов Иван Иванович\Личное к этим папка полный доступ и кроме него у других пользователей кроме чтение не было доступа.

$newuser = (get-eventlog -log Security -InstanceID 4720 -newest 1).ReplacementStrings[9]

mkdir C:\obmen\$newou\$newfolder\Личное

# Считываем текущие параметры ACL для нашей папки
$acl = Get-Acl C:\obmen\$newou\$newfolder\Личное
# Посмотрим полученный ACL
$acl | fl *

# Создаем набор разрешений, который мы назначим папке
$permission = “ADTEST0\$newuser”,”read,write",”containerinherit,objectinherit”,”none”,”allow”

# Смотрим текущие ACE
$acl.Access

# Создаем новый объект ACE на основе ранее записанных разрешений
$ace = new-object security.accesscontrol.filesystemaccessrule $permission

# Вносим сделанные изменения в исходный ACL
$acl.setaccessrule($ace)
# Назначаем ACL на выбранную папку
$acl | set-aclC:\obmen\$newou\$newfolder\Личное
  • Вопрос задан
  • 573 просмотра
Решения вопроса 1
hekkaaa
@hekkaaa
C#/.NET Developer
Привет.

Вот попробуй этот скрипт:

$a = Get-Acl -Path C:\Temp\TestPS
$fileSystemAccessRuleArgumentList 
# Тут Указываем пользователя
$identity = "NT AUTHORITY\Прошедшие проверку"
# тут доступ
$fileSystemRights = "Read"
$type = "Allow"
$fileSystemAccessRuleArgumentList = $identity, $fileSystemRights, $type
$fileSystemAccessRule = New-Object -TypeName System.Security.AccessControl.FileSystemAccessRule -ArgumentList $fileSystemAccessRuleArgumentList

$a.SetAccessRule($fileSystemAccessRule)
Set-Acl -Path C:\Temp\TestPS -AclObject $a


Взял с офф мануала и проверил на ноуте своем. Вроде работает.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
SignFinder
@SignFinder
Wintel\Unix Engineer\DevOps
Используйте сторонние модули, чтобы не мучаться.
https://github.com/raandree/NTFSSecurity
https://github.com/alphaleonis/AlphaFS

Либо эту стороннюю утилитку командной строки - она отлично в Powershell себя чувствует.
https://helgeklein.com/setacl/
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы