【发布时间】:2016-02-20 01:13:33
【问题描述】:
我正在为我工作的公司打包一个脚本,允许现场服务技术人员将私人工作站 OU 中的计算机转换为团队工作站 OU,反之亦然。
目前这只是这个脚本的一小部分,并且让我大部分时间都感到困惑。我尝试了这个脚本的不同变体,并找到了一个我相信会让我走上正轨的版本。
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select Name from Win32_ComputerSystem",,48)
For Each objItem in colItems
strPCName = objItem.Name
Next
Set objNewOU = GetObject("LDAP://OU=Computers,OU=Corporate,DC=xxxxx,DC=net")
Set objMoveComputer = objNewOU.MoveHere("LDAP://CN=" & strPCName & ",OU=Computers,OU=Corporate,DC=xxxxx,DC=net",vbnullstring)
我收到一个错误,服务器上没有这样的对象。当我将计算机手动放入有问题的 OU 中时,我没有收到该错误消息。这就是我现在卡住的地方。
脚本目前在我的个人实验室中。
【问题讨论】:
-
我强烈建议您改用 powershell。 vbscript 是旧帽子,更难使用。
-
我考虑过这一点,并且会朝那个方向发展,但是与 AD 相关的 Powershell 需要 RSAT 工具来用于运行脚本的任何客户端。这里的目标是让现场服务技术人员使用任何计算机并使用来自 SCCM 的应用程序目录并运行一个打包的应用程序来为他们完成这项工作。让它安装 RSAT 工具是多余的。
标签: vbscript active-directory move ou