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 :

Désactiver un compte utilisateur local


Sujet :

VBScript

  1. #1
    Candidat au Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Février 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Février 2013
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Désactiver un compte utilisateur local
    Bonjour,

    Je ne connais VBs que de nom et j'aimerai faire une manip sur un ensemble de machines...

    Mon besoin;
    J'ai créé des user locaux sur des machines de mon réseau, qui vont être utilisés à une date X.
    Je voudrais désactiver ces comptes en mettant un script au démarrage des machines aprés cette date X.

    J'ai un serveur linux (avec une distrib fait par la maison) dc pas moyen de passer par AD...
    J'ai des machines principalement sous XP (et oui ca existe encore)
    J'aimerai bien avoir la démarche pour xp mais aussi 7.

    Une idée ?

    J'ai trouvé un vieil article sur LaboInfo mais ca n'a pas l'aire de fonctionner...

    Désactive un compte d'utilisateur local avec "True" ou l'active grâce à "False":

    strComputer = "NOM DE L'ORDINATEUR"
    Set objUser = GetObject("WinNT://" & strComputer & "/TOTO")
    objUser.AccountDisabled = True
    objUser.SetInfo
    Si quelqu'un avait la patience de m'aider
    Merci par avance.

  2. #2
    Membre à l'essai
    Homme Profil pro
    collegien
    Inscrit en
    Avril 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : collegien

    Informations forums :
    Inscription : Avril 2013
    Messages : 9
    Points : 11
    Points
    11
    Par défaut
    ce script supprimeras le compte renseigné(pas le desactiver si tu veut je peut sauvegarder les donnes et les mettre dans mes docs...) a la date inscrite
    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
    do
    jour= "le jour de fin en nombre et sans les guillemets"
    annee ="l'annee de fin en nombre et sans les guillemets"
    compte="le nom du compte en question(avec guillemets)"
     
    if jour= Day(now) and annee=Year(now) then
    'si le jour programme=au jour d'aujourd'hui et l'annee programmée =a cette annee,alors:
     
    Set objShell = WScript.CreateObject ("WScript.shell")
    commande_finale="net user "&compte&" /delete"
    'supprimer le compte
    objShell.run commande_finale,0
    'ici,on se sers de wshShell pour se servir d'une commande comme un .bat
     
    else
    'sinon ne rien faire
    objShell.run"ping localhost -n 86400",0,true
    'je me sers d'une commande de la cmd car sur windows 7 la commande sleep(beaucoup plus pratique mais est desactivée 
    'par defaut sur seven...)
    end if
    loop

  3. #3
    Membre à l'essai
    Homme Profil pro
    collegien
    Inscrit en
    Avril 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : collegien

    Informations forums :
    Inscription : Avril 2013
    Messages : 9
    Points : 11
    Points
    11
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    do
    jour= "le jour de fin en nombre et sans les guillemets"
    mois= "le mois en nombre et sans les guillemets"
    annee ="l'annee de fin en nombre et sans les guillemets"
    compte="le nom du compte en question(avec guillemets)"
    if jour>= Day(now) and annee>=Year(now) and mois>= Month(now) then
    Set objShell = WScript.CreateObject ("WScript.shell")
    commande_finale="net user "&compte&" /delete"
    objShell.run commande_finale,0
    else
    objShell.run"ping localhost -n 86400",0,true
    end if
    loop
    est plus corect:
    1)si le jour tombe sur un week end et que le l'ordi n'est pas allumé...le script ne fonctionneras plus
    2)j'ai oublie le mois

    si tu veut je peut sauvegarder dans mes documents les fichiers perso(le comtenu du bureau,mes images...)

    met ce fichier dans C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup pour les windows7 et vista pour les autres chais pas

    ce dosier est accecible dans demarrer=>touts les programmes=>clic droit sur demmarrage=>ouvrir tous les utilisateur

  4. #4
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 830
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 830
    Points : 9 200
    Points
    9 200
    Par défaut
    J'ai trouvé ce code dans le net (pas testé), pour désactiver tous les comptes utilisateur spécifiés dans un fichier texte. Le fichier texte peut être spécifié dans la première ligne du script. Il devrait être dans le format suivant:
    username1
    username2
    etc..
    ..
    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
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    '#==============================================================================
    '#==============================================================================
    '#  SCRIPT.........:	DisableAccounts.vbs
    '#  AUTHOR.........:	Stuart Barrett
    '#  VERSION........:	1.0
    '#  CREATED........:	28/09/2012
    '#  LICENSE........:	Freeware
    '#  REQUIREMENTS...:  
    '#
    '#  DESCRIPTION....:	Disables all user accounts as specified in text file,
    '#						saves results to log file
    '#
    '#  NOTES..........:	Text file should be in format:
    '#						
    '#						username1
    '#						username2
    '#						etc.
    '# 
    '#  CUSTOMIZE......:  
    '#==============================================================================
    '#  REVISED BY.....:	
    '#  EMAIL..........:  
    '#  REVISION DATE..:	
    '#  REVISION NOTES.:	
    '#==============================================================================
    '#==============================================================================
     
    strFile = "c:\users.txt"
    strLogFile = "c:\disabledusers.log"
     
    Const ForReading = 1
    Const ForAppending = 8
    Const ADS_UF_ACCOUNTDISABLE = &H02
     
    intCount = 0
    intDisabledCount = 0
     
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFile = objFSO.OpenTextFile(strFile, ForReading)
    Set objLogFile = objFSO.OpenTextFile(strLogFile, ForAppending, True)
     
    On Error Resume Next
     
    Set objRootDSE = GetObject("LDAP://RootDSE")
    strDNSDomain = objRootDSE.Get("defaultNamingContext")
     
    Set objConnection = CreateObject("ADODB.Connection")
    objConnection.Open "Provider=ADsDSOObject;"
     
    Set objCommand = CreateObject("ADODB.Command")
    objCommand.ActiveConnection = objConnection
     
    Set objCommand.ActiveConnection = objConnection
    strBase = "<LDAP://" & strDNSDomain & ">"
     
    objCommand.Properties("Page Size") = 1000
    objCommand.Properties("Timeout") = 30
    objCommand.Properties("Cache Results") = False
     
    booLogging = MsgBox("This script will attempt to Disabled all user accounts as specified in the text file '" & _
    	strFile & "'  " & vbCrLf & vbCrLf & "Would you like to append the results to the log file located at '" & _
    	strLogFile & "'?  ", vbYesNo+vbQuestion, "Disable Accounts")
     
    If booLogging = vbYes Then
    	booLogging = True
    	strLogMsg = "The log file can be located at: '" & strLogFile & "'"
    	Else booLogging = False
    End If
     
    While not objFile.AtEndOfStream 
    	strUser = objFile.Readline 
     
    	strFilter = "(sAMAccountName=" & strUser & ")"
    	strAttributes = "distinguishedName"
    	strQuery = strBase & ";" & strFilter & ";" & strAttributes & ";subtree"
     
    	objCommand.CommandText = strQuery
     
    	Set objRecordset = objCommand.Execute
     
    	Do Until objRecordset.EOF
    		strUserDN = objRecordset.Fields("distinguishedName").Value
    		objRecordset.MoveNext
    	Loop
     
    	objRecordset.Close
     
    	Set objUser = GetObject("LDAP://" & strUserDN) 
     
    	intUACFlag = objUser.Get("UserAccountControl")
     
    	If (intUACFlag AND ADS_UF_ACCOUNTDISABLE) = 0 Then
    		objUser.Put "userAccountControl", 514
    		objUser.SetInfo
     
    		Set objUser = Nothing
     
    		If booLogging = True Then objLogFile.WriteLine Now() & vbTab & strUser & vbTab & "Disabled Account"
    		intCount = intCount + 1
    		Else
    			intDisabledCount = intDisabledCount + 1
    			strMsg = "  *  " & strUser & vbCrLf & strMsg
    			If booLogging = True Then objLogFile.WriteLine Now() & vbTab & strUser & vbTab & "Already Disabled"
    	End If
    WEnd
     
    If intDisabledCount <> 0 Then
    	WScript.Echo "Disabled " & intCount & " user accounts. " & strLogMsg & vbCrLf & vbCrLf & _
    		"The following accounts were already disabled: " & vbCrLf & strMsg
    	Else
    		WScript.Echo "Disabled all " & intCount & " user accounts. " & strLogMsg
    End If

  5. #5
    Candidat au Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Février 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Février 2013
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Cool, j'essaie tout ca et je reviens vers vous pour la suite de mon aventure.

    MERCI

Discussions similaires

  1. Réponses: 0
    Dernier message: 17/06/2009, 18h01
  2. recuperer le compte windows d'un utilisateur local
    Par kam81 dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 01/06/2008, 17h57
  3. Stratégie locale / compte utilisateur uniquement
    Par Radio_8 dans le forum Windows XP
    Réponses: 7
    Dernier message: 05/03/2008, 09h31
  4. [xp] compte passport et compte utilisateur local
    Par Eusebius dans le forum Windows XP
    Réponses: 5
    Dernier message: 06/07/2005, 14h59

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