我正在考虑编写一个脚本,该脚本可以使用计算机的品牌和型号信息来更新 Active Directory 中的计算机详细信息。理想情况下,我希望此脚本通过其计算机帐户访问 AD,这意味着我需要以“NT Authority \ NetworkService”的身份运行该脚本。这可能吗?或者,我可以在脚本/可执行文件中模拟 NetworkService 吗?
答案1
答案2
“脚本专家”已经在这里回答了这个问题: http://www.microsoft.com/technet/scriptcenter/resources/qanda/apr05/hey0429.mspx
您只需要包含 WMI 调用来获取机器型号...
我的实现过程如下:
Set objSysInfo = CreateObject("ADSystemInfo")
Set objUser = GetObject("LDAP://" & objSysInfo.UserName)
Set objComputer = GetObject("LDAP://" & objSysInfo.ComputerName)
If objComputer.operatingSystem = "Windows*Server*" Then
Quit
Else
strMessage = objUser.CN & " logged on to " & objComputer.CN & " " & Day(Date) & "/" & Month(Date) & "/" & Year(Date) & " " & Time & "."
objComputer.Description = strMessage
objComputer.SetInfo
End If
从 GPO 调用上述脚本,使用:用户配置 -> Windows 设置 -> 脚本 -> 登录
然后只需更新 OU 上的权限,以便用户可以修改计算机对象描述,如下所示:
答案3
我不确定做你想做的事是否可行。升级权限可能最好在 StackOverflow 上询问。但是,为什么不以本地管理员身份运行脚本呢?除了 DC 之外,该帐户都存在。在 \DC 上,您可以以域管理员或其他对此任务具有有限权限的帐户身份运行它。
答案4
如果计算机已经存在于 AD 中,我会从另一个方向来解决这个问题 - 在服务器端遍历计算机对象并使用 PsExec 在远程系统上找到所需的信息并返回它。
http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx
然后我将使用任务计划程序在具有所需权限的帐户下运行该脚本。