MS DOS et asp.net

Signaler
Messages postés
35
Date d'inscription
lundi 15 juin 2009
Statut
Membre
Dernière intervention
28 juillet 2009
-
Messages postés
20
Date d'inscription
samedi 27 avril 2002
Statut
Membre
Dernière intervention
4 mars 2013
-
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

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

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();
}




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

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!
Messages postés
20
Date d'inscription
samedi 27 avril 2002
Statut
Membre
Dernière intervention
4 mars 2013

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
   }
}