新しいADGROUP、SET-ACLおよびネットワークフォルダに関する問題
-
14-12-2019 - |
質問
いくつかのPowerShellコードで遊んで、広告セキュリティグループを動的に生成してから、ネットワーク共有のフォルダにそれらを適用しますが、新しく作成されたグループの解決に関する問題がある。
これを考慮してください:
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
.
どちらを想定しているかがmy set-aclコマンドを失敗させる原因となっています。
基礎となるネットワークファイルシステムはEMC Celerra 6.0.xxです。私はこの技術にとって非常に不慣れですが、私がそれが上記のエラーを説明するいくつかの種類のSIDキャッシュを保持しているものから、それは上記のエラーを説明するでしょう(それはまだ広告であっても新しいグループについて知らない)。
だから私は2つの質問があると思います:
- これを回避する方法はありません(PowerShell / C#Ect) 寝ている/待っていますか?すなわち、SIDがあるとしてもACLを設定します 無効?
- EMC Celerraが問題である場合(私はそれがあると仮定されています) 私はそれがその「SIDキャッシュ」またはそれが何でもかを更新するように強制することができる?
私は 様々な
あなたの助けをありがとう。
Rhys。
解決 2
はそれを考え出した!
acl.mappany をEMC Celerra NASに修飾しました。
は0に設定され、1に更新されました。
server_param server_2 - facility cifs -modify acl.MappanyRoreraction -value 1
ネットワーク共有のフォルダのACLに新しく作成されたセキュリティグループを設定する際には問題がありません(遅延なし)。
情報:ACL.MappanyRoreraction
ACL設定でのセキュリティ、ユーザー、およびグループ識別子(SID / UID / GID)間の未知のマッピングの規則を定義します。
2種類のエラーが発生する可能性があります。 ACLに設定されているSIDは、使用されているドメインコントローラには不明です。 ユーザー名はまだUID / GIDにマッピングされていません。
ビットリストは4つの2進数ビット(ビット0から3、左から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。
他のヒント
問題が他の作業をブロックするのを待つのを待っているという遅延だけである場合、スクリプトは背景の仕事にそれを出荷して、あなたのメインスクリプトを他のものに進入させることができます。