Windows7でnetdomを使ってドメイン参加を自動化する方法

Join Domain after Windows 7 installation with commandline (without unattend.xml)
http://social.technet.microsoft.com/Forums/en-US/w7itprogeneral/thread/22315110-cf36-440b-9590-ba1d78b4331d

私が試した方法は下記の通り。このフォーラムで紹介されている内容と少し違いますが大筋では同じ(はず)です。

  1. Windows 7 用のリモート サーバー管理ツールをダウンロードしてインストールhttp://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=7d2f6ad7-656b-4313-a005-4e344e43997d
  2. コントロールパネル>プログラムと機能>Windowsの機能の有効化と無効化を開く
  3. リモートサーバ管理ツール>役割管理ツール>AD DSおよびAD LDSツール>AD DSツール>AD DSスナップインおよびコマンドツールを有効化

これでnetdomが使えるようになりました。もっとスマートなやり方があるかもしれないし、足りないものがあるかもしれませんが、私はこれで満足してしまったので今のところこれ以上掘り下げる気はありません。問題が起きたらそれから考えよう。不安な人は上記のフォーラムを読んでください。


あと、えいさんという方から下記のコメントをもらったので掲載。ありがとうございました。

Const JOIN_DOMAIN = 1
Const ACCT_CREATE = 2
Const ACCT_DELETE = 4
Const WIN9X_UPGRADE = 16
Const DOMAIN_JOIN_IF_JOINED = 32
Const JOIN_UNSECURE = 64
Const MACHINE_PASSWORD_PASSED = 128
Const DEFERRED_SPN_SET = 256
Const INSTALL_INVOCATION = 262144

strDomain = "domain_name"
strPassword = "domain参加パスワード"
strUser = "ドメイン参加に使用するユーザー名"

Set objNetwork = CreateObject("WScript.Network")
strComputer = objNetwork.ComputerName

Set objComputer = GetObject("winmgmts:{impersonationLevel=Impersonate}!\\" & _
strComputer & "\root\cimv2:Win32_ComputerSystem.Name='" & _
strComputer & "'")

ReturnValue = objComputer.JoinDomainOrWorkGroup(strDomain, _
strPassword, strDomain & "\" & strUser, NULL, _
JOIN_DOMAIN + ACCT_CREATE)

Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate,(Shutdown)}!\\" & _
strComputer & "\root\cimv2")

Set colOperatingSystems = objWMIService.ExecQuery _
("Select * from Win32_OperatingSystem")

For Each objOperatingSystem in colOperatingSystems
objOperatingSystem.Reboot()
Next 

↑を**+.vbsファイルとして保存するとドメイン参加して再起動まで出来ますよ