IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[VB.NET 2005] Créer un utilisateur Windows


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Avatar de Psycadi
    Homme Profil pro
    Chef de projet - Expert en message box
    Inscrit en
    Juillet 2003
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet - Expert en message box

    Informations forums :
    Inscription : Juillet 2003
    Messages : 147
    Par défaut [VB.NET 2005] Créer un utilisateur Windows
    Bonjour,

    Je suis en train de faire un petit programme qui créer des utilisateurs sur des postes. Je me sert de l'API NetUserAdd avec un USER_INFO_2 mais j'ai quelques problèmes.

    Tout d'abord, je n'arrive pas à les mettre administrateur du poste.

    Voilà ce que je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    Public Const USER_PRIV_USER As UInt32 = 1
    Public Const USER_PRIV_ADMIN As UInt32 = 2
     
    Private Sub Btn_Creer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_Creer.Click
    Dim ErrCreateUser As NET_API_STATUS
    ErrCreateUser = CreateUser("MonPC", "utilisateur-admin", "un mot de passe super dur", "Une description", "Nom complet du user", USER_PRIV_ADMIN)
    End Sub
     
    Public Shared Function CreateUser(ByVal ServerName As String, ByVal UserName As String, ByVal Password As String, ByVal Description As String, ByVal FullName As String, ByVal Privilege As UInt32) As NET_API_STATUS
    Dim ui As NativeWin32.NetApi32.USER_INFO_2
    Dim dwLevel As DWORD = 1
    Dim dwError As DWORD = 0
     
    ui.full_name = FullName
    ui.logon_server = Nothing
    ui.param = Nothing
    ui.usr_comment = Nothing
    ui.workstations = Nothing
    ui.name = UserName
    ui.password = Password
    ui.priv = Privilege
    ui.home_dir = Nothing
    ui.comment = Description
    ui.flags = UF_SCRIPT
    ui.script_path = Nothing
     
    Return NetUserAdd(ServerName, dwLevel, ui, dwError)
    End Function
     
    <DllImport("Netapi32.dll", CallingConvention:=CallingConvention.Winapi, CharSet:=CharSet.Auto, SetLastError:=True)> _
    Public Shared Function NetUserAdd(ByVal ServerName As String, ByVal Level As Integer, <[In]()> ByRef buf As USER_INFO_2, <Out()> ByRef parm_err As DWORD) As NET_API_STATUS
    End Function
    Bon le code est un peu fouilli car j'ai viré pas mal de chose qui n'interviennent pas mais si au début du code, je met USER_PRIV_USER au lieu de USER_PRIV_ADMIN, cela marche sans erreur.
    Bon il faut quand même préciser que mais dans le cas de USER_PRIV_USER, si je vais dans les utilisateurs de la machine, mon user est bien créer mais il n'est pas membre du groupe "Utilisateurs".

    Si quelqu'un a une idée pour créer un admin sur un poste je suis preneur...


    Autre problème, j'aimerai bien que l'utilisateur change son mot de passe à la première connexion et la pareil, je me suis taper les USER_INFO_1 2 3 et 4 et je n'ai pas trouvé la variable qui correspondait

    Si vous pouviez m'aider aussi

    Merci d'avance si vous avez des idées ou encore mieux une solution.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 59
    Par défaut
    Essaye avec ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        Declare Function NetGroupAddUser Lib "NETAPI32" (ByVal servername As String, ByVal groupname As String, ByVal userName As String) As Long
        Declare Function NetUserAdd Lib "NETAPI32" (ByVal servername As String, ByVal level As Long, ByVal buf As String, ByRef parm_err As Long) As Long

  3. #3
    Membre confirmé
    Avatar de Psycadi
    Homme Profil pro
    Chef de projet - Expert en message box
    Inscrit en
    Juillet 2003
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet - Expert en message box

    Informations forums :
    Inscription : Juillet 2003
    Messages : 147
    Par défaut
    J'étais en train d'essayer avec NetUserSetGroups avec un GROUP_USER_INFO et ça marche pas.

    J'ai testé avec ton api mais ça marche pas non plus. Il doit y avoir des pb de droit ou un truc comme ça.

    J'ai lancé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NetGroupAddUser("localhost","Administrateurs",UserName)
    Et cet imbécile me sort un NET_API_STATUS 2220 (Group not found)

    Tu aurais pas un petit bout de code, si ça se trouve, je fais un truc qui veux pas.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 59
    Par défaut
    attention, si t'es sur Vista, c'est bien possible que cela ne marche pas

  5. #5
    Membre confirmé
    Avatar de Psycadi
    Homme Profil pro
    Chef de projet - Expert en message box
    Inscrit en
    Juillet 2003
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet - Expert en message box

    Informations forums :
    Inscription : Juillet 2003
    Messages : 147
    Par défaut
    Et bien non justement, je suis sur du XP voir du 2003.
    J'ai cru que cela venait des droits (car je suis en réseau d'entreprise) mais je suis bien admin de ma machine.

  6. #6
    Futur Membre du Club
    Inscrit en
    Janvier 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Janvier 2011
    Messages : 4
    Par défaut
    Bonjour (4 ans après),

    j'ai eu un problème de ce type en voulant créer un compte Admin avec une petite appli en Delphi. Pour la structure de ton programme, je pense qu'il n'y a pas de soucis. Là ou ça bloque, c'est l'erreur 2220 (le groupe n'a pas été trouvé).

    Si je ne te dis pas de bêtises, lorsque tu crées un compte et que tu tentes de l'ajouter à un groupe grace à NetGroupAddUser, la commande cherche les groupes dits "globaux".

    Si tu veux bien créer un compte en local, et lui ajouter les droits du groupe Administrateurs (qui est un groupe local), essayes plutôt avec cette commande : NetLocalGroupAddMembers.

    Voici l'aide sur le MSDN : http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx.

    Tu verras que la structure ressemble à celle du NetUserAdd, avec pour buf ton ui, pour level ton dwLevel, et en totalentries 1 (correspond au nombre de groupe(s) auquel doit être ajouté l'utilisateur).

    Reste plus qu'à faire attention à la langue de l'OS (FR : 'Administrateurs', UK : 'Administrators')

Discussions similaires

  1. [VB.net 2005]Problème avec des windows form
    Par Entela dans le forum Windows Forms
    Réponses: 3
    Dernier message: 28/12/2008, 17h31
  2. [VB.net 2005] Nom de fichier Windows depuis un nom dos
    Par ricil78 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 09/08/2007, 09h32
  3. [VB.NET 2005] Password et Login windows
    Par matrix_ceg dans le forum VB.NET
    Réponses: 4
    Dernier message: 04/04/2007, 12h46
  4. Réponses: 12
    Dernier message: 03/01/2007, 13h55
  5. [VB.NET] Comment créer boutons windows???
    Par fdiedler dans le forum Windows Forms
    Réponses: 11
    Dernier message: 21/02/2005, 18h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo