使用c#在远程系统上枚举Windows用户组成员

quu*_*uux 5 c# windows usergroups user-management

在c#中,我需要能够

  • 连接到远程系统,根据需要指定用户名/密码
  • 列出该系统上本地组的成员
  • 将结果提取回正在执行的计算机

因此,例如,我将使用适当的信用连接到\ SOMESYSTEM,并获取本地管理员列表,包括SOMESYSTEM\Administrator,SOMESYSTEM\Bob,DOMAIN\AlanH,"DOMAIN\Domain Administrators".

我已经尝试使用system.directoryservices.accountmanagement但遇到了身份验证问题.有时我得到:

不允许同一用户使用多个用户名与服务器或共享资源建立多个连接.断开与服务器或共享资源的所有先前连接,然后重试.(HRESULT异常:0x800704C3)

以上是尝试,因为有些情况下我根本无法取消映射现有的驱动器或UNC连接.

其他时候我的程序获得UNKNOWN ERROR并且远程系统上的安全日志报告错误675,代码0x19是KDC_ERR_PREAUTH_REQUIRED.

我需要一个更简单,更不容易出错的方法来做到这一点!

dgu*_*lia 1

使用 WMI 应该很容易做到这一点。这里有一些文档的指针:

Win32_UserAccount 的 WMI 文档

即使您以前没有使用 WMI 的经验,也应该很容易将页面底部的 VB 脚本代码转换为一些 .NET 代码。

希望这有帮助!