2016-05-27 2 views
0

Моя компания попросила меня создать для них некоторое программное обеспечение .NET (в основном клиент проверки работоспособности, который сидит как служба на каждом из наших компьютеров и передает зашифрованные данные обратно на сервер, который затем загружает его в SQL, который может использоваться для еженедельных отчетов, веб-консоли и т. д.). Программа в основном выполнена - за исключением одной вещи, которая, как я думал, была бы самой простой. Вот что у меня проблемы:получение точного результата GPresult при выполнении сценария в учетной записи службы

Последняя информация, в которой мы нуждаемся, - это последний раз, когда клиент зарегистрировался с групповой политикой. Должно быть легко ... правильно? Запустите gpresult и возьмите дату и время от этого! Я написал код для этого, и он отлично работает, когда я запускаю его из своей учетной записи. Проблема в том, что это будет выполнено из службы; что означает, что он должен запускаться как учетная запись «локальной системы» при ее развертывании. Когда он выполняется как услуга из учетной записи «локальная система», это приводит к ошибкам, поскольку групповая политика (очевидно) не применяется к учетной записи локальной системы. Я попытался ограничить сферу действия компьютера, но он все равно ничего мне не дает.

Я также попытался найти файлы, которые gpupdate изменяет, когда он проверяет, чтобы я мог пойти по-другому и проанализировать эти файлы (это то, что я сделал для остальных программ, которые мы проверяем), но до сих пор мне не удавалось найти что-либо, что постоянно изменяется, когда компьютер запускает gpupdate.

Любые предложения на все, что я мог бы попробовать? Я как бы сводил с ума (короткая поездка), и я пробовал искать Google и форумы без каких-либо результатов.

Заранее благодарим за вашу помощь!

ответ

0

Я нашел частичный ответ. Кажется, что GP хранит раздел реестра, который сообщает ему, если политика просрочена (по умолчанию 90-минутная регистрация с 0-30-минутным смещением). Этого достаточно, чтобы сделать то, что я хочу делать (предоставлено, я все равно буду любить «вербальность» [могу ли я составить слово?] О дате, но это работает пока).

Для любого, кто смотрит на это в будущем, ключ: HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Group Policy \ History \ PolicyOverdue (DWORD).

На данный момент я начну использовать это, но мне все равно хотелось бы услышать, есть ли у кого-нибудь предложения о том, как я могу получить работу gpresponse или другой способ получить дату для последнего обновления GP. :)

Спасибо!

+0

Кроме того, стоит отметить, что я не провел тонну тестирования, чтобы убедиться, что ключ все еще работает. Похоже, что это, возможно, было первоначально введено для меня. Я предполагаю, что он все равно будет работать, но я дам вам знать, поскольку я больше тестирую. – thegeekkid

Смежные вопросы