Автоматическое создание папки на общем ресурсе и назначение правильных разрешений - PullRequest
0 голосов
/ 13 декабря 2018

У меня есть это программное обеспечение, которое требует от каждого пользователя иметь личную папку, которую он может просматривать только в общей папке, как домашняя папка.Сейчас я работаю над этим сценарием, который выполняется каждый раз, когда пользователь входит в систему, и я хочу, чтобы этот сценарий проверял, есть ли уже папка с именем SAMaccount в общей папке, а если нет, он должен создать ее с правильнымpermissions.

Я совсем не силен в PowerShell и не могу идти дальше, у меня есть часть, где он проверяет это и назначает правильные разрешения для пользователя.Но и администраторам домена нужен полный контроль, а учетной записи службы нужны разрешения R & W.Есть ли кто-нибудь, кто может помочь мне еще с завершением сценария?Любые усилия и помощь приветствуются.

Текущий скрипт: путь странный из-за того, что я тестировал его на VMWare.

$Path = "\\Win-hnf1r0tnhgh\F\Scans\$($ENV:USERNAME)"

if (!(Test-Path -Path $Path)) {

    New-Item -Path $Path -ItemType Directory

    }

    $Acl = Get-Acl -Path $Path -ErrorAction 'Stop'
    $Acl.SetAccessRuleProtection($True, $True) > $null
    Set-Acl -Path $Path -AclObject $Acl -ErrorAction 'Stop'
    $Acl = Get-Acl -Path $Path
    $Acl.Access.Where{$_.IdentityReference -eq "BUILTIN\Users"}.ForEach{$Acl.RemoveAccessRule($_) > $null}
    $PermissionChange = [System.Security.AccessControl.FileSystemAccessRule]::new($ENV:USERNAME, 'Modify', "ContainerInherit,ObjectInherit", "None", "Allow")
    $Acl.AddAccessRule($PermissionChange) > $null
    Set-Acl -Path $Path -AclObject $Acl -ErrorAction 'Stop'

1 Ответ

0 голосов
/ 13 декабря 2018

Я считаю, что модификация ACL с использованием собственного PowerShell или даже .NET слишком сложна.

Вы можете использовать это, чтобы установить полный контроль с помощью одной строки:

ICACLS "$($Path)" /grant "DOMAINSHORTNAME\$($ENV:USERNAME):(OI)(CI)F" /T

Вы можете настроить ICACLS cmd так, как вам нужно, тонны примеров онлайн

Просто запуститекоманда несколько раз, по одному разу для каждой учетной записи, которой нужны права.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...