我正在写一个c#应用程序.
作为我的应用程序的一部分,我需要阅读用户的个人资料.
为了获得所有用户,我正在使用Registry.Users.GetSubKey().
问题是在Windows 8上HKEY_USERS只包含登录用户!(当有2个用户登录时,我会看到2个用户HKEY_USERS,但是如果其中一个用户将退出,那么将只有1个用户HKEY_USERS)
因此,我只为登录用户获取配置文件.
我试图搜索整个注册表以找到数据保存的位置,但我无法在任何地方找到这些信息....当用户注销时,信息似乎消失了.
是设计还是错误?
保存数据的位置 - 它必须在注册表中,但我找不到它...
它可能是权限中的东西吗?也许信息存在但是当用户没有登录时它被隐藏了?是否有标志或我可以用来读取未登录用户的配置文件?
小智 7
这可能不适用于所有情况,但符合我的需求。加载注册表配置单元
reg load HKU\Steven C:\Users\Steven\ntuser.dat
Run Code Online (Sandbox Code Playgroud)
读取必要的数据,然后卸载
reg unload HKU\Steven
Run Code Online (Sandbox Code Playgroud)
作为我的应用程序的一部分,我需要阅读用户的个人资料.
然后,您需要重新设计您的应用程序.你要求的是不可能的.
来自Raymond Chen的博客文章"谨防漫游用户个人资料":
[Y]你不能只通过HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList注册表键来查找所有用户配置文件,甚至可能修改它们,因为本地计算机上的用户配置文件的副本可能不是权威的.
您在本地计算机上看到的与其他用户的配置文件相关的任何内容 - 无论是在HKEY_USERS下,还是在C:\ Users下的配置文件目录中 - 都只是他们上次登录该计算机时的本地缓存.在真实的数据,向上的最新数据,在某处存储在域控制器上.
您根本无法依赖其他用户的本地存储的个人资料数据.你最好假装它甚至不存在.
| 归档时间: |
|
| 查看次数: |
8766 次 |
| 最近记录: |