我如何以“NT Authority \ NetworkService”的身份运行进程?

我如何以“NT Authority \ NetworkService”的身份运行进程?

我正在考虑编写一个脚本,该脚本可以使用计算机的品牌和型号信息来更新 Active Directory 中的计算机详细信息。理想情况下,我希望此脚本通过其计算机帐户访问 AD,这意味着我需要以“NT Authority \ NetworkService”的身份运行该脚本。这可能吗?或者,我可以在脚本/可执行文件中模拟 NetworkService 吗?

答案1

您可以使用 devxexec:http://blog.developex.com/?p=1053

例如:

devxexec.exe /用户:NETWORK_SERVICE cmd

答案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

然后我将使用任务计划程序在具有所需权限的帐户下运行该脚本。

http://technet.microsoft.com/en-us/library/cc721871.aspx

相关内容