【发布时间】:2012-09-07 13:14:17
【问题描述】:
如何从 C# 中检查本地用户帐户(即本地管理员帐户)是否处于活动状态?
我真正想要的是用 C# 替换“net user Administrator”命令的“Account Active”=“Yes”(或“No”)输出。
恐怕这个问题看起来像this 的一个重复问题,但我不知道为根 DirectoryEntry 对象的参数传递什么。尝试了不同的东西,如“ldap://”+ Environment.MachineName、“ldap://127.0.0.1”、“WinNT://”+ Environment.MachineName,但都没有奏效。在所有三种情况下,searcher.FindAll() 调用都会引发异常。
【问题讨论】:
-
你遇到了什么异常?
-
使用 "ldap://" + Environment.MachineName 我得到一个带有消息“服务器无法运行”的 COMException。和错误代码=-2147016646。与“ldap://127.0.0.1”相同。
-
使用 "WinNT://" + Environment.MachineName 我收到 NotSupportedException 消息“提供程序不支持搜索并且无法搜索 WinNT://
。” -
也尝试“WinNT://”+ Environment.MachineName +“,User”,但这会产生另一个 COMException,消息“未知错误 (0x80005000)”,ErrorCode=-2147463168。
-
你可以使用 System.DirectoryServices.AccountManagement 吗?