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] Erreur dans mon script "Robocopy+share+ACL"


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 24
    Par défaut [VBS] Erreur dans mon script "Robocopy+share+ACL"
    Bonjour tout le monde,

    Cela fait 3 jours que je cherche un script qui permet de faire de la copie de Fichier+share+Acl et je vous cache pas ça court pas les rues. La plupart des propositions pour les shares ou je bloque complet vu ma nullité en langage, c'est l'export de la clé de registre "Shares" sauf que je veux pas tout récupérer.

    Voila ce que j'ai trouvé comme script :
    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
    Set objShell = CreateObject("Wscript.Shell")
     
    objSource = InputBox("Enter Source")
    objDestination = InputBox("Enter Destination")
     
    objCommand = "RoboCopy.Exe " & Chr(34) & objSource & Chr(34) & " " & Chr(34) & objDestination & Chr(34) & " /SEC /E /r:1 /w:2"
    objShell.Run(objCommand)
     
     
    Set objWMIServiceSource = GetObject("winmgmts:" _
     & "{impersonationLevel=impersonate}!\\" & objSource & "\root\cimv2" )
     Set ListeDesPartagesSource = objWMIServiceSource.ExecQuery("Select * from Win32_Share" )
     
        Set objWMIServiceDestination = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" & objDestination & "\root\cimv2" )
       Set ListeDesPartagesDestination = objWMIServiceDestination.ExecQuery _
       ("Select * from Win32_Share" )
       Set NouveauPartage = objWMIServiceDestination.Get("Win32_Share" )
     
       For each PartageSource in ListeDesPartagesSource
     
           PartageExiste = False
           For each PartageDestination in ListeDesPartagesDestination
               If PartageDestination.Name = PartageSource.Name Then
                   PartageExiste = True
                   PartageDestination.Path = PartageSource.Path
                   PartageDestination.Type = PartageSource.Type
                   PartageDestination.MaximumAllowed = PartageSource.MaximumAllowed
                   PartageDestination.Caption = PartageSource.Caption
               End If
           Next
     
           If Not PartageExiste Then
               CodeRetour = NouveauPartage.Create(PartageSource.Path, PartageSource.Name, _
               PartageSource.Type, PartageSource.MaximumAllowed, _
               PartageSource.Caption)
           End If
       Next

    Cela bloque sur "Set objWMIServiceSource" et je trouve pas de détail sur cette objet (c'est bien sa??)

    Alors si il y a une personne qui veut bien m'expliquer pourquoi ça bloque je suis preneur.

    Mon script actuel modifie les propriétés d'un compte dans l'onglet Profil et Profil de services Terminal Server et je voudrais le continuer sur la copie des données. Une fois terminé si cela intéresse du monde.

    Merci d'avance pour votre aide

  2. #2
    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 : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Qu'est ce que tu mets comme valeur pour objSource et objDestination ?

    Normalement cela doit contenir un addresse IP d'une machine ou "." pour désigner la machine local.

    Je ne sais plus si GetObject est sensible à la case, mais en général le path WMI est \root\CIMV2 et non \root\cimv2.

    Un exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    strComputer = "." 
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
    Elle dit quoi exactement l'erreur.

    Cela bloque sur "Set objWMIServiceSource" et je trouve pas de détail sur cette objet (c'est bien sa??)
    L'objet objWMIServiceSource n'existe pas en soit. C'est le nom de la variable que tu donnes pour récupérer l'objet renvoyer par la fonction GetObject.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 24
    Par défaut
    Le message que j'ai :

    Line: 10
    Column:1
    Error : (null)
    Code : 80041021
    Source : (null)

    Il bloque au debut de ligne

    Oui dans les InputBox je donne un chemin UNC d'un serveur à un autre.

    Si j'ai bien comprit le script, objSource est le chemin dans lequel il est censé exécuter l'action demandée. Non ?

    Je corrige pour la case, Merci

  4. #4
    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 : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    UNC
    Je ne me souviens plus, un chemin UNC c'est un chemin genre \\serverName ?

    Ce genre de chose ne marche pas, il faut que ce soit genre:
    "192.168.0.15"
    ou
    "."

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 24
    Par défaut
    Dans le InputBox Source je lui indique

    \\192.0.0.1\c$\temp

    Idem pour la Destination sur une autre adresse.

    Si je fais que le robocopy cela fonctionne correctement

  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 : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    \\192.0.0.1\c$\temp
    Heu... Je crois que c'est faux. Non seulement je pense que rajouté c$\temp cela apporte une erreur, mais en plus tu mets au début \\ alors que dans ton algo de connection WMI tu en as un déjà.
    Essaye juste:
    192.0.0.1

    WMI n'est pas robocopy, il est logique qu'il ne prenne pas les même paramètre en entrée.

Discussions similaires

  1. [VBS] erreur dans mon script "création d'utilisateur AD"
    Par stefdu59 dans le forum VBScript
    Réponses: 8
    Dernier message: 07/05/2009, 16h08
  2. Erreur dans mon script
    Par dcollart dans le forum Linux
    Réponses: 3
    Dernier message: 21/09/2006, 15h02
  3. Dessin avec Imager.. erreur dans mon script
    Par Chekov dans le forum Modules
    Réponses: 2
    Dernier message: 18/06/2006, 14h14
  4. erreur dans mon script
    Par Swata dans le forum Langage
    Réponses: 4
    Dernier message: 21/09/2005, 00h02
  5. [langage]erreur dans mon script
    Par Fabouney dans le forum Langage
    Réponses: 11
    Dernier message: 30/06/2005, 14h58

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