如何以编程方式(使用.NET)将计算机添加到域?

时间:2010-06-14 16:49:19

标签: .net windows dns

我需要编写一个程序或脚本,在Windows安装后对服务器执行一些操作。其中包括将服务器添加到域中。

有没有办法以编程方式或使用脚本命令执行此操作?

3 个答案:

答案 0 :(得分:2)

如果您想从域控制器中执行此操作:

Source: net computer \\computername /add

如果您想从工作站执行此操作:

Source: NETDOM JOIN /DOMAIN:[DOMAINNAME] /USERD:[USERNAME] /PASSWORDD:[PASSWORD]

答案 1 :(得分:1)

如果编写程序并不容易,但可以找到相应的代码示例。

首先,您应该在域中创建计算机帐户。为此,您可以使用NetUserAdd功能。您将在http://msdn.microsoft.com/en-us/library/aa370254%28VS.85%29.aspx下找到相应的代码示例。如果您已在相应目标OU中的Active Directory(以任何方式)中创建了新计算机帐户,则可以跳过该步骤。您必须只了解哪个密码具有此帐户(密码将根据计算机名称构建,有关详细信息,请参阅代码示例)。

接下来,您应该获得添加计算机的域的SID,最后您应该使用所谓的 LSA API,以便在LsaSetTrustedDomainInformation本地完成所有工作。 您可以在http://support.microsoft.com/kb/145697中找到相应的代码示例。

如果您必须在域中创建一个计算机帐户,请注意您始终使用相同的域控制器。否则,您可能会遇到小问题,直到新帐户被复制到您使用的下一个域控制器(一个小的等待循环,重试就足够了)。

P.S。如果您在实施时遇到一些问题,可以向我提出有关此主题的其他问题。

答案 2 :(得分:0)

我不知道自己该怎么做,但也许看一下Samba 的源代码。

如果我没记错的话,Samba发行版包含一个命令行实用程序,可以完全按照您的需要执行(它可以将主机添加到域中);我不记得该实用程序的确切名称,但它应该仍在那里。我认为其目的是自动将旧的Windows NT域迁移到Samba!