Voici une facon de faire qui n'est pas nécessairement complète car tu peux aussi ajouter la gestion des erreurs et la gestion des output. Mais voici le code de base :
Ok merci ça marche! Mais est-on obligé de passer par du shell ? N'existe-t-il pas un moyen de le faire avec une api par exemple? Ou un autre moyen?
D'avance merci à tous!
Voici une classe qui te permet d'utiliser l'API Netapi32.dll
using System;
using System.Runtime.InteropServices;
namespace NetworkFunctions
{
public class NetworkAPI
{
#region LOCAL_GROUP_INFO_1 (Structure)
[StructLayout(LayoutKind.Sequential, CharSet=CharSet.Unicode)]
public struct LOCALGROUP_INFO_1
{
[MarshalAs(UnmanagedType.LPWStr)] public string lgrpi1_name;
[MarshalAs(UnmanagedType.LPWStr)] public string lgrpi1_comment;
}
#endregion
#region LOCALGROUP_MEMBER_INFO_1 (Structure)
[StructLayout(LayoutKind.Sequential, CharSet=CharSet.Unicode)]
public struct LOCALGROUP_MEMBERS_INFO_1
{
public int lgrmi1_sid;
public int lgrmi1_sidusage;
public string lgrmi1_name;
}
#endregion
#region NetLocalGroupAdd (API Call)
[DllImport("Netapi32.dll")]
public extern static int NetLocalGroupAdd([MarshalAs(UnmanagedType.LPWStr)] string servername, int level, ref LOCALGROUP_INFO_1 buf, int parm_err);
#endregion
#region NetLocalGroupDel(API Call)
[DllImport("Netapi32.dll")]
public extern static int NetLocalGroupDel([MarshalAs(UnmanagedType.LPWStr)] string servername,[MarshalAs(UnmanagedType.LPWStr)] string groupname);
#endregion
#region NetLocalGroupGetInfo (API Call)
[DllImport("Netapi32.dll")]
public extern static int NetLocalGroupGetInfo([MarshalAs(UnmanagedType.LPWStr)] string servername,[MarshalAs(UnmanagedType.LPWStr)] string groupname,int level,out IntPtr bufptr);
#endregion
[DllImport("Netapi32.dll")]
public extern static int NetLocalGroupSetInfo([MarshalAs(UnmanagedType.LPWStr)] string servername,[MarshalAs(UnmanagedType.LPWStr)] string groupname,int level,ref LOCALGROUP_INFO_1 buf,int parm_err);
[DllImport("Netapi32.dll")]
public extern static int NetLocalGroupEnum([MarshalAs(UnmanagedType.LPWStr)] string servername,int level,out IntPtr bufptr,int prefmaxlen,out int entriesread,out int totalentries,out int resumehandle);
[DllImport("Netapi32.dll")]
public extern static int NetApiBufferFree(IntPtr Buffer);
[DllImport("Netapi32.dll")]
public extern static int NetLocalGroupGetMembers([MarshalAs(UnmanagedType.LPWStr)] string servername,[MarshalAs(UnmanagedType.LPWStr)] string localgroupname,int level,out IntPtr bufptr,int prefmaxlen,out int entriesread,out int totalentries,out int resumehandle);