いくつかのPowerShellコードを使用して再生しているADセキュリティグループを動的に生成し、ネットワーク共有上のフォルダに適用します。正常に動作しますNew-ADGroup、Set-ACL、およびNetwork Foldersに関する問題
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で失敗しました」というメッセージが表示されます。
I疲れ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秒を言う待って、再度セットACL(またはSETACL.EXE)コードの一部を実行した場合、それは正常に完了する。
私はこれがドメインコントローラ(2003年と2008 R2が混在した4つ)に直接関係していたと思っていましたが、ローカルフォルダで正常に動作したということは面白かったです。
ローカルフォルダとネットワークフォルダのコードの実行中にWiresharkトレースを行いました。私が想定し
NT Trans Response, FID: 0x0040, NT SET SECURITY DESC, Error: STATUS_INVALID_SID
は私のSet-ACLコマンドが失敗する原因となるものです:私は(とりわけ)LDAPルックアップとを参照してくださいネットワークフォルダにACLを適用するには、次のSMB応答をしようとしたときの主な違いはあります。
ネットワークファイルシステムは、EMC Celerra 6.0.xxです。私はこの技術に慣れていませんが、上記のエラーを説明する何らかのSIDキャッシュを保持していると理解しています(ADの場合でも新しいグループについてはまだ分かりません)。
だから、私は2つの質問があると思います。
- はない が待っ/スリーピング伴わないこの周りにどのような方法(PowerShellの/ C#ECT)はありますか? IEの場合、SIDが であってもACLを設定してください。
- EMC Celerraが問題である場合(私はそうであると仮定します)、 の方法で「SIDキャッシュ」などの更新を強制できますか?
が、私はこの問題についてreadvariousarticlesを持っているが、どれも効果的な解像度を持っている(または私のために働く)ように見えるん。
ありがとうございました。
Rhys。
これはいつも私たちのフォールバックオプションでした。 遅延のため、バックグラウンドジョブは待機しなければならず、500,000個のフォルダ(700万ファイル)のアクセス許可を設定すると、スクリプトの実行時間が長くなることがあります。 –