如何使用 vb.net 查询注册表项的注册表权限



需要查询 HKLM 配置单元中的特定密钥以获取安全权限。 我们不想更改权限,只需将它们记录到文件中即可。首先,我会对使用WriteLine或msgbox来显示密钥的权限感到满意。 我是 VB.net 新手。我找不到仅添加密钥、修改权限的查询密钥的示例。 RegistryRights.FullControl 可以用于返回 True 或 False 吗?如果是这样,有人可以提供具有良好示例的在线链接吗?

我已经在网上搜索了几个小时,并尝试修改此处的示例以仅对密钥执行查询,但我无法创建对注册表项权限的查询。 https://learn.microsoft.com/en-us/dotnet/api/system.security.accesscontrol.registryrights?view=netframework-4.8

下面是尝试更改权限的代码示例。但我们想要查询,而不是更改权限。

' Prevent the current user from writing or changing the
' permission set of the key. Note that if Delete permission
' were not allowed in the previous access rule, denying
' WriteKey permission would prevent the user from deleting the 
' key.
rs.AddAccessRule(New RegistryAccessRule(user,
RegistryRights.WriteKey Or RegistryRights.ChangePermissions,
InheritanceFlags.None, PropagationFlags.None, AccessControlType.Deny))

预期输出如下所示,其中字段为 True 或 false 或 983103 或其他值:

Console.WriteLine("Regkey rights on HKLMSoftwarewow6432nodesomekey " & RegistryRights.FullControl)

如果有人试图做同样的事情,我发现这个 Sysinternals 应用程序完全可以做我们需要做的事情 https://learn.microsoft.com/en-us/sysinternals/downloads/accesschk

我们会将其包含在我们的应用中并调用它。

我们将使用的示例命令
accesschk.exe -k users hklm\software\wow6432node\somekeyhere

最新更新