문제

일부 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 \ groupshare \ 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) 부분을 다시 실행하면 성공적으로 완료됩니다.

처음에는 이것이 이것이이 도메인 컨트롤러 (2003 년과 2008 년 R2 중 4 명)와 직접 관련이 있다고 생각했지만 현지 폴더에서 잘 작동 한 사실은 흥미 롭거나 성가시는 것입니다.

로컬 폴더의 코드를 실행 한 다음 네트워크 폴더를 실행하는 동안 Wireshark 추적을 수행했습니다. 주요 차이점은 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). 수면 / 기다리고 싶습니까? IE, SID가있는 경우에도 ACL을 설정하십시오. 무효로?
  2. EMC Celerra가 문제가있는 경우 (나는 그것이 가정)이 있다면, 그 길을 강요 할 수 있습니다. 'SID 캐시'또는 무엇이든지 무엇이든지 업데이트 할 수 있습니까?
  3. 나는 읽기 다양한 기사 이 문제에 대해 그러나 효과적인 해결책을 갖는 것처럼 보이지만 (또는 저를 위해 일하십시오)

    도움을 주셔서 감사합니다.

    rhys.

도움이 되었습니까?

해결책 2

그것을 알아 냈습니다!

EMC Celerra NAS에서 acl.mappingerroraction 을 수정했습니다.

가 0으로 설정되어 1로 업데이트되었습니다.

server_param server_2 -facility CIFS -modify acl.mappingerraction - Value 1

이제 새로 생성 된 보안 그룹을 네트워크 공유의 폴더의 ACL에 설정하는 데 문제가 없습니다 (지연 없음).


정보 : acl.mappingerroraction

ACL 설정에서 보안 사용자 및 그룹 식별자 (SID / UID / GID) 간의 알 수없는 매핑에 대한 규칙을 정의합니다.

두 종류의 오류가 발생할 수 있습니다. ACL에 설정된 SID는 사용중인 도메인 컨트롤러가 알 수 없습니다. 사용자 이름은 아직 UID / GID에 매핑되지 않았습니다.

비트 목록은 4 개의 바이너리 비트 (비트 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


는 NAS에 대한 기본 CIFS / ACL 설정에 대해 더 많이 이해할 수 있도록 충분히 분명 해 보입니다.

rhys.

다른 팁

문제가 다른 작업을 차단하기 위해 캐시를 업데이트하는 데 필요한 지연 일뿐입니다. 스크립트는 백그라운드 작업으로 해당 배송하고 주요 스크립트가 다른 것들로 이동할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top