检查用户是否可以开始服务

时间:2016-02-18 13:46:15

标签: c# service policy advapi32

我刚刚在网上搜索了很多但我找不到任何帮助。我有自己的Windows服务,现在应该可以从我的主软件配置它。

我在安装,启动,停止,更改和卸载方面没有任何问题。我还可以使用其他用户凭据安装该服务。

但是有问题。在安装服务之前(“cmd”调用 sc创建SERVICENAME [...] ))我想检查具有输入凭据的用户是否可以启动服务。因此,我需要检查他是否在本地“登录即服务”安全策略中输入。我想要更改政策,我只想检查他是否被允许这样做。

是否可以在C#中进行此检查?

1 个答案:

答案 0 :(得分:2)

似乎“作为服务登录”是登录类型的LOGON32_LOGON_SERVICE,您可以从Advapi32.dll获取。我发现的第一件事(可能是最有帮助的)是LogonUser function尝试以用户身份登录,因此如果您的用户登录为LOGON32_LOGON_SERVICE失败或成功,它可能会被用作检测

Here是核心服务器功能的完整列表。一些列出的看起来很有希望但可能需要一些试错,例如AuditQuerySystemPolicy等。祝你好运!