System.DirectoryServices.AccountManagement API を使用して、Active Directory で新しいユーザーを作成したり、アカウントを無効にしたりしています。新しいユーザーを作成してそのパスワードを設定しようとすると、m/c が「The RPC server is available.」というメッセージで例外をスローします。(HRESULT からの例外: 0x800706BA) . 次のスニペットは、ユーザーの作成と永続化に使用されます。
UserPrincipal user = new UserPrincipal(ctx);
user.GivenName = "Andrew";
user.Surname = "Green";
user.EmailAddress = "agreeen@gmail.com";
user.SamAccountName = "agreen";
user.Save();
user.SetPassword("Pqw^&12");
user.Save();
これを実行すると、コードがパスワードを設定しようとするとすぐに例外がスローされます。ネットで少し調べたところ、以下のことを試してみました。
- acct agreenはパスワードなしで作成されるため、権限や接続の問題はありません。
- AD マシンの Windows ファイアウォールの例外としてWindows Management Instrumentation (WMI)を追加しました
- 次のサービスRPC エンドポイント マッパー、リモート プロシージャ コール、リモート レジストリが AD マシンで実行されていることを確認しました。
- AD マシンへの接続に使用されるアカウントで、[リモート コントロールを有効にする] がオンになっていることを確認します。
- ポート 135 が AD マシンでブロックされていないことを確認しました
私が持っているセットアップは、Microsoft Windows 7 Professional を実行しているボックスb1があり、Microsoft Windows Server 2008 R2 エンタープライズを実行しているボックスb2に接続しようとしています。c# コードは b1 の .Net4.5 フレームワークで実行され、b2 でアカウントを作成しようとしています。
同じボックス(つまりADのボックス)からコードを実行しようとすると、ipアドレスをlocalhostとして指定するとパスワード付きのアカウントを正常に作成できましたが、m/c ipアドレスとして指定すると、同じ例外で失敗しました
私が間違っていることを教えてください。
ありがとう
ヴィシュヴァ