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 :

Renommer une machine et Active Directory


Sujet :

VBScript

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Renommer une machine et Active Directory
    Bonjour,

    Je suis nouveau sur ce forum, j'espere qu'il n'y a pas de presentation a faire avant de poster, ou tout autre truc dans ce genre.
    Si c'est le cas dite le moi et je le ferai, je m'en excuse d'avance.

    Voila ce qui m'ammene.
    Je m'occupe d'un parc d'a peut pret 1000postes, tous Windows XP SP2.
    Etant "amateur" dans les VBScript j'ai reussi tant bien que mal a trouver et modifier à ma sauce ce script qui renome a distance des machines Windows XP, et fait la modif dans l'AD.

    Le voici :
    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    Dim RegKeyCompName, RegKeyTCPIP, WSHShell, ComputerName, HostName, DomainName, FQDN, ADRootDSE, ADSysInfo, ADComputerName, ADRenameOK, ADRNewName, vStartRenameCA, NewNAmeU, NewNameL, vStartRenameAD
     
    On Error Resume Next
     
    '###### READ IN EXISTING COMPUTERNAME AND FQDN ######
     
    RegKeyCompName = "HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\"
    RegKeyTCPIP = "HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\"
     
    Set WSHShell = CreateObject("WScript.Shell")
     
    ComputerName = WSHShell.RegRead (RegKeyCompName & "ComputerName\ComputerName")
    Hostname = WSHShell.RegRead (RegKeyTCPIP & "Hostname")
    DomainName = WSHShell.RegRead (RegKeyTCPIP & "Domain")
    FQDN = HostName & "." & DomainName
     
    Set ADRootDSE = GetObject("LDAP://RootDSE")
    If Err.Number <> 0 then
        ADComputerName = "Unable to determine this information"
        ADOU = "Unable to determine this information"
        ADRenameOK = "0"
    else
        Set ADSysInfo = CreateObject("ADSystemInfo")
        ADComputerName = ADSysInfo.ComputerName                'Get DN of local computer
        ADRenameOK = "1"
        ADOU = Mid(ADComputerName, InStr(ADComputerName, "=") + 1)    'Strip off just after the first = sign
        ADOU = Mid(ADOU, InStr(ADOU, "=") - 2)                'Strip off at 2 before the second = sign
        ComputerPath = "LDAP://" & ADComputerName
        OUPath = "LDAP://" & ADOU
    End if
     
    '###### ASK USER FOR NEW DETAILS ###########
     
    MsgBox "This script renames this computer and its active directory account" & vbCr & vbCr & "Name: " & ComputerName & vbCr & "FQDN: " & FQDN & vbCr & vbCr & "AD DN: " & ADComputerName & vbCr & "AD OU: " & ADOU, 0, "Information"
     
    NewName = InputBox("Enter the new computer name below and click OK to continue","Rename: Step 1")
    NewNameU = UCase(NewName)
    NewNameL = LCase(NewName)
    NewNameUCN = "CN=" & NewNameU
     
    if NewName = "" then
        wscript.echo "The computer name has not been changed"
    else
        vStartRenameCA = MsgBox ("Continue and rename computer to: " & NewName,vbYesNo or vbExclamation,"Rename: Step 2")
        if vStartRenameCA = 6 then
            With WSHShell
                .RegDelete RegKeyTCPIP & "Hostname"
                .RegDelete RegKeyTCPIP & "NV Hostname"
                .RegWrite RegKeyCompName & "ComputerName\ComputerName", NewNameU
                .RegWrite RegKeyCompName & "ActiveComputerName\ComputerName", NewNameU
                .RegWrite RegKeyTCPIP & "Hostname", NewNameL
                .RegWrite RegKeyTCPIP & "NV Hostname", NewNameL
            End With
            wscript.echo "The computer name and FQDN have been changed"
        elseif vStartRenameCA = 7 then
            wscript.echo "The computer name and FQDN have NOT been changed"
        end if
     
        if ADRenameOK = 1 then
            vStartRenameAD = MsgBox ("Continue and rename AD Account to: " & NewName,vbYesNo or vbExclamation,"Rename: Step 3")
            if vStartRenameAD = 6 then
                Set objItem = GetObject(ComputerPath)
                objItem.Put "dNSHostName", NewNameL & "." & DomainName
                objItem.SetInfo
                objItem.Put "displayName", "DESKTOP_" & NewNameU & "$"
                objItem.SetInfo
                objItem.Put "sAMAccountName", NewNameU & "$"
                objItem.SetInfo
     
                Set objNewOU = GetObject(OUPath)
                Set objMoveComputer = objNewOU.MoveHere _
                    (ComputerPath, NewNameUCN)
                wscript.echo "The active directory computer account has been changed"
            elseif vStartRenameAD = 7 then
                wscript.echo "The computer account in AD has NOT been changed"
            End If
        else
            wscript.echo "Insufficient information to rename AD account"
     
        End If
     
    End if
    Je fais auparavent des modification temporaire grace à ADSInfo pour autoriser l'utilisateur a changer son nom de machine dans l'AD.


    Maintenant mon souci est que nous recevons des Windows Vista.
    Et ce script ne fonctionne plus sous Windows Vista.
    Il ne me donne meme plus les info sur les OU de la premiere msgbox.
    Cela n'a pas l'air d'etre un probleme de securité, mais un probleme d'echange d'information entre l'AD et le Windows Vista.

    Est ce que quelqu'un a une idée du probleme, et le cas echeant a une idée de modification de ce script ? Voir meme un nouveau ?

    Merci d'avance et bonne journée.

  2. #2
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Bon est bien les nouvelles sont que j'ai reussi a faire reconnaitre l'AD par le script sous Vista, il me change le nom de la machine dans l'AD correctement.
    Mais rien au niveau de la machine.
    Resultat au reboot, comme la machine a garder son nom, et que l'AD a le nouveau, il ne peut plus ce connecter.

    Il ne me reste plus qu'a trouvé les modification a faire pour que Vista change le nom en local.

    Avez vous une idée ?

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 14
    Points : 11
    Points
    11
    Par défaut
    Je pourrais pas t'aider mais ton script m'interresse vivement.
    Je debute en vbs mais j'aimerais executer ce script sur un controlleur de ddoamine et modifier les comptes d'ordinateurs que je veux.

    Ca doit etre faisable , mais comment ??

  4. #4
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 14
    Points : 11
    Points
    11
    Par défaut
    Bonjour, je viens de trouver ce script pour renommer un pc, ca semble marcher.

    J'aimùerais mùaintenant creer un fichiers de mapping , en .txt ou autre ou je pourrais renseigner plusieurs nom de pc avec leur nom de destination .

    Auriez vous une idée de comment faire?

    Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    strComputer = "brutest"
    Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
     
    Set colComputers = objWMIService.ExecQuery ("Select * from Win32_ComputerSystem")
     
    For Each objComputer in colComputers
        err = objComputer.Rename("ho-dt-03470")
    Next

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2007
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Bonjour...

    Moi j'aimerais juste un script qui me renomme mon ordinateur avec une InputBox...

    est-ce possible que quelq'un me fournisse la source ??

    merci 'davance

  6. #6
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Je ne connais pas vista, mais il est possible que certain objets WMI ne soient plus disponible sous vista ou aient changé de déclaration.

    Peut être qu'ici se trouve la réponse :
    http://technet.microsoft.com/en-us/w.../aa905055.aspx
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

Discussions similaires

  1. Réponses: 4
    Dernier message: 14/09/2010, 14h28
  2. Implémenté une authentification sur ACtive Directory via Kerberos5 et LDAP
    Par arnaudperfect dans le forum RedHat / CentOS / Fedora
    Réponses: 1
    Dernier message: 01/07/2010, 13h04
  3. faire une sauvegarde de active Directory
    Par adel.87 dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 21/04/2008, 19h36
  4. lister les utilisateurs d'une OU d'Active Directory
    Par poussin_44 dans le forum VB.NET
    Réponses: 12
    Dernier message: 11/07/2007, 14h02
  5. Réponses: 2
    Dernier message: 08/09/2006, 19h10

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