Set-Acl не работает должным образом с PowerShell v5 - PullRequest
0 голосов
/ 15 января 2020

долгое время слушатель, впервые звонящий ? Я пытаюсь с небольшим успехом установить параметры папки, используя PowerShell. Я начал с того, что следовал инструкциям, указанным на этой странице. https://blog.netwrix.com/2018/04/18/how-to-manage-file-system-acls-with-powershell-scripts/ Я также прочитал как можно больше постов, которые я могу найти в Stackoverflow, но, похоже, у меня не возникает та же проблема, что и у других. Итак, для начала вот код, который я использую

$myPath = 'C:\inetpub\website'
# get actual Acl entry
$myAcl = Get-Acl "$myPath"
$myAclEntry = "NT AUTHORITY\NETWORK SERVICE","FullControl","Allow"
$myAccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule($myAclEntry)
# prepare new Acl
$myAcl.SetAccessRule($myAccessRule)
$myAcl | Set-Acl "$MyPath"
# check if added entry present
Get-Acl "$myPath" | fl

В результате пользователь добавляется в папку, как вы можете видеть ниже, но ни одно из фактических разрешений не установлено. снимок экрана с разрешениями для папок

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

Get-Acl "$ myPath" | fl дает следующий результат

Path   : Microsoft.PowerShell.Core\FileSystem::C:\inetpub\website
Owner  : BUILTIN\Administrators
Group  : DESKTOP-UKROSU8\None
Access : NT AUTHORITY\NETWORK SERVICE Allow  FullControl
         NT SERVICE\TrustedInstaller Allow  FullControl
         NT SERVICE\TrustedInstaller Allow  268435456
         NT AUTHORITY\SYSTEM Allow  FullControl
         NT AUTHORITY\SYSTEM Allow  268435456
         BUILTIN\Administrators Allow  FullControl
         BUILTIN\Administrators Allow  268435456
         BUILTIN\Users Allow  ReadAndExecute, Synchronize
         BUILTIN\Users Allow  -1610612736
         CREATOR OWNER Allow  268435456
Audit  : 
Sddl   : O:BAG:S-1-5-21-3999251487-2837792945-2014217647-513D:AI(A;;FA;;;NS)(A;ID;FA;;;S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464)(A;OICIIOID;GA;;;S-1-5-80-956008885-3418
         522649-1831038044-1853292631-2271478464)(A;ID;FA;;;SY)(A;OICIIOID;GA;;;SY)(A;ID;FA;;;BA)(A;OICIIOID;GA;;;BA)(A;ID;0x1200a9;;;BU)(A;OICIIOID;GXGR;;;BU)(A;OICIIOID;GA;;;CO)

Обратите внимание, что я делаю это на виртуальной машине Windows 10 для целей тестирования, поэтому те из вас, кто чувствует необходимость сказать мне, что я рискую публиковать На выходе Get-Acl я думаю, что риск в этом случае минимален.

Я прочитал, что эта проблема может быть вызвана усечением параметра домена «NT AUTHORITY», и что он может иметь значения для поиска пользователя в первую очередь. Но мне еще предстоит решить, как это сделать в PowerShell. Любые советы будут с благодарностью.

1 Ответ

0 голосов
/ 15 января 2020

Насколько я знаю, разрешение установлено. У меня никогда не было проблем с этим, и я много делал. Он установил специальное разрешение (вы можете прокрутить вниз на своем скриншоте, чтобы увидеть, что флажок установлен).

Если вы нажмете на скриншоте заранее, вы увидите, что он имеет полный контроль над этим каталогом. И в вашем get-acl вы также видите, что он имеет полный контроль над этим каталогом.

В Windows Я бы не стал слишком доверять GUI. Если PowerShell get-acl говорит, что он имеет полный контроль, он должен иметь полный контроль.

Здесь в качестве примера я сделал то же самое с Guest / Gast (это на немецком языке, но это не должно иметь большого значения)

Permission overview

  1. Изображение слева такое же, как вы нам показали. Гость не имеет разрешения, за исключением специального набора разрешений.

  2. Если вы нажмете кнопку продвижения (Erweitert), вы увидите картинку в правом верхнем углу. Как видите, Гость имеет здесь FullControl (Vollzugriff).

  3. Если мы нажмем на Edit (Bearbeiten), вы увидите изображение в правом нижнем углу. Как вы видите здесь, каждый флажок отмечен, как и предполагалось.

Я не уверен, почему Первое окно не обновляется или, скорее, установлены только специальные разрешения, но по моему опыту windows первое windows не следует доверять так сильно, как 2-й имеет больше деталей и информации, а также больше возможностей для настройки.

Для вашего вопроса: он работает, что вы делаете, но вы не можете увидеть его в первом окне. Почему? Не уверен, но это Windows ... Я бы доверял команде get-acl и второму окну.

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