用C#得到系统的用户组 我想要得到系统的全部用户组和用户名,用户名已经解决了,可是用户组却不知道该怎么办,,,请大家帮帮忙哦 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 using System;using System.Collections.Generic;using System.Text;using System.Runtime.InteropServices;using System.Text.RegularExpressions;using DevSDK.WinNT;using DevSDK;namespace DevSDK.WinNT{ public class LocalGroup { //创建本地用户组 [DllImport("Netapi32.dll")] extern static int NetLocalGroupAdd([MarshalAs(UnmanagedType.LPWStr)] string sName, int Level, ref LOCALGROUP_INFO_1 buf, int parm_err); //删除本地组 [DllImport("Netapi32.dll")] extern static int NetLocalGroupDel([MarshalAs(UnmanagedType.LPWStr)] string sName, [MarshalAs(UnmanagedType.LPWStr)] string GroupName); //获取本地组信息 [DllImport("Netapi32.dll")] extern static int NetLocalGroupGetInfo([MarshalAs(UnmanagedType.LPWStr)] string sName, [MarshalAs(UnmanagedType.LPWStr)] string GroupName, int Level, out IntPtr bufptr); //更改本地组信息 [DllImport("Netapi32.dll")] extern static int NetLocalGroupSetInfo([MarshalAs(UnmanagedType.LPWStr)] string sName, [MarshalAs(UnmanagedType.LPWStr)] string GroupName, int Level, ref LOCALGROUP_INFO_1 buf, int parm_err); //枚举全部本地用户组 [DllImport("Netapi32.dll")] extern static int NetLocalGroupEnum([MarshalAs(UnmanagedType.LPWStr)] string sName, int Level, out IntPtr bufPtr, int prefmaxlen, out int entriesread, out int totalentries, out int resume_handle); //添加用户到组 [DllImport("Netapi32.dll")] extern static int NetLocalGroupAddMembers([MarshalAs(UnmanagedType.LPWStr)] string sName,[MarshalAs(UnmanagedType.LPWStr)] string GroupName,int Level,ref LOCALGROUP_MEMBERS_INFO_3 buf, int totalentries); [DllImport("Netapi32.dll")] extern static int NetLocalGroupDelMembers([MarshalAs(UnmanagedType.LPWStr)] string sName, [MarshalAs(UnmanagedType.LPWStr)] string GroupName, int Level, ref LOCALGROUP_MEMBERS_INFO_3 bufPtr, int totalentries); //释放API [DllImport("Netapi32.dll")] extern static int NetApiBufferFree(IntPtr Buffer); [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)] public struct LOCALGROUP_INFO_0 { public string LocalGroup_Name_0; } [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)] public struct LOCALGROUP_INFO_1 { public string LocalGroup_Name_1; public string LocalGroup_Comment_1; } [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)] public struct LOCALGROUP_MEMBERS_INFO_3 { public string DomainName; } //从本地用户组中删除指定用户 public bool LocalGroupDelMembers(string GroupName, string UserName) { LOCALGROUP_MEMBERS_INFO_3 Members = new LOCALGROUP_MEMBERS_INFO_3(); Members.DomainName = UserName.ToString(); if (NetLocalGroupDelMembers(null, GroupName.ToString(), 3, ref Members, 1) != 0) { throw (new Exception("从本地用户组删除指定用户时出现错误")); } else { return true; } } //把用户添加至本地用户组 public bool LocalGroupAddMembers(string GroupName,string UserName) { LOCALGROUP_MEMBERS_INFO_3 Members = new LOCALGROUP_MEMBERS_INFO_3(); Members.DomainName = UserName.ToString(); if(NetLocalGroupAddMembers(null,GroupName.ToString(),3,ref Members,1) !=0) { throw (new Exception("把用户添加至本地用户组时出现错误")); } else { return true; } } //枚举全部本地用户组信息 public string LocalGroupEnum() { string tempStr = ""; int entriesread; int totalentries; int resume_handle; IntPtr bufPtr; NetLocalGroupEnum(null, 1, out bufPtr, -1, out entriesread, out totalentries, out resume_handle); if (entriesread > 0) { LOCALGROUP_INFO_1[] GroupInfo = new LOCALGROUP_INFO_1[entriesread]; IntPtr iter = bufPtr; tempStr = "<?xml version=\"1.0\" encoding=\"gb2312\" ?>\r\n"; tempStr += "<INFO>\r\n"; for (int i = 0; i < entriesread; i++) { GroupInfo[i] = (LOCALGROUP_INFO_1)Marshal.PtrToStructure(iter, typeof(LOCALGROUP_INFO_1)); iter = (IntPtr)((int)iter + Marshal.SizeOf(typeof(LOCALGROUP_INFO_1))); tempStr += "<ITEM value=\"" + GroupInfo[i].LocalGroup_Comment_1 + "\">" + GroupInfo[i].LocalGroup_Name_1 + "</ITEM>\r\n"; } tempStr += "</INFO>"; } return tempStr; } //修改本地用户组信息 public bool LocalGroupSetInfo(string GroupName, string GroupDescription) { LOCALGROUP_INFO_1 GroupInfo = new LOCALGROUP_INFO_1(); GroupInfo.LocalGroup_Name_1 = GroupName.ToString(); GroupInfo.LocalGroup_Comment_1 = GroupDescription.ToString(); if (NetLocalGroupSetInfo(null, GroupName.ToString(), 1, ref GroupInfo, 0) != 0) { throw (new Exception("修改用户组信息时出现错误")); } else { return true; } } //读取本地用户组信息 public string LocalGroupGetInfo(string GroupName) { IntPtr bufptr; LOCALGROUP_INFO_1 GroupInfo = new LOCALGROUP_INFO_1(); if (NetLocalGroupGetInfo(null, GroupName.ToString(), 1,out bufptr) != 0) { throw (new Exception("读取用户组信息时出现错误")); } else { GroupInfo = (LOCALGROUP_INFO_1)Marshal.PtrToStructure(bufptr, typeof(LOCALGROUP_INFO_1)); string tempStr = "<?xml version=\"1.0\" encoding=\"gb2312\" ?>\r\n"; tempStr += "<INFO>\r\n"; tempStr += "<NAME>" + GroupInfo.LocalGroup_Name_1 + "</NAME>\r\n"; tempStr += "<DESCRIPTION>" + GroupInfo.LocalGroup_Comment_1 + "</DESCRIPTION>\r\n"; tempStr += "</INFO>\r\n"; NetApiBufferFree(bufptr); return tempStr; } } //删除本地用户组 public bool LocalGroupDel(string GroupName) { if (NetLocalGroupDel(null, GroupName) != 0) { throw (new Exception("删除用户组时出现错误")); } else { return true; } } //添加本地用户组 public bool LocalGroupAdd(string GroupName, string GroupDescription) { LOCALGROUP_INFO_1 NewLocalGroup = new LOCALGROUP_INFO_1(); NewLocalGroup.LocalGroup_Name_1 = GroupName.ToString(); NewLocalGroup.LocalGroup_Comment_1 = GroupDescription.ToString(); if (NetLocalGroupAdd(null, 1, ref NewLocalGroup, 0) != 0) { throw (new Exception("创建用户组时出现错误")); } else { return true; } } }} 大家来支招吧!C# 字节编码成字符串 【急急急!!】Nhibernate的dll文件及引用 Math.Round 用C#开发ActiveX控件嵌入到网页中,是不是客户端要安装Freamwork?? 第一次做winfrom开发,麻烦进来看看,打开新窗口关闭当前窗口的问题,谢谢 关于socket通信问题,为什么这段程序会有问题 方法重写 ?请回答 如何在网页中点击按钮弹出路径选择对话框类似于<download>,在线等 菜菜问题!啥叫分布式开发呀?? 请教!DBGRID怎样锁定第一列? DataGridView下的两个DataGridViewComboBoxCell联动问题 关于服务器端验证控件
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
using System.Text.RegularExpressions;
using DevSDK.WinNT;
using DevSDK;namespace DevSDK.WinNT
{
public class LocalGroup
{
//创建本地用户组
[DllImport("Netapi32.dll")]
extern static int NetLocalGroupAdd([MarshalAs(UnmanagedType.LPWStr)] string sName, int Level, ref LOCALGROUP_INFO_1 buf, int parm_err);
//删除本地组
[DllImport("Netapi32.dll")]
extern static int NetLocalGroupDel([MarshalAs(UnmanagedType.LPWStr)] string sName, [MarshalAs(UnmanagedType.LPWStr)] string GroupName);
//获取本地组信息
[DllImport("Netapi32.dll")]
extern static int NetLocalGroupGetInfo([MarshalAs(UnmanagedType.LPWStr)] string sName, [MarshalAs(UnmanagedType.LPWStr)] string GroupName, int Level, out IntPtr bufptr);
//更改本地组信息
[DllImport("Netapi32.dll")]
extern static int NetLocalGroupSetInfo([MarshalAs(UnmanagedType.LPWStr)] string sName, [MarshalAs(UnmanagedType.LPWStr)] string GroupName, int Level, ref LOCALGROUP_INFO_1 buf, int parm_err);
//枚举全部本地用户组
[DllImport("Netapi32.dll")]
extern static int NetLocalGroupEnum([MarshalAs(UnmanagedType.LPWStr)] string sName, int Level, out IntPtr bufPtr, int prefmaxlen, out int entriesread, out int totalentries, out int resume_handle);
//添加用户到组
[DllImport("Netapi32.dll")]
extern static int NetLocalGroupAddMembers([MarshalAs(UnmanagedType.LPWStr)] string sName,[MarshalAs(UnmanagedType.LPWStr)] string GroupName,int Level,ref LOCALGROUP_MEMBERS_INFO_3 buf, int totalentries);
[DllImport("Netapi32.dll")]
extern static int NetLocalGroupDelMembers([MarshalAs(UnmanagedType.LPWStr)] string sName, [MarshalAs(UnmanagedType.LPWStr)] string GroupName, int Level, ref LOCALGROUP_MEMBERS_INFO_3 bufPtr, int totalentries);
//释放API
[DllImport("Netapi32.dll")]
extern static int NetApiBufferFree(IntPtr Buffer);
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct LOCALGROUP_INFO_0
{
public string LocalGroup_Name_0;
} [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct LOCALGROUP_INFO_1
{
public string LocalGroup_Name_1;
public string LocalGroup_Comment_1;
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct LOCALGROUP_MEMBERS_INFO_3
{
public string DomainName;
}
//从本地用户组中删除指定用户
public bool LocalGroupDelMembers(string GroupName, string UserName)
{
LOCALGROUP_MEMBERS_INFO_3 Members = new LOCALGROUP_MEMBERS_INFO_3();
Members.DomainName = UserName.ToString();
if (NetLocalGroupDelMembers(null, GroupName.ToString(), 3, ref Members, 1) != 0)
{
throw (new Exception("从本地用户组删除指定用户时出现错误"));
}
else
{
return true;
}
}
//把用户添加至本地用户组
public bool LocalGroupAddMembers(string GroupName,string UserName)
{
LOCALGROUP_MEMBERS_INFO_3 Members = new LOCALGROUP_MEMBERS_INFO_3();
Members.DomainName = UserName.ToString();
if(NetLocalGroupAddMembers(null,GroupName.ToString(),3,ref Members,1) !=0)
{
throw (new Exception("把用户添加至本地用户组时出现错误"));
}
else
{
return true;
}
}
//枚举全部本地用户组信息
public string LocalGroupEnum()
{
string tempStr = "";
int entriesread;
int totalentries;
int resume_handle;
IntPtr bufPtr; NetLocalGroupEnum(null, 1, out bufPtr, -1, out entriesread, out totalentries, out resume_handle); if (entriesread > 0)
{
LOCALGROUP_INFO_1[] GroupInfo = new LOCALGROUP_INFO_1[entriesread];
IntPtr iter = bufPtr;
tempStr = "<?xml version=\"1.0\" encoding=\"gb2312\" ?>\r\n";
tempStr += "<INFO>\r\n";
for (int i = 0; i < entriesread; i++)
{
GroupInfo[i] = (LOCALGROUP_INFO_1)Marshal.PtrToStructure(iter, typeof(LOCALGROUP_INFO_1));
iter = (IntPtr)((int)iter + Marshal.SizeOf(typeof(LOCALGROUP_INFO_1)));
tempStr += "<ITEM value=\"" + GroupInfo[i].LocalGroup_Comment_1 + "\">" + GroupInfo[i].LocalGroup_Name_1 + "</ITEM>\r\n";
}
tempStr += "</INFO>";
}
return tempStr;
}
//修改本地用户组信息
public bool LocalGroupSetInfo(string GroupName, string GroupDescription)
{
LOCALGROUP_INFO_1 GroupInfo = new LOCALGROUP_INFO_1();
GroupInfo.LocalGroup_Name_1 = GroupName.ToString();
GroupInfo.LocalGroup_Comment_1 = GroupDescription.ToString();
if (NetLocalGroupSetInfo(null, GroupName.ToString(), 1, ref GroupInfo, 0) != 0)
{
throw (new Exception("修改用户组信息时出现错误"));
}
else
{
return true;
}
}
//读取本地用户组信息
public string LocalGroupGetInfo(string GroupName)
{
IntPtr bufptr;
LOCALGROUP_INFO_1 GroupInfo = new LOCALGROUP_INFO_1();
if (NetLocalGroupGetInfo(null, GroupName.ToString(), 1,out bufptr) != 0)
{
throw (new Exception("读取用户组信息时出现错误"));
}
else
{
GroupInfo = (LOCALGROUP_INFO_1)Marshal.PtrToStructure(bufptr, typeof(LOCALGROUP_INFO_1));
string tempStr = "<?xml version=\"1.0\" encoding=\"gb2312\" ?>\r\n";
tempStr += "<INFO>\r\n";
tempStr += "<NAME>" + GroupInfo.LocalGroup_Name_1 + "</NAME>\r\n";
tempStr += "<DESCRIPTION>" + GroupInfo.LocalGroup_Comment_1 + "</DESCRIPTION>\r\n";
tempStr += "</INFO>\r\n";
NetApiBufferFree(bufptr);
return tempStr;
}
} //删除本地用户组
public bool LocalGroupDel(string GroupName)
{
if (NetLocalGroupDel(null, GroupName) != 0)
{
throw (new Exception("删除用户组时出现错误"));
}
else
{
return true;
}
} //添加本地用户组
public bool LocalGroupAdd(string GroupName, string GroupDescription)
{
LOCALGROUP_INFO_1 NewLocalGroup = new LOCALGROUP_INFO_1(); NewLocalGroup.LocalGroup_Name_1 = GroupName.ToString(); NewLocalGroup.LocalGroup_Comment_1 = GroupDescription.ToString(); if (NetLocalGroupAdd(null, 1, ref NewLocalGroup, 0) != 0)
{
throw (new Exception("创建用户组时出现错误"));
}
else
{
return true;
}
}
}
}