Я тестировал сценарий Powershell для отслеживания даты и времени последней установки загруженных исправлений из WSUS на всех моих машинах в домене.
Я нашел путь от http://technet.microsoft.com/en-us/magazine/gg153542.aspx
Я использую следующие пути: HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ WindowsUpdate \ Auto Update \ Results \ Detect \
HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ WindowsUpdate \ Auto Update \ Results \ Download \
HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ WindowsUpdate \ Auto Update \ Results \ Install \
Во всех приведенных выше путях есть переменная LastSuccessTime, которую я использую.
Когда я запускал свой скрипт на всех машинах, я ничего не мог получить от: Windows 2008 R2 64-битная Windows 2003 Enterprise 64-битная Windows XP 64-битная Windows Vista 64-битная
Однако я также получил информацию о регистрации из 64-разрядной Windows 7 или 32-разрядной версии Windows 2003.
Вот действительно странные вещи:
1) Мне удалось использовать regedit для ручного удаленного доступа к этим 64-битным машинам и подтвердить, что путь действителен и там есть поле LastSuccessTime. Итак, я могу подтвердить, что один и тот же путь применяется ко всем ОС.
2) На этих 64-битных машинах я мог без проблем получать другие записи реестра.
3) Я перезапускаю скрипт и на этот раз сокращаю путь, чтобы увидеть, где был прерван доступ. Это здесь
HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ WindowsUpdate
где в доступе было отказано.
Может ли быть ограничение на чтение папки реестра ... \ WindowsUpdate, когда WSUS активен для 64-битных машин?
Как выясняется, это связано со следующим:
1) Powershell ISE работала на 32-битной машине и пыталась удаленно сканировать 64-битную ОС Windows.
2) WSUS, работающий в 64-битной ОС Windows, представляет собой 64-битное приложение.
3) 32-разрядная версия Powershell ISE и 32-regedit не могут удаленно "видеть" следующие записи WSUS: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ WindowsUpdate \ Auto Update \ Results
Вы можете «видеть» только:
HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion
Подраздел WindowsUpdate невидим для 32-разрядного приложения.
Чтобы решить эту проблему, всегда запускайте Powershell в 64-битной ОС Windows, и вы можете удаленно «видеть» как 32-битную, так и 64-битную ОС Windows.