有没有办法检查用户是否具有特定权限?

问题描述 投票:0回答:4

在我的应用程序中,我使用 ntrights.exe(它是 Windows Resource Kit 的一部分)来授予和撤销特定用户权限。

例如,要授予用户“作为服务器登录”权限,我使用 shell 对象执行以下命令:

ntrights -u User +r SeServiceLogonRight

但是 ntrights 不允许您检查用户是否拥有特定权利。

你能告诉我如何检查用户是否拥有特定权利吗?

更新 问题发布在这里,因为它是我正在编写的 .NET 应用程序的一部分。如果有人知道如何使用代码来完成此操作,请在此处发布。

.net windows security rights
4个回答
2
投票

简短回答:LsaEnumerateAccountRights

不过,我不知道 .NET 是否提供了包装类。


1
投票

我认为您需要 LsaEnumerateAccountRights()。它没有在 .NET 中公开,但正在使用。使用 Reflector 并查看私有 ServiceProcessInstaller.AccountHasRight 方法。


0
投票

如果您位于 Active Directory 域中,则可以通过

System.DirectoryServices
进行管理。

System.DirectoryServices 命名空间

您可能会查找的其他内容是

ADSI
LDAP


0
投票

对于那些寻找开源命令行工具的人来说,还有这个:

https://github.com/Bill-Stewart/PrivMan

privman -a username -t SeServiceLogonRight

如果用户具有指定的权限/权限,则返回退出代码 1,否则返回 0。

© www.soinside.com 2019 - 2024. All rights reserved.