0

我正在尝试使用 C# 以编程方式将 Windows 机器(服务器 2008 R2)添加到域中。我知道我有将机器添加到域的正确权限,因为我可以通过 Windows UI 手动添加它。我也知道我的 ManagementScope 是正确的,因为当我创建它时,我能够查询我想要的任何 WMI 对象。我正在尝试按如下方式连接:

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"].Value1312。我在任何地方都找不到任何文档(即使在 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 回答