命令更改远程计算机用户密码,C#在远程计算机上创建新用户账号,修改用户密码,删除一个用户账号的功能?解决办法...

这篇博客探讨了如何使用C#进行远程计算机的用户管理,包括创建新用户、修改用户密码和删除用户账号。作者提到了通过WMI、DirectoryEntry和Win32API等方式实现这些功能,并指出在错误处理和确认操作成功方面存在的挑战。
摘要由CSDN通过智能技术生成

当前位置:我的异常网» C# » C#在远程计算机上创建新用户账号,修改用户密码,删

C#在远程计算机上创建新用户账号,修改用户密码,删除一个用户账号的功能?解决办法

www.myexceptions.net  网友分享于:2013-03-04  浏览:154次

C#在远程计算机上创建新用户账号,修改用户密码,删除一个用户账号的功能?

1.为了实现标题上的功能,搜索了一阵只是找到了如下的wmi代码,虽然可以实现想要的功能,但无法准确判断是否成功创建,删除用户账号或者成功修改了用户密码。(net.exe 只是可以知道命令是不是执行了即使出错没修改成功,也不错报错,出错只是在命令行上输出)

2.利用DirectoryEntry不知道可不可以实现远程添加、删除用户账号或者密码的功能。

3.第三种是利用win32 api提供的功能来实现的相应的功能,net中还要使用win32 api吗?

Public Declare Function NetUserAdd Lib "netapi32" (lpServer As Any, ByVal Level As Long, lpUser As USER_INFO_3_API, lpError As Long) As Long

Public Declare Function NetUserChangePassword Lib "Netapi32.dll" (Domain As Any, User As Any, OldPass As Byte, NewPass As Byte) As Long

Declare Function NetUserDel Lib "netapi32.dll" (ServerName As Byte, Username As Byte) As Long

------------------

DirectoryEntry de=new DirectoryEntry("WinNT:///guest" yourID,yourPWD);

int v=de.Properties["userAccountControl"].value;

de.Properties["userAccountControl"].value=2&~v;

de.CommitChanges();

------------------------------

WMI远程添加修改用户

///

/// WMI用户操作

///

public class Win32_UserAccount

{

private string ip = string.Empty;

public string IP

{

get { return ip; }

set { ip = value; }

}

private string username = string.Empty;

public string UserName

{

get { return username; }

set { username = value; }

}

private string password;

public string PassWord

{

get { return password; }

set { password = value; }

}

///

/// 构造函数

///

/// 目标IP地址

/// 管理员用户名

/// 密码

public Win32_UserAccount(string _ip, string _username, string _password)

{

IP = _ip;

UserName = _username;

PassWord = _password;

}

///

/// 返回所有用户

///

/// 帐号数组

public string[] ViweUsers()

{

try

{

ConnectionOptions options = new ConnectionOptions();

options.Username = UserName;

options.Password = PassWord;

ManagementScope Conn = new ManagementScope(@"\\" + IP + @"\root\cimv2", options);

Conn.Connect();

//确定WMI操作的内容

ObjectQuery oq = new ObjectQuery("SELECT * FROM Win32_UserAccount");

ManagementObjectSearcher query1 = new ManagementObjectSearcher(Conn, oq);

//获取WMI操作内容

ManagementObjectCollection queryCollection1 = query1.Get();

//根据使用者选择,执行相应的远程操作

string[] s = new string[queryCollection1.Count];

int i=0;

foreach (ManagementObject mo in queryCollection1)

{

s[i] += mo.GetPropertyValue("Name");

i++;

}

文章评论

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值