Получение точного вывода GPresult при выполнении из скрипта на служебной учетной записи
Моя компания попросила меня создать для них программное обеспечение.NET (в основном клиент проверки работоспособности, который работает как служба на каждом из наших компьютеров и сообщает зашифрованные данные обратно на сервер, который затем загружает их в SQL, который можно использовать для еженедельных отчетов., веб-консоль и т. д.). Программа в основном сделана - за исключением одной вещи, которую я думал, будет самой легкой. Вот с чем у меня проблемы:
Последний фрагмент информации, который нам нужен, - это последний раз, когда клиент регистрируется с помощью групповой политики. Должно быть легко... верно? Запустите gpresult и получите дату и время! Я написал код для этого, и он отлично работает, когда я запускаю его из своей учетной записи. Проблема в том, что это будет выполнено из службы; Это означает, что при развертывании он должен работать как учетная запись "локальной системы". Когда он выполняется как служба из учетной записи "локальной системы", он выдает ошибку, потому что групповая политика (очевидно) не применяется к учетной записи локальной системы. Я пытался ограничить область применения компьютера, но это все равно ничего не дает.
Я также пытался найти файлы, которые gpupdate изменяет при регистрации, чтобы я мог пойти другим путем и вместо этого проанализировать эти файлы (это то, что я делал для остальных программ, которые мы проверяем), но так До сих пор мне не удавалось найти что-либо, что постоянно изменяется, когда компьютер запускает gpupdate.
Любые предложения на что-нибудь, что я мог бы попробовать? Я немного схожу с ума (короткая поездка), и я пытался искать в Google и на форумах безрезультатно.
Заранее спасибо за помощь!
1 ответ
Я нашел частичный ответ. Кажется, что GP хранит раздел реестра, который сообщает ему, если политика просрочена (по умолчанию это 90-минутная регистрация со смещением 0-30 минут). Этого достаточно, чтобы заставить работать то, что я хочу (да, я все равно хотел бы "многословия" [могу ли я придумать слово?] Наличия даты, но пока это работает).
Для тех, кто смотрит на это в будущем, ключ: HKLM\ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ \Microsoft\Windows\CurrentVersion\ Групповая политика \ История \PolicyOverdue (DWORD).
Сейчас я начну использовать это, но я все еще хотел бы услышать, есть ли у кого-нибудь какие-нибудь предложения о том, как я мог бы заставить работать gpresponse или другой способ получить дату последнего обновления GP.:)
Спасибо!