![无法访问 CERTAIN x64 OS 的 WSUS AutoUpdate Results 注册表项](https://linux22.com/image/619466/%E6%97%A0%E6%B3%95%E8%AE%BF%E9%97%AE%20CERTAIN%20x64%20OS%20%E7%9A%84%20WSUS%20AutoUpdate%20Results%20%E6%B3%A8%E5%86%8C%E8%A1%A8%E9%A1%B9.png)
我一直在测试一个 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\自动更新\结果\下载\
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\自动更新\结果\安装\
在上述所有路径中,都有一个名为 LastSuccessTime 的变量供我使用。
当我在所有机器上运行脚本时,我无法从以下机器上获得任何信息:Windows 2008 R2 64 位 Windows 2003 Enterprise 64 位 Windows XP 64 位 Windows Vista 64 位
但是,我还从 Windows 7 64 位或 Windows 2003 32 位获取了注册表信息。
真正奇怪的是:
1) 我能够使用 regedit 手动远程访问这些 64 位计算机,并确认路径有效,并且其中有一个 LastSuccessTime 字段。因此,我可以确认相同的路径适用于所有操作系统。
2) 在这些 64 位机器上,我能够毫无问题地获取其他注册表项。
3) 我重新运行了脚本,这次缩短了路径,以查看访问被中止的位置。它在这里
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate
访问被拒绝。
当 WSUS 在 64 位计算机上处于活动状态时,读取 ...\WindowsUpdate 注册表文件夹是否会受到限制?
答案1
事实证明,这与以下几点有关:
1) Powershell ISE 在 32 位机器上运行,并尝试远程扫描 64 位 Windows 操作系统。
2)在 64 位 Windows 操作系统上运行的 WSUS 是 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 位应用程序是不可见的。
为了解决这个问题,始终在 64 位 Windows 操作系统上运行 Powershell,您就可以远程“查看” 32 位和 64 位 Windows 操作系统。