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

VBScript Discussion :

Ajout d'un groupe AD dans groupe local (machine)


Sujet :

VBScript

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 63
    Points : 31
    Points
    31
    Par défaut Ajout d'un groupe AD dans groupe local (machine)
    Bonjour,

    Dans le cadre d'un changement de structure je dois mettre au point quelques scripts vbs.

    L'un d'eux doit permettre d' ajouter au groupe local administrateur de chaque machine un groupe créé au niveau AD (Active Directrory)

    Le script suivant renvoie un message d'erreur (cet objet ne gère pas cette méthode ou propriété), j'ajoute que je n'ai fait que reprendre un script glané grace à mon ami google et adapté pour récupérer le nom de la machine automatiquement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Set WshNetwork = WScript.CreateObject("WScript.Network" ) 
    Set WshShell = WScript.CreateObject("WScript.Shell" ) 
    Set WshSysEnv = WshShell.Environment("SYSTEM" ) 
    Dim nom_machine 
    nom_machine = WshNetwork.ComputerName 'contient nom de la machine 
     
    msgbox nom_machine
     
    Set grp1 = GetObject("WinNT://mondomaine/__materiel")
    Set grp2 = GetObject("WinNT://"& nom_machine  & "/Administrateur")
    Msgbox grp1.ADsPath
    Msgbox grp2.ADsPath
    grp2.add(grp1.ADsPath
    )


    Voyez vous ou est le problème.

    Avez un exemple de script qui me permettrait de faire cela (ajout groupe ad dans groupe local).

    Merci par avance

    G.

    ps: désolé pour l'oubli des balises codes

  2. #2
    Membre averti
    Inscrit en
    Août 2007
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 57

    Informations forums :
    Inscription : Août 2007
    Messages : 302
    Points : 341
    Points
    341
    Par défaut
    Salut,

    dans ton script, tu as inversé le nom de machine et le groupe administrateur.
    D'autre part, si tu as des machines avec des OS non français, ca ne fonctionnera pas (un OS anglais connait administrator et non pas administrateur). Donc, je te conseille d'abord d'extraire le nom du groupe administrateur local, puis après de claquer ce nom sur ta machine.
    Voici comment 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
     
    on error resume Next
     
    strComputer = "."
    Set WshNetwork = CreateObject("Wscript.Network")
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
     
    Set colAccounts = objWMIService.ExecQuery("Select * From Win32_Group Where LocalAccount = TRUE And SID = 'S-1-5-32-544'")
     
    For Each objAccount in colAccounts
        AdmGrp = objAccount.Name
    Next
     
    Set objGroup = GetObject("WinNT://" & strComputer & "/" & AdmGrp)
     
    Set objUser = GetObject("WinNT://" & AdmGrp)
    objGroup.Add(objUser.ADsPath)
     
    MsgBox "Command completed"
     
    WScript.Quit
    A++

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 63
    Points : 31
    Points
    31
    Par défaut
    Citation Envoyé par RadPAT Voir le message
    Salut,

    dans ton script, tu as inversé le nom de machine et le groupe administrateur.
    D'autre part, si tu as des machines avec des OS non français, ca ne fonctionnera pas (un OS anglais connait administrator et non pas administrateur). Donc, je te conseille d'abord d'extraire le nom du groupe administrateur local, puis après de claquer ce nom sur ta machine.
    Voici comment je fais :

    A++
    Bonjour et merci,

    J'ai remodifié ton exemple à ma convenance et cela fonctionne (je vais encore affiner).

    cela donne pour info

    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
     
     
    on error resume Next
    Set WshNetwork = WScript.CreateObject("WScript.Network" ) 
    Set WshShell = WScript.CreateObject("WScript.Shell" ) 
    Set WshSysEnv = WshShell.Environment("SYSTEM" ) 
    Dim nom_machine 
    nom_machine = WshNetwork.ComputerName 'contient nom de la machine 
    strComputer = "."
    Set WshNetwork = CreateObject("Wscript.Network")
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
    Set colAccounts = objWMIService.ExecQuery("Select * From Win32_Group Where LocalAccount = TRUE And SID = 'S-1-5-32-544'")
     
    For Each objAccount in colAccounts
        AdmGrp = objAccount.Name
    Next
     
    Set objgroup= GetObject("WinNT://"&nom_machine &"/" & AdmGrp)
    Set objUser = GetObject("WinNT://mondomaine/__materiel")
     
    objGroup.Add(objUser.ADsPath) 
     
    WScript.Quit
    Je classe donc cette discussion en résolu.

    G.

  4. #4
    Membre averti
    Inscrit en
    Août 2007
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 57

    Informations forums :
    Inscription : Août 2007
    Messages : 302
    Points : 341
    Points
    341
    Par défaut
    Citation Envoyé par geros Voir le message
    Bonjour et merci,

    J'ai remodifié ton exemple à ma convenance et cela fonctionne (je vais encore affiner).
    supprime déjà tout ce qui concerne WshShell.Environment, WshNetwork et nom_machine

    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
     
     
    on error resume Next
     
    strComputer = "."
     
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
    Set colAccounts = objWMIService.ExecQuery("Select * From Win32_Group Where LocalAccount = TRUE And SID = 'S-1-5-32-544'")
     
    For Each objAccount in colAccounts
        AdmGrp = objAccount.Name
    Next
     
    Set objgroup= GetObject("WinNT://"& strComputer & "/" & AdmGrp)
    Set objUser = GetObject("WinNT://mondomaine/__materiel")
     
    objGroup.Add(objUser.ADsPath) 
     
    WScript.Quit
    A++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. group box dans group box + radiobouton
    Par trisbro dans le forum Visual Studio
    Réponses: 0
    Dernier message: 14/02/2014, 16h04
  2. Ajout d'un groupe.AD dans les admins locaux
    Par Mothership dans le forum VBScript
    Réponses: 2
    Dernier message: 24/06/2009, 13h12
  3. Réponses: 4
    Dernier message: 13/01/2009, 18h19
  4. ajout case option dans groupe option
    Par Pierren dans le forum Access
    Réponses: 2
    Dernier message: 06/10/2006, 19h25
  5. [Win 2000] Ajouter un compte du domaine dans le groupe Admin
    Par drinkmilk dans le forum Windows Serveur
    Réponses: 4
    Dernier message: 14/03/2006, 12h03

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