Вопрос

Я играю с кодом PowerShell для динамически генерирования групп безопасности AD, а затем примените их к папкам на долю сети, но имеющие проблемы с разрешением вновь созданной группы.

Рассмотрим это:

import-module activedirectory

for ($i = 0; $i -lt 10; $i++) {

  $group = New-ADGroup -Path "OU=Groups,OU=Department,DC=Domain,DC=Network" -Name "z-test-group-$i" -GroupScope DomainLocal -GroupCategory Security -PassThru
  $acl = Get-Acl C:\Temp
  $permission = $group.SID,"FullControl","Allow"
  $accessRule = New-Object System.Security.AccessControl.FileSystemAccessRule $permission
  $acl.SetAccessRule($accessRule)
  $acl | Set-Acl C:\Temp

}
.

Что работает нормально.

Однако, если я изменил папку в сетевую папку, например G: \ Temp, или \\ domain.network \ dfs \ guardshare \ temp, я получаю метод не удалось с неожиданным кодом ошибки 1337 '. .

Я устал с помощью setacl.exe и получил аналогичную ошибку:

C:\Temp\SetACL.exe -on "\\domani.network\dfs\GroupShare\Temp" -ot file -actn ace -ace "n:$GroupSID;p:full;s:y"

SetACL finished with error(s): 
SetACL error message: The call to SetNamedSecurityInfo () failed
Operating system error message: The security ID structure is invalid.
INFORMATION: Processing ACL of: <\\?\UNC\domain.network\dfs\GroupShare\Temp>
.

Если я жду скажем, от 10 до 20 секунд, и запустите часть Set-ACL (или Setacl.exe), еще раз, он успешно завершается.

Сначала я подумал, что это связано непосредственно к контроллерам домена (4 из них, которые представляют собой смесь 2003 и 2008 гг. R2), но тот факт, что он работал нормально, на местных папках интригует (и раздражает).

Я проводил прослушивающую трассировку во время выполнения кода в локальной папке, а затем сетевой папке. Основное отличие заключается в том, чтобы попытаться применить ACL в сетевую папку, я вижу поиски LDAP и (среди прочего) следующий ответ SMB:

NT Trans Response, FID: 0x0040, NT SET SECURITY DESC, Error: STATUS_INVALID_SID
.

Что я предполагаю, это то, что заставляет мою команду set-acl потерпеть неудачу.

Базовая сетевая файловая система является EMC Celerra 6.0.xx. Однако я очень незнакомый с этой технологией, однако из того, что я понимаю, он имеет какой-то кэш SID, который объяснил бы вышеуказанную ошибку (она пока не знает о новой группе, даже если реклама делает).

Так что я думаю, есть два вопроса:

  1. есть ли путь вокруг этого (PowerShell / C # ECT), который не Привлекайте сна / ждать? То есть установите ACL, хотя SID инвалид?
  2. Если Emc Celerra это проблема (предполагаю, что есть), есть ли То, как я могу заставить его обновить его «SID Cache» или что это может быть?
  3. У меня есть чтение Различные Статьи Об этом вопросе , но никто не имеет эффективного разрешения (или работать для меня).

    Спасибо за вашу помощь.

    Рис.

Это было полезно?

Решение 2

понять это!

Модифицировал acl.mappepracturaction на нашей EMC Celerra NAS.

был установлен на 0, обновил его до 1.

server_param server_2 -facility cifs -modify acl.mappeerraction -value 1

Теперь у нас нет проблем в настройке вновь созданной группы безопасности в ACL для папки на долю сети (без задержек).


<Сильная> информация: acl.mappeReproraction

Определяет правила неизвестного отображения между идентификаторами безопасности, пользователя и группы (SID / UID / GID) на настройках ACL.

могут возникнуть два вида ошибок: SID, установленный в ACL, неизвестен для используемых контроллеров домена. Имя пользователя еще не отображается с UID / GID.

Битовый список состоит из четырех двоичных битов (бита 0-3, справа налево). Каждый бит 1 при установленном; в противном случае 0.

Bit 0 (0001 or +1): Store unknown SID.
Bit 1 (0010 or +2): Store SID with no UNIX mapping.
Bit 2 (0100 or +4): Enable debug traces.
Bit 3 (1000 or +8): Do lookup only in cache (secmap or global SID cache or per connection SID cache).
.

Значения: 0 - 15 По умолчанию: 0


Кажется, достаточно очевидно, что я больше понимаю о базовых настройках CIFS / ACL на NAS, то я когда-либо хотел знать.

Рис.

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top