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 :

VBS renommer différents comptes et SID


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    stage
    Inscrit en
    Juin 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : stage

    Informations forums :
    Inscription : Juin 2015
    Messages : 11
    Par défaut VBS renommer différents comptes et SID
    Bonjour tous,

    Voila je débute depuis vraiment peu en VBS et en faisant mes recherches je retombe souvent sur developpez.net et j'ai aussi appris sur le site.

    Aujourd'hui je souhaite renommer mes comptes administrateurs via un script vbs, jusqu'ici rien de difficile mais sur certains serveurs j'ai "Administrateur" et d'autres "Administrator" et la je bute... alors ma partie de script sur le renommage (car mon script fait d'autre choses qui fonctionnent) j'ai écrit un truc un peu moche qui est:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    On Error resume next
     
    strComputer = objTextIn.ReadLine
    strOldName = "Administrator"
    strOldName2 = "Administrateur"
    strNewName = "Localusr"	
    set objComp = GetObject("WinNT://" & strComputer)
    set objUser = GetObject("WinNT://" & strComputer & "/" & strOldName & ",user")
    set objUser = GetObject("WinNT://" & strComputer & "/" & strOldName2 & ",user")
    set objNewUser = objComp.MoveHere(objUser.ADsPath, strNewName)
     
    On Error GoTo 0

    Cependant je voudrais faire un script sans le "on error" genre quelque chose qui vérifie le nom si c'est "administrateur" ou "administrateur" et si le sid correspond à celui de l'administrateur alors il renomme en "localusr".

    j’espère être explicite dans ma demande et vous remercie par avance de votre aide.

    Grenth

  2. #2
    Membre chevronné Avatar de pitchalov
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 340
    Par défaut
    Bonjour,

    Ce Hey Scripting Guy indique comment récupérer le nom du compte Adminsitrateur Local.
    Tu peux t'en servir de cette manière :
    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
     
    ' Get Computer Name
    Set WshNetwork = CreateObject("WScript.Network")
    strComputer = WshNetwork.ComputerName
     
    ' WMI method to get local Administrator user name
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
     
    Set colAccounts = objWMIService.ExecQuery _
        ("Select * From Win32_UserAccount Where Domain = '" & strComputer & "'")
     
    For Each objAccount in colAccounts
        If Left (objAccount.SID, 6) = "S-1-5-" and Right(objAccount.SID, 4) = "-500" Then
            strAdminLocalUserName = objAccount.Name
        End If
    Next
     
    'Rename the user
    strNewName = "Localusr"	
    set objUser = GetObject("WinNT://" & strComputer & "/" & strAdminLocalUserName & ",user")
    set objNewUser = objComp.MoveHere(objUser.ADsPath, strNewName)
    Bonne continuation

  3. #3
    Membre chevronné Avatar de pitchalov
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 340
    Par défaut
    Encore mieux : tout faire en WMI :
    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
    Set WshNetwork = CreateObject("WScript.Network")
    strComputer = WshNetwork.ComputerName
     
    strNewName = "Localusr"	
     
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
     
    Set colAccounts = objWMIService.ExecQuery _
        ("Select * From Win32_UserAccount Where Domain = '" & strComputer & "'")
     
    For Each objAccount in colAccounts
        If Left (objAccount.SID, 6) = "S-1-5-" and Right(objAccount.SID, 4) = "-500" Then
            strAdminLocalUserName = objAccount.Name
            objAccount.Rename strNewName 
        End If
    Next

  4. #4
    Membre régulier
    Homme Profil pro
    stage
    Inscrit en
    Juin 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : stage

    Informations forums :
    Inscription : Juin 2015
    Messages : 11
    Par défaut
    Salut,

    Entre temps j'ai fais casi la meme chose en wmi. il me manquer ta ligne 13 et 14, je ne savais pas comment traduire donc merci beaucoup

    Grenth

  5. #5
    Membre régulier
    Homme Profil pro
    stage
    Inscrit en
    Juin 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : stage

    Informations forums :
    Inscription : Juin 2015
    Messages : 11
    Par défaut
    J'ai une dernière question:

    Si je veux renommer mes administrateurs depuis une liste.txt avec:
    Serveur1
    Serveur2
    Serveur3
    ...

    Je suis bloquer.

    Par exemple dans le code de Pitchalov, je souhaite ajouter quelques lignes genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    dim objTextIn
    strInputPath = "D:\log vbs\Liste_serveurs.txt"
    set objTextIn = objFSO.OpenTextFile( strInputPath,1 )
    strComputer = objTextIn.ReadLine
     
    ...
     
    loop
    Pour pouvoir renommer les admins de la liste

  6. #6
    Membre Expert

    Homme Profil pro
    Ingénieur Réseaux
    Inscrit en
    Juin 2012
    Messages
    877
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2012
    Messages : 877
    Par défaut
    Bonjour,

    Tu peux procéder de cette façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    'a la suite du début de ton code pour ouvrir un fichier
    Data = objTextIn.ReadAll
    objTextIn.Close 
     
    'Tableau contenant chaque ligne de ton fichier
    arrLines = Split(Data,vbCrLf)
     
    'Parcours du contenu de ton fichier
    For i = 0 To UBound(arrLines)
    	strComputer = arrLines(i)
    	'Ton code pour les renommer les admins
    Next

Discussions similaires

  1. Utilisation de différents comptes
    Par JulienNvr dans le forum VBA Outlook
    Réponses: 2
    Dernier message: 16/05/2013, 17h10
  2. [VBS] Fonction qui compte le nombre de lignes dans un fichier texte
    Par ProgElecT dans le forum Vos Contributions VBScript
    Réponses: 0
    Dernier message: 03/05/2012, 13h48
  3. Gestion de différents comptes
    Par JavVax dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 17/10/2010, 00h57
  4. connexion à un partage avec différents comptes
    Par lololabricole dans le forum Sécurité
    Réponses: 11
    Dernier message: 16/04/2007, 01h59
  5. [VBS]Renommer les fichiers du répertoire courant
    Par JuS80 dans le forum VBScript
    Réponses: 2
    Dernier message: 02/03/2007, 09h17

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