Active Directory配下の端末管理に便利なVBスクリプト

Active DirectoryにコンピュータをVBスクリプトを利用して参加させる場合のサンプルと、その他他サイトのサンプルに関してのメモです。

JoinDomainOrWorkgroup Method of the Win32_ComputerSystem Class

MSDNに載っていたサンプルコードの転載です。
動作確認は今後やってみようかと思います。

参加前に命名規則とAD上に既にそのアカウントがあるかどうかを確認するように作ればさらに管理が楽になりそうです。
端末の管理番号と一緒に登録すればさらに便利かもしれません。

そのうち実用的なスクリプト作ったら載せておきます。

'example joins a computer to a domain and creates the computer's account in Active Directory. 
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   = "FABRIKAM"
strPassword = "ls4k5ywA"
strUser     = "shenalan"

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)

how to rename a local computer.

MSDNに載っていたサンプルコードの転載です。
ドメインに参加させる前に名前を変更してしまった方がややこしくなさそうです。

Name = "name"
Password = "password"
Username = "username"

Set objWMIService = GetObject("Winmgmts:root\cimv2")

' Call always gets only one Win32_ComputerSystem object.
For Each objComputer in _
    objWMIService.InstancesOf("Win32_ComputerSystem")

        Return = objComputer.rename(Name,Password,Username)
        If Return <> 0 Then
           WScript.Echo "Rename failed. Error = " & Err.Number
        Else
           WScript.Echo "Rename succeeded." & _
               " Reboot for new name to go into effect"
        End If

Next

参考リンク

RODC環境でドメインに参加させるスクリプト
コンピュータ名を変更する: Win32_ComputerSystem – WMI Sample (VBS)
JoinDomainOrWorkgroup Method of the Win32_ComputerSystem Class

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です