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 :

Problème de droits avec un script


Sujet :

VBScript

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 78
    Par défaut Problème de droits avec un script
    Bonjour,
    J'ai un code VBS à exécuter lors de l'ouverture de session qui mappe des lecteurs réseau. Le problème c'est qu'à l'ouverture de session, il y a ce message d'erreur :
    Script : logonScript.vbs
    Ligne : 15
    Caract. : 1
    Erreur : Permission refusée
    Code : 800A0046


    Voici les lignes de code concernées, la ligne 15 étant la dernière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ScriptLogName = "_LoginScript.log"
     
    Set WshNetwork = WScript.CreateObject("WScript.Network")
    Set WshShell = WScript.CreateObject("WScript.Shell")
    Set oDrives = WshNetwork.EnumNetworkDrives
    Set fso = WScript.CreateObject("Scripting.FileSystemObject")
    Set inputFile = fso.OpenTextFile(fTMP & "\" & ScriptLogName, 2, True)
    Une autre personne a exécuté ce script sur son ordinateur avec son nom et ça a très bien marché. Je n'ai apparemment pas les droits pour faire quelques chose. Je ne connais pas le VBS, donc de quels droits dois-je disposer ?

    Cordialement,

  2. #2
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 420
    Par défaut
    Bonjour;

    Si tu mets tout le script, on pourra y voir plus clair.
    Par exemple: que représente "fTMP" ?
    On ne sait pas comment tu l'as défini.
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 93
    Par défaut
    bonsoir

    (je ne comprends pas ta question l_autodidacte, pour moi fTMP doit être le chemin d'accès au script non?)

    Plusieurs questions :
    as tu essayé de lancer ce script à la main? (en passant directement par un explorateur windows)

    as-tu chercher les différences entre ton poste et celui de ton collègue? (par hasard es-tu simple utilisateur de ton poste alors que lui serait administrateur ?)

    bonne soirée

  4. #4
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 420
    Par défaut
    (je ne comprends pas ta question l_autodidacte, pour moi fTMP doit être le chemin d'accès au script non?)
    Pourtant ma question est bien claire.
    Remarque bien que
    Set inputFile = fso.OpenTextFile(fTMP & "\" & ScriptLogName, 2, True)
    est le fichier journal(.log) et pas le script lui-même.
    A part cela, tes questions sont à leur place.
    Et j'ajouterai que peut-être le dossier destination(fTMP) du fichier journal est l'un des dossiers protégés par le système(donc accès refusé).

    Essaie de changer la destination du fichier journal et mets par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set inputFile = fso.OpenTextFile("C:\" & ScriptLogName, 2, True)
    puis regarde ce que cela donne
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 78
    Par défaut
    Bonjour, voici la totalité du code :

    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
    'Group Drive Mappings Script
     
    Const HKEY_CURRENT_USER = &H80000001
     
    Dim WshNetwork, WshShell
    Dim oDrives, fUser, fDomain, oGroupDict
    Dim ScriptLogName
     
    ScriptLogName = "_LoginScript.log"
     
    Set WshNetwork = WScript.CreateObject("WScript.Network")
    Set WshShell = WScript.CreateObject("WScript.Shell")
    Set oDrives = WshNetwork.EnumNetworkDrives
    'Set fso = WScript.CreateObject("Scripting.FileSystemObject")
    'Set inputFile = fso.OpenTextFile(fTMP & "\" & ScriptLogName, 2, True)
     
    fTMP = WshShell.ExpandEnvironmentStrings("%TEMP%")
    WshShell.ExpandEnvironmentStrings("%COMPUTERNAME%")
     
    'WriteLog(Now() & ": ****** Start Login Script ******")
     
    fUser = WshNetwork.UserName
    fDomain = WshNetwork.UserDomain
     
    '****** Group Drives ******
    'WriteLog("Starting personal drive mapping")
    MapDrive "P:", "\\snoopy\" & wshNetwork.Username
     
    'WriteLog("Starting Group Script Area")
     
    if isMember("eqp-gestion") then
    	MapDrive "G:", "\\snoopy\Gestion"
    end if
     
    '***** use elseif for mapping multiple groups to the same share*******
    'if isMember("IT Infrastructure") then
    'MapDrive "S:", "\\server\it"
    'elseif isMember("Helpdesk Staff") then
    'MapDrive "S:", "\\server\it"
    'elseif isMember("Data Services") then
    'MapDrive "S:", "\\server\it"
    'end if
     
    'WriteLog("Ending Group Script Area")
     
     
    'WriteLog(Now() & ": ****** Login Script Complete ******")
    'WriteLog("")
     
    Function IsMember(sGroup)
    Dim sAdsPath, oUser, oGroup
     
    If IsEmpty(oGroupDict) Then
    Set oGroupDict = CreateObject("Scripting.Dictionary")
    oGroupDict.CompareMode = vbTextCompare
     
    sAdsPath = WshNetwork.UserDomain & "/" & WshNetwork.UserName
    Set oUser = GetObject("WinNT://" & sAdsPath & ",user")
     
    For Each oGroup In oUser.Groups
    oGroupDict.Add oGroup.Name, "-"
    Next
    Set oUser = Nothing
    End If
    IsMember = CBool(oGroupDict.Exists(sGroup))
    if (IsMember) then
    'WriteLog(Now() & " User is member of " & sGroup)
    end if
     
    End Function
     
    Sub MapDrive(sLetter,sUNC)
    Dim oNetwork
    Set oNetwork = WScript.CreateObject("WScript.Network")
    For i = 0 to oDrives.Count -1 Step 2
    if LCase(sLetter) = LCase(oDrives.Item(i)) then
    oNetwork.RemoveNetworkDrive sLetter, true, true
    'WriteLog(Now() & ": Removed drive """ & sLetter & """ from share """ & sUNC & " (already connected) " & "")
    end if
    Next
    oNetwork.MapNetworkDrive sLetter,sUNC
    If Err.Number = 0 Then
    'WriteLog(Now() & ": Connect """ & sLetter & """ to share """ & sUNC & """")
    else
    'WriteLog(Now() & ": Failed to Connect """ & sLetter & """ to share """ & sUNC & """")
    end if
    on error goto 0
    End Sub
     
    sub WriteLog(strEntry)
    inputFile.WriteLine(strEntry)
    End Sub
    En fait, c'est mon collègue qui a écrit ce code, car je ne connais pas le VBS.
    J'ai lancé le script à la main, il fonctionne et génère bien un fichier "_LoginScript.log" qui décrit les étapes réalisées.
    Apparemment, lorrsqu'on met ce script dans une stratégie de groupe, il ne marche pas car je crois qu'il essaye d'écrire le "_LoginScript.log" sur le contrôleur de domaine.
    Ce que j'ai fais, c'est que j'ai mis ensuite en commentaire toutes les lignes qui écrit dans le "_LoginScript.log". Le script fonctionne toujours quand il est lancé à la main, mais via la stratégie de groupe, rien ne se passe.

    A priori il n'y a pas de différence entre le poste de mon collègue et le mien, on a le même OS et les mêmes droits.

  6. #6
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 93
    Par défaut
    bonjour
    je n'ai pas compris "lorsqu’on met ce script dans une stratégie de groupe"
    Je connais assez mal la gestion des droit sous windows?
    A priori je présume qu'il y a un champ auteur sur tout script et que seul l'auteur peut l'exécuter.
    Il faudrait donc voir comment se gère les droits d'un fichier

    (remarque pour être certain de la ligne qui plante tu peux l'entourer de Msgbox (oui je sais c'est moche mais ca marche bien ) )

    http://support.microsoft.com/kb/469834/fr

    [edit] tien une lecture qui si çà avère vrai, viens de m'apprendre quelque chose de grand
    http://samuelhaddad.com/2009/06/26/v...0046-solution/

    genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if isMember("eqp-gestion") then
        MapDrive "G:", "\\snoopy\Gestion\"
    end if
    à tester
    [/edit]

Discussions similaires

  1. [Snow Leopard] Problème de droits avec un dossier, ses sous-dossier et ses fichiers
    Par rambc dans le forum Apple
    Réponses: 21
    Dernier message: 07/03/2010, 10h18
  2. Problème de droits avec des serveurs virtuels
    Par xave dans le forum Apache
    Réponses: 8
    Dernier message: 21/10/2009, 15h36
  3. problème de droits avec crontab
    Par kaele dans le forum Administration système
    Réponses: 2
    Dernier message: 30/03/2009, 17h25
  4. Problème de charset avec un script ASP
    Par torobravo dans le forum ASP
    Réponses: 6
    Dernier message: 10/01/2008, 19h30
  5. [FTP] Problème de droit avec rmdir
    Par Phenomenium dans le forum Langage
    Réponses: 4
    Dernier message: 18/08/2006, 01h45

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