检查用户是否可以启动服务

本文关键字:启动 服务 用户 是否 检查 | 更新日期: 2023-09-27 18:35:09

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

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

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

是否可以简单地在 C# 中执行此检查?

检查用户是否可以启动服务

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

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