Active Directory 構造、ユーザー、グループの作成、ユーザーの別のグループへの割り当てなど、ドメインでユーザーを分離するための多くの操作を実行するために使用されるアプリケーションがあります。
AD ですべてが作成されたら、新しく作成した AD グループの 1 つに、新しく作成したフォルダーへのアクセスを割り当てたいと考えています。
ドメイン内のマシンにログオンしてそこからアプリケーションを実行するのではなく、別のドメインのローカル マシンからアプリケーションを実行したいと考えています。
私のアプリケーションのすべては、アクセス ルールの設定を除いて、ローカル マシンから正常に動作しているようです。これは失敗します:
「一部またはすべての ID 参照を翻訳できませんでした」。
ドメイン内から実行すると、コードは正常に機能します。偽装も試しましたが、違いはありません
if (Directory.Exists(sDirectory))
{
using (Impersonation impUser = new Impersonation(sAdminUserName, _sDomain, sAdminPassword))
{
DirectoryInfo diClientDirectory = new DirectoryInfo(sDirectory);
DirectorySecurity dsClientDirectory = diClientDirectory.GetAccessControl();
FileSystemAccessRule fsAccessRules = new FileSystemAccessRule(sSecurityGroup, FileSystemRights.FullControl, (InheritanceFlags.ObjectInherit | InheritanceFlags.ContainerInherit), PropagationFlags.InheritOnly, AccessControlType.Allow);
**dsClientDirectory.AddAccessRule(fsAccessRules); //THIS LINE THROWS THE EXCEPTION**
diClientDirectory.SetAccessControl(dsClientDirectory);
}