Как я могу запустить процесс как "NT Authority\NetworkService"?
Я играю с идеей для сценария, который обновил бы детали компьютера в Active Directory его информацией о марке и модели. В идеале мне бы хотелось, чтобы этот скрипт имел доступ к AD через учетную запись компьютера, а это значит, что мне нужно, чтобы скрипт запускался как "NT Authority\NetworkService". Это возможно? В качестве альтернативы, я мог выдать себя за NetworkService в сценарии / исполняемом файле?
4 ответа
Вы можете использовать devxexec: http://blog.developex.com/?p=1053
Например:
devxexec.exe / пользователь:NETWORK_SERVICE cmd
"Сценарист" уже ответил на этот вопрос здесь: 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
Вызовите вышеуказанный сценарий из объекта групповой политики, используя: Конфигурация пользователя -> Параметры Windows -> Сценарии -> Вход в систему
Затем просто обновите разрешения для OU, чтобы пользователи могли изменять описания объектов компьютера, например:
Я не уверен, насколько возможно сделать то, что вы хотите. Повышение разрешений может быть лучше задано в StackOverflow. Однако чего не запускается скрипт от имени локального администратора. За исключением ДЦ, учетная запись существует. На \DC вы можете запустить его как администратор домена или другую учетную запись, у которой будут ограниченные разрешения для этой задачи.
Если компьютеры уже существуют в AD, я бы подошел к этой проблеме с другой стороны - на стороне сервера итерируйте объекты компьютера и используйте PsExec, чтобы найти требуемую информацию в удаленной системе и вернуть ее.
http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx
Затем я запускаю скрипт под учетной записью с разрешениями, необходимыми для использования планировщика заданий.