Comment copier dossier sur un emplacement réseau

beuklands Messages postés 3 Date d'inscription mercredi 15 décembre 2010 Statut Membre Dernière intervention 20 décembre 2010 - 19 déc. 2010 à 01:57
beuklands Messages postés 3 Date d'inscription mercredi 15 décembre 2010 Statut Membre Dernière intervention 20 décembre 2010 - 20 déc. 2010 à 10:24
Bonjour a tous,

Je suis confronté a devoir faire des sauvegardes de un ou plusieurs dossier sur un emplacement réseau sur differents postes (Plus de 60 postes). Je suis vraiment pris par le temps c'est pour cela que je viens demander de l'aide.
Les postes sont en local ou sur domaine.
Pour eviter de me taper ça en manuel je voulais me faire un petit scripts qui me permetrait de copier les dossiers bureau et mes documents
de la session ouverte le tout en me demandant ou l'enregistrer.

Pour l'instant j'ai juste un bout de source qui me permet de selectionner un emplacement pour la sauvegarde. (browseforfolder)
Dim shell, item, objFSO

Set shell = WScript.CreateObject("Shell.Application")
titre="Selectionner la destination de la sauvegarde"
Set Item = shell.BrowseForFolder(0,titre,flag, "G:\Backupuser")
If isvalue(Item) Then
Result=Item.Title
If InStr(1,Result,":")=0 Then
Result=Item.ParentFolder.ParseName(Item.Title).Path
End If

wscript.echo "Source : " & Result
else
wscript.echo "Annuler"	
End If

Wscript.quit
'--------------------------------------------------------------
' Test de validité de l'objet retourné par BrowseForFolder
' On ne peut pas utiliser "IsObject", qui retourne toujours "true"
Function IsValue(obj)
Dim tmp
On Error Resume Next
tmp = " " & obj
If Err <> 0 Then IsValue False Else IsValue True
On Error GoTo 0
End Function

Maintenant il me reste qu'a trouver comment copier coller les dossiers "bureau" et mes documents de la session utilisateur ouverte.
Une solution pour voir le temps restant ?

Si vous avez des idées

2 réponses

beuklands Messages postés 3 Date d'inscription mercredi 15 décembre 2010 Statut Membre Dernière intervention 20 décembre 2010
19 déc. 2010 à 16:49
ça avance :
Version Windows 7
Dim shell, item, fso, wshNetwork, strUser, Namefolder, BackupDrive

Set shell = WScript.CreateObject("Shell.Application")
titre="Selectionnez la destination de la sauvegarde.		       (Nom du service de l'utilisateur)"
Set Item = shell.BrowseForFolder(0,titre,flag, "\\Chocolat\Data\BackupUserCannes")
Set WshNetwork = WScript.CreateObject("WScript.Network")  'Standard Network Object 
strUser = WshNetwork.UserName 'Pulls User Name, used to find user's profile folder 
Namefolder = InputBox("Entrez le nom de l'utilisateur a sauvegarder","Etape 2")

If isvalue(Item) Then
Result=Item.Title
If InStr(1,Result,":")=0 Then
Result=Item.ParentFolder.ParseName(Item.Title).Path
End If

wscript.echo "Destination de la sauvegarde : " & Result & "" & Namefolder 

BackupDrive = result
Set fso = WScript.CreateObject("Scripting.FileSystemObject")

FSO.CreateFolder(BackupDrive & "" & Namefolder)
FSO.CopyFolder "C:\Users" & strUser & "\Desktop" , BackupDrive & "" & Namefolder & "\Bureau" , True 
FSO.CopyFolder "C:\Documents and Settings" & strUser & "\Documents" , BackupDrive & "" & Namefolder & "\Mes Documents" , True 

Wscript.echo " Fin de Copie "
Else	
wscript.echo "Annuler"	
End If

Wscript.quit
'--------------------------------------------------------------
' Test de validité de l'objet retourné par BrowseForFolder
' On ne peut pas utiliser "IsObject", qui retourne toujours "true"
Function IsValue(obj)
Dim tmp
On Error Resume Next
tmp = " " & obj
If Err <> 0 Then IsValue False Else IsValue True
On Error GoTo 0
End Function


J'ai encore plusieurs questions :
- Comment avoir une progress bar avec un temps restant?
- Une confirmation que la copie est ok (comparaison des capacitées.

Merci a tous
0
beuklands Messages postés 3 Date d'inscription mercredi 15 décembre 2010 Statut Membre Dernière intervention 20 décembre 2010
20 déc. 2010 à 10:24
Voila ou j'en suis aujourd'hui.
J'ai trouvé pour afficher une progress bar mais pas trouvé pour effectuer une comparaison en fin de sauvegarder (rapport .txt + envoie de mail et la c'est le must)
Ca fonctionne mais le script est pas propre. C'est plutot le bordel . Un petit coup de main pour m'aider a corriger tt ça

Dim shell, item, fso, wshNetwork, strUser, Namefolder, objShell, objFolder, TagetDrive, Sourcedrive, Bur, Doc

Set shell = WScript.CreateObject("Shell.Application")
titre="Selectionnez la destination de la sauvegarde.		       (Nom du service de l'utilisateur) Fermez outlook pour le backup des .pst"
Set Item = shell.BrowseForFolder(0,titre,flag, "\\iis\e$")'A modfi
Set WshNetwork = WScript.CreateObject("WScript.Network")  
strUser = WshNetwork.UserName
Namefolder = InputBox("Entrez le nom de l'utilisateur a sauvegarder","Etape 2")
Bur = "Bureau"
Doc = " Mes Documents"
If isvalue(Item) Then
Result=Item.Title
If InStr(1,Result,":")=0 Then
Result=Item.ParentFolder.ParseName(Item.Title).Path
End If

wscript.echo "Destination de la sauvegarde : " & Result & "" & Namefolder

Set fso = WScript.CreateObject("Scripting.FileSystemObject")
FSO.CreateFolder(Result & "" & Namefolder)
FSO.CreateFolder(Result & "" & Namefolder & "" & Bur)
Fso.CreateFolder(Result & "" & Namefolder & "" & Doc)

Const FOF_CREATEPROGRESSDLG = &H0&
Const FOF_NOCONFIRMATION = &H10&

Targetdrive = Result & "" & Namefolder & "" & Bur
Targetdrive2 = Result & "" & Namefolder & "" & Doc
Sourcedrive = "C:\Users" & strUser & "\Desktop\*"
Sourcedrive2 = "C:\Users" & strUser & "\Documents\*"

Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.NameSpace(Targetdrive)
Set objFolder2 = objShell.NameSpace(Targetdrive2)
objFolder.CopyHere Sourcedrive, FOF_CREATEPROGRESSDLG Or FOF_NOCONFIRMATION
objFolder2.CopyHere Sourcedrive2, FOF_CREATEPROGRESSDLG Or FOF_NOCONFIRMATION


MsgBox ("Backup Completed Succesfully")

Else	
wscript.echo "Annuler"	
End If

Wscript.quit


Merci a tous même si j'ai l'impression d'être tout seul
0
Rejoignez-nous