C# 检查Windows内置本地来宾帐户是否已打开

C# 检查Windows内置本地来宾帐户是否已打开,c#,winforms,C#,Winforms,我正在尝试执行一项检查,以确定本地Windows来宾帐户是打开还是关闭(请注意,这与启用/禁用不同,我目前可以对其进行检查)。 据我所知,开/关设置唯一有影响的地方是本地安全策略设置“拒绝本地登录” 一个可接受的解决方法是进行任何检查,以确定内置来宾帐户是否能够在登录屏幕期间显示。这个问题实际上是我的方法唯一需要知道的。提前谢谢 编辑以澄清: 这个问题的答案是: 因为我实际上只是想确定这个设置的状态(而不是编辑它),所以提供的解决方案是使用secedit导出安全策略 secedit.exe /e

我正在尝试执行一项检查,以确定本地Windows来宾帐户是打开还是关闭(请注意,这与启用/禁用不同,我目前可以对其进行检查)。

据我所知,开/关设置唯一有影响的地方是本地安全策略设置“拒绝本地登录”

一个可接受的解决方法是进行任何检查,以确定内置来宾帐户是否能够在登录屏幕期间显示。这个问题实际上是我的方法唯一需要知道的。提前谢谢

编辑以澄清:


这个问题的答案是:

因为我实际上只是想确定这个设置的状态(而不是编辑它),所以提供的解决方案是使用secedit导出安全策略

secedit.exe /export /cfg %temp%\UserRights.inf /areas User_Rights /log %temp%\UserRights.log
生成一个CFG,其中包含一行与相关的“拒绝本地登录”列表:

对于许多域计算机来说,这可能也包括ASPNET(我记得有人专门寻找相同的解决方案来过滤ASPNET)。当存在ASPNET或其他帐户时,输出以逗号分隔

SeDenyInteractiveLogonRight = ASPNET,Guest,AnotherUser
AverageJoe甚至好心地告诉我,可以使用Windows资源工具包中的NTrights.exe编辑此策略

如果你从这篇文章中得到了任何帮助,请在Technet上查看并投票给他的答案,因为他显然花了一个多小时寻找这个解决方案。谢谢你,乔

SeDenyInteractiveLogonRight = ASPNET,Guest,AnotherUser