【问题标题】:VB changing domain name of PCVB更改PC的域名
【发布时间】:2014-06-14 15:55:39
【问题描述】:

我想知道是否有办法通过使用 Visual Basic 或 VB 脚本来更改计算机上的域。我必须将超过 100 台 PC 转移到另一个域。通过在计算机上运行会自动更改域的应用程序会很有用。

【问题讨论】:

  • wmic computersystem call /?。这是 win32_computersystem 的别名。
  • 这是一个示例 wmic 命令,用于查询 computername.txt 中列出的计算机的事件日志。 wmic /node:"@%userprofile%\desktop\ComputerName.txt" /output:"%userprofile%\desktop\EventLog.html" /failfast:on PATH Win32_NTLogEvent where (EventIDentifier=42 or eventidentifier=1003) get /format:hform
  • 这是加入文档中的一些示例代码(您需要阅读) 示例代码 [VBScript] 下面的 VBScript 示例将计算机加入域并在 Active Directory 中创建计算机的帐户。 const joce_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”stradingword =“ls4k5ywa” springword =“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)
  • 请不要在评论区发布代码,它不漂亮。

标签: vb.net visual-studio-2010 visual-studio vbscript vb6


【解决方案1】:

您可以使用Win32_ComputerSystem WMI 类,例如在 VBScript 中:

Const JOIN_DOMAIN = 1
Const ACCT_CREATE = 2

domain   = "DOMAIN"
username = "user"
password = "pass"
ou       = Null  'create the computer object in the default location

Set net = CreateObject("WScript.Network")
Set wmi = GetObject("winmgmts:{impersonationLevel=impersonate,(Shutdown)}!" _
          & "//./root/cimv2")

Set computer = wmi.Get("Win32_ComputerSystem.Name='" & net.ComputerName & "'")
result = computer.JoinDomainOrWorkgroup(domain, password, _
         domain & "\" & username, ou, JOIN_DOMAIN + ACCT_CREATE)
If result <> 0 Then
  WScript.Echo "Domain join failed (" & result & ")."
  WScript.Quit result
End If

For Each computer In wmi.ExecQuery("SELECT * FROM Win32_OperatingSystem")
  computer.Reboot
Next

或者你可以使用netdom 命令:

netdom join %COMPUTERNAME% /domain:DOMAIN /userd:DOMAIN\USER /passwordd:PASS
shutdown -r -t 0

【讨论】:

    猜你喜欢
    • 2017-01-29
    • 1970-01-01
    • 1970-01-01
    • 2020-12-20
    • 2021-10-28
    • 1970-01-01
    • 1970-01-01
    • 2017-07-16
    • 1970-01-01
    相关资源
    最近更新 更多