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 :

CopyFolder à partir d'une bibliothèque WSS


Sujet :

VBScript

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2004
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 108
    Points : 48
    Points
    48
    Par défaut CopyFolder à partir d'une bibliothèque WSS
    Bonjour.

    J'ai testé CopyFolder pour faire copier le contenu d'un répertoire sur ma machine vers un autre répertoire et ça marche.

    Maintenant j'essaye de copier le contenu d'un répertoire situé sous une bibliothèque WSS 3 (SharePoint) de type : http://servername/mylibrary/myfolder.

    Je fait donc FSys.CopyFolder "http://servername/mylibrary/myfolder", "c:\dest"

    Mais ça marche pas et j'ai comme erreur :

    Argument ou appel de procédure incorrect.
    code erreur : 800A0005.

    Avez vous une idée svp ?

    Merci d'avance.

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

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    copyfolder ne doit pas marcher avec des adresse web.
    Peut être avec une syntaxe comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FSys.CopyFolder "\\AdresseIPServer\mylibrary\myfolder", "c:\dest"
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  3. #3
    Membre du Club
    Inscrit en
    Novembre 2004
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 108
    Points : 48
    Points
    48
    Par défaut
    Bonjour CED600.

    Merci pour votre réponse.

    Après activation du service WebClient je n'ai plus le message d'erreur présenté ci-dessus mais j'ai un access denied!

    Ce qui n'est pas étonnant vu la sécurité sur sharepoint.

    Mon souci maintenant c'est comment faire un CreateObject("Scripting.FilsSystemObject") en précisant le compte qui effectuera le copiage...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Code SnippetSet FSys = CreateObject("Scripting.FilsSystemObject") 
     
    FSys.CopyFolder...
    Je connais absolument pas le VBScript.

    Si qqn a une idée, je serais reconnaissant!

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

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    A l'aide du WMI tu peux te connecter à n'importe quel ordinateur (local ou distant) en précisant le compte pour la connection :
    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
    ' Full Computer Name
    ' can be found by right-clicking My Computer,
    ' then click Properties, then click the Computer Name tab)
    ' or use the computer's IP address
    strComputer = "FullComputerName" 
    strDomain = "DOMAIN" 
    Wscript.StdOut.Write "Please enter your user name:"
    strUser = Wscript.StdIn.ReadLine 
    Set objPassword = CreateObject("ScriptPW.Password")
    Wscript.StdOut.Write "Please enter your password:"
    strPassword = objPassword.GetPassword()
     
    Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
    Set objSWbemServices = objSWbemLocator.ConnectServer(strComputer, _
        "root\cimv2", _
         strUser, _
         strPassword, _
         "MS_409", _
         "ntlmdomain:" + strDomain)
    Set colSwbemObjectSet = _
        objSWbemServices.ExecQuery("Select * From Win32_Process")
    For Each objProcess in colSWbemObjectSet
        Wscript.Echo "Process Name: " & objProcess.Name 
    Next
    Tout ceci grace à SWbemLocator.

    Le WMI est un ensemble d'objet aidant au management du système d'exploitation.
    L'exemple ci dessous te montre comment récupérer l'ensemble des processus grâce à l'objet Win32_Process. Mais de la même façon tu peux t'amuser avec d'autres objets.
    Dans ton cas, il faudrait utiliser la méthode copy de CIM_LogicalFile (regarde aussi copyex).

    Un exemple de code non testé :
    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
    strComputer = "FullComputerName" 
    strDomain = "DOMAIN" 
    Wscript.StdOut.Write "Please enter your user name:"
    strUser = Wscript.StdIn.ReadLine 
    Set objPassword = CreateObject("ScriptPW.Password")
    Wscript.StdOut.Write "Please enter your password:"
    strPassword = objPassword.GetPassword()
     
    Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
    Set objSWbemServices = objSWbemLocator.ConnectServer(strComputer, _
        "root\cimv2", _
         strUser, _
         strPassword, _
         "MS_409", _
         "ntlmdomain:" + strDomain)
    Set colItems = objSWbemServices.ExecQuery( _
        "SELECT * FROM CIM_LogicalFile where PATH = '\\temp\\'",,48) 
    For Each objItem in colItems 
        Wscript.Echo "-----------------------------------"
        Wscript.Echo "CIM_LogicalFile instance"
        Wscript.Echo "-----------------------------------"
        Wscript.Echo "FileName: " & objItem.FileName
        objItem.Copy("repertoire de destination") 'Attention copy aussi bien les fichiers que les répertoires
    Next
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

Discussions similaires

  1. Réponses: 6
    Dernier message: 03/07/2008, 12h34
  2. CopyFolder à partir d'une bibliothèque WSS
    Par enimren dans le forum SharePoint
    Réponses: 0
    Dernier message: 02/05/2008, 12h12
  3. Réponses: 3
    Dernier message: 08/01/2008, 14h43
  4. Réponses: 7
    Dernier message: 07/11/2007, 10h20
  5. Réponses: 6
    Dernier message: 30/05/2007, 10h41

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