C# 使用C语言以编程方式将计算机添加到域时获取奇怪的错误代码#

C# 使用C语言以编程方式将计算机添加到域时获取奇怪的错误代码#,c#,wmi,C#,Wmi,我正在尝试使用C#以编程方式将Windows计算机(server 2008 R2)添加到域中。我知道我有将机器添加到域的正确权限,因为我可以通过windows UI手动添加它。我还知道我的ManagementScope是正确的,因为当我创建它时,我能够查询我想要的任何WMI对象。我正在尝试以下方式进行连接: ManagementClass computerSystem = new ManagementClass(scope, new ManagementPath("Win32_ComputerS

我正在尝试使用C#以编程方式将Windows计算机(server 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);
ManagementClass computerSystem=新的管理类(作用域,新的管理路径(“Win32_computerSystem”),新的ObjectGetOptions());
ManagementObjectCollection computerSystemInstances=computerSystem.GetInstances();
ManagementObject baseObject=computerSystemInstances.ToList().First();
ManagementBaseObject inParams=baseObject.GetMethodParameters(“JoinDomainOrWorkgroup”);
inParams[“Name”]=“my.domain.com”;
inParams[“Password”]=domainCredentials.FullUserName;
inParams[“UserName”]=域凭据。密码;
inParams[“FJoinOptions”]=1;
var joinParams=baseObject.InvokeMethod(“JoinDomainOrWorkgroup”,inParams,null);

方法调用不会引发任何异常,但在
joinParams.Properties[“ReturnValue”]中找到的错误代码值为1312。我在任何地方都找不到任何说明此错误代码含义的文档(甚至在Microsoft的MSDN页面上也找不到该方法)。有人知道在哪里可以找到这个错误代码吗?

在您的代码中,您将用户名和密码转换到了错误的变量。这可能是原因?

这可能是系统错误代码,已找到


下面的解决方案是否适用于您?是的,我已交换了密码/用户名。切换它们修复了我看到的问题。酷,我认为这是完全不同的东西哈哈,别担心!啊,啊,就是这样。谢谢你的第二双眼睛!不客气,伙计。没有什么比这更像是一个全新的视角;-)
ERROR_NO_SUCH_LOGON_SESSION
1312 (0x520)
A specified logon session does not exist. It may already have been terminated.