0

C# を使用してプログラムで Windows マシン (サーバー 2008 R2) をドメインに追加しようとしています。Windows UI から手動でマシンを追加できるため、マシンをドメインに追加するための適切な権限があることはわかっています。また、ManagementScope を作成すると、必要な WMI オブジェクトを照会できるため、ManagementScope が正しいこともわかります。次のように接続しようとしています。

ManagementClass computerSystem = new ManagementClass(scope, new ManagementPath("Win32_ComputerSystem"), new ObjectGetOptions());
ManagementObjectCollection computerSystemInstances = computerSystem.GetInstances();
ManagementObject baseObject = computerSystemInstances.ToList<ManagementObject>().First();

ManagementBaseObject inParams = baseObject.GetMethodParameters("JoinDomainOrWorkgroup");
inParams["Name"] = "my.domain.com";
inParams["Password"] = domainCredentials.FullUserName;
inParams["UserName"] = domainCredentials.Password;
inParams["FJoinOptions"] = 1;

var joinParams = baseObject.InvokeMethod("JoinDomainOrWorkgroup", inParams, null);

メソッド呼び出しは例外をスローしませんが、エラー コードの値joinParams.Properties["ReturnValue"].Valueは 1312 です。このエラー コードが何を意味するかを示すドキュメントはどこにも見つかりません (メソッドに関する Microsoft の MSDN ページでも)。このエラーコードの目的をどこで見つけることができるか知っている人はいますか?

4

2 に答える 2

2

コードで、ユーザー名とパスワードを間違った変数に置き換えました。これが原因かも?

于 2012-09-07T13:16:17.187 に答える
0

これはシステム エラー コードである可能性があります。http://msdn.microsoft.com/en-us/library/ms681385%28v=vs.85%29

ERROR_NO_SUCH_LOGON_SESSION
1312 (0x520)
A specified logon session does not exist. It may already have been terminated.
于 2012-09-07T13:18:50.947 に答える