Tag: access rights

如何检查特定用户是否以编程方式登录为服务权限

对于应用程序,我要检查特定用户是否已作为服务登录? 如何以编程方式执行此操作? 我在互联网上查了一下,找不到一些好的资源 谢谢 Upul

为什么注册表写在不同于预期的位置?

我尝试将注册表子项及其对应的值写入注册表,如下所示: const string subKey = @”SOFTWARE\Apple\Banana\”; const string regKey = “pip”; var rk = Registry.LocalMachine.OpenSubKey(subKey); if (rk == null) rk = Registry.LocalMachine.CreateSubKey(subKey); var rv = rk.GetValue(regKey); if (rv == null) rk.SetValue(regKey, “XXX”); return rv.ToString(); 现在的问题是,当我手动查看位置(通过注册表)时,我无法在HKLM看到文件夹SOFTWARE\Apple\Banana 。 但是当我再次运行上面的代码并进行调试时,我可以看到Registry.LocalMachine.OpenSubKey(subKey)和rk.GetValue(regKey)产生之前保存的值。 然而,我没有通过regedit看到给定位置的值。 所以在搜索注册表时,我可以在以下位置看到上面的键和值: HKEY_CURRENT_USER\Software\Classes\VirtualStore\MACHINE\SOFTWARE\Apple\Banana HKEY_USERS\S-1-5-21-44266131-1313801407-2392705078-1000\Software\Classes\VirtualStore\MACHINE\SOFTWARE\Apple\Banana 在两者之下,价值保持与我保存完全一样。 所以我意识到这是我的应用程序读取值的地方虽然在我的代码中我从HKLM\SOFTWARE\Apple\Banana\调用它。 为什么会这样? 它与访问权限问题有关吗? 这是预期的行为吗? 从某种意义上说,这个值对我来说非常重要,所以我只知道是否存在与自动重定位相关的风险! 是否有正确的方式写入注册表,以便它保持在其确切的位置.. 我的帐户是管理员一,我使用的是32位Windows 7。 编辑:据我所知,注册表项存储在当前用户位置而不是HKLM中。 当我从另一个帐户查询reg值时,我没有得到该值。 简而言之,首先将它保存到HKLM没有意义:(