MS DOS et asp.net

deathsurfer
Messages postés
35
Date d'inscription
lundi 15 juin 2009
Statut
Membre
Dernière intervention
28 juillet 2009
- 28 juin 2007 à 11:00
izords
Messages postés
20
Date d'inscription
samedi 27 avril 2002
Statut
Membre
Dernière intervention
4 mars 2013
- 28 juin 2007 à 18:21
Bonjour!

Alors voilà j'aurais aimé savoir si les commandes en asp.net existaient:

-celle qui correspond à net localgroups /add (/delete) etc.. (commande MSDOS)

-celle qui correspond à net user nomuser passwd + net localgroups nomgroupe nomuser /add (/delete)...

En tout cas merci de votre aide!

3 réponses

izords
Messages postés
20
Date d'inscription
samedi 27 avril 2002
Statut
Membre
Dernière intervention
4 mars 2013

28 juin 2007 à 15:33
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 :

protectedvoid Page_Load(object sender, EventArgs e)
{
   Shell(
"net",
" localgroup groupetest /add");
}


private
void Shell(
string Command,
string Arguments)
{
   System.Diagnostics.
Process p =
new System.Diagnostics.
Process();
   p.StartInfo.FileName = Command;  
   p.StartInfo.CreateNoWindow =
true;
   p.StartInfo.UseShellExecute =
false;
   p.StartInfo.Arguments = Arguments;
   p.Start();
}




 
0
deathsurfer
Messages postés
35
Date d'inscription
lundi 15 juin 2009
Statut
Membre
Dernière intervention
28 juillet 2009

28 juin 2007 à 16:26
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!
0
izords
Messages postés
20
Date d'inscription
samedi 27 avril 2002
Statut
Membre
Dernière intervention
4 mars 2013

28 juin 2007 à 18:21
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);
      
      public NetworkAPI()
      {}
   }
}

Exemple pour l'ajout d'un groupe

public void AddGroup()
{
   NetworkAPI.LOCALGROUP_INFO_1 NewGroup = new NetworkAPI.LOCALGROUP_INFO_1();
   NewGroup.lgrpi1_name = txtName.Text;
   NewGroup.lgrpi1_comment = txtComments.Text;
   if(NetworkAPI.NetLocalGroupAdd(null, 1, ref NewGroup, 0)==0)
   {
      //OK
   }
   else
   {
      //Erreur
   }
}
0