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 :

Besoin explication sur déroulement d'un script


Sujet :

VBScript

  1. #1
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 37
    Par défaut Besoin explication sur déroulement d'un script
    Bonjour,

    Je ne comprend pas pourquoi mon script ne s’exécute pas normalement si un bloc du code est positionné avant ou après l'initialisation de certaines variables qui n'ont rien à voir avec l'appel d'une fonction.

    Si je déplace mon bloc If IsMember .... sous "SI BLOC DEPLACE CI-DESSOUS" alors mon test d'appartenance au groupe ne fonctionne pas.

    J'avoue que je ne comprends pas toutes les subtilité de VBS.

    Pouvez-vous m'éclairer sur ce comportement bizarre selon moi.

    Cordialement.


    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
    On Error Resume Next 
     
    Dim item,filterArray,GrpUser,oShell,dateStamp,comment,driveP,logonserver
     
    US = CreateObject("WScript.Shell").ExpandEnvironmentStrings("%UserProfile%")
    dateStamp = Now()
    comment = "Connexion au domaine MYDOM le " & dateStamp
     
    '*************************************************************************
    ' SI BLOC DEPLACE CI-DESSOUS  
    '*************************************************************************
     
     
    'CREATE NETWORK OBJECTS
    Set oShell = WScript.CreateObject ("WSCript.shell")
    Set mWSHNetwork = CreateObject("WScript.Network")
    Set mExisitingMappedDrives = mWSHNetwork.EnumNetworkDrives
    Set mFileSystemObject = CreateObject("Scripting.FileSystemObject")
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set ts = fso.CreateTextFile(US & "\SCRIPT.TXT")
     
    strUserName = mWSHNetwork.UserName
    logonserver = oShell.expandenvironmentstrings("%logonserver%")
     
    ' ************************************************************************************
    ' DEBUT BLOC QUI POSE PROBLEME 
    ' ************************************************************************************
    If IsMember("GRP_NO_GRPPRODDPE") Then
        WScript.quit
    End If
    ' ************************************************************************************
    ' FIN BLOC QUI POSE PROBLEME 
    ' ************************************************************************************
     
     
     
     
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    'RELEVENT FUNCTIONS BELOW
     
    Dim errorReport
     
    Private Function IsMember(groupName)
        domain = mWSHNetwork.UserDomain
    	MSGBOX groupName 
        user = mWSHNetwork.UserName
        'On windows 9x the script may begin running before the user is logged in. 
        'The following loop handles the scenerio described above.
        startTime = Now
        Do While user = ""
        	If DateDiff("s", startTime, Now) > 30 Then WScript.Quit
        	WScript.Sleep 500
        	user = mWSHNetwork.UserName
        Loop
        flgIsMember = False
        Set userObj = GetObject("WinNT://" & domain & "/" & user & ",user")
        For Each grp In userObj.Groups
            If Trim(grp.Name) = Trim(groupName) Then
                flgIsMember = true
                Exit For
            End If
        Next
        IsMember = flgIsMember
        Set userObj = Nothing
    End Function

  2. #2
    Membre Expert Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Par défaut
    Je ne comprend pas pourquoi mon script ne s’exécute pas normalement si un bloc du code est positionné avant ou après l'initialisation de certaines variables qui n'ont rien à voir avec l'appel d'une fonction.

    Si je déplace mon bloc If IsMember .... sous "SI BLOC DEPLACE CI-DESSOUS" alors mon test d'appartenance au groupe ne fonctionne pas.
    Eh bien, justement non: la fonction IsMember dépend d'une variable mWSHNetwork qui doit être initiée avant d'usage. Si vous mettez On Error Resume Next hors de jeu, l'erreur devrait être révélée comme telle ?!

Discussions similaires

  1. Explication sur syntaxe et déroulement d'un script
    Par dagbass63 dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 14/11/2019, 10h49
  2. Besoin explication sur la fusion de dimension
    Par dinette dans le forum Designer
    Réponses: 1
    Dernier message: 22/11/2013, 09h37
  3. Besoin d'explication sur un script
    Par DjiLow dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 29/01/2010, 10h45
  4. Besoin d'explications sur un bout de code
    Par zizitop dans le forum C
    Réponses: 7
    Dernier message: 26/04/2005, 14h51
  5. Besoin d'explications sur float et l'élasticité !
    Par KneXtasY dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 14/01/2005, 15h15

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