Droit d'ecriture sur DD avec vbs

g_barthe Messages postés 27 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 13 mars 2008 - 9 nov. 2006 à 16:09
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 - 10 nov. 2006 à 13:39
Bonjour,

 
J'ai ce script que je lance sur le serveur et qui a
l'ouverture de la session windows de l'utilisateur doit copier des
fichiers du serveur sur le poste.

 


Code :

<ol id="code1" class="olcode">
<li>dim strSourceFile, strTargetFile, file, collfiles, curfile, fs</li>
<li>strSourceFile = "\\tunzini03\Utilitaires\Modeles_BE\raccourcis_modeles\"</li>
<li>'Créer une instance du FSO</li>
<li>Set fso = CreateObject("Scripting.FileSystemObject" )</li>
<li>Set fs = fso.GetFolder(strSourceFile)</li>
<li>Set collfiles = fs.Files</li>
<li>'Exploration des fichiers du dossier</li>
<li>
for each file in collfiles</li>
<li>    curfile = file.name</li>
<li>    strTargetFile = "c:\" & file.name</li>
<li>    'Création d'une copie du fichier</li>
<li>    fso.CopyFile curfile, strTargetFile</li>
<li>next</li>
</ol>



 
Il fonctionne bien sauf que l'écriture sur le poste ne
fonctionne pas à cause d'un pb de droits. Pourtant l'utilisateur du
poste est admin de son poste.

 
Je ne vois pas comment résoudre ce pb. Faut-il dans le script
spécifier le nom de l'admin pour écrire et si oui comment faire cela ?

 
Merci de votre aide.

1 réponse

cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
10 nov. 2006 à 13:39
 Bonjour à tous....

"Il fonctionne bien sauf "
<ol><li>for each file in collfiles
</li><li>    curfile = file.name    ' renvoie le nom du fichier sans la racine
</li><li>    strTargetFile = "c:" & file.name
</li><li>    'Création d'une copie du fichier
</li><li>    fso.CopyFile curfile, strTargetFile
</li><li>next</li></ol>
Donc:

<ol><li>for each file in collfiles
</li><li>    curfile file.name    ' renvoie le nom du fichier (avec son extension) mais sans la racine</li><li>    strTargetFile "c:" & file.name
</li><li>    'Création d'une copie du fichier
</li><li>    fso.CopyFile strSourceFile & curfile , strTargetFile
</li><li>next</li></ol>ou
Dim Path, Path_Sauvegarde
Path  = "[file://\\tunzini03\Utilitaires\Modeles_BE\raccourcis_modeles\ \\tunzini03\Utilitaires\Modeles_BE\raccourcis_modeles\]
Path_Sauvegarde = "c:"

MsgBox ShowFolderList(Path),vbInformation,"Copie de Fichiers"
Function ShowFolderList(strPath)
Dim fso, Dossiers, fic, fichiers, strListe, f
Set fso = CreateObject("Scripting.FileSystemObject")
Set Dossiers = fso.GetFolder(path)
Set fic = Dossiers.Files

If Not fso.FolderExists(Path_Sauvegarde) Then Set f = fso.CreateFolder(Path_Sauvegarde)

For Each fichiers in fic
    Set f = fso.GetFile(fichiers)
    fso.CopyFile fso.GetAbsolutePathName(path) & "" & f.Name, Path_Sauvegarde & "" & f.Name, True
    strListe = strListe &vbCrLf& fso.GetAbsolutePathName(path) & "" & f.Name
Next
ShowFolderList = "Fichiers copiés" &vbCrLf&vbCrLf& strListe
Set fso = Nothing
Set Dossiers = Nothing
Set fic = Nothing
End Function

Avec cette manière de copier, s'il y a des subfolders, ceux-ci et les éventuels
fichiers ne sont pas copier.
Attention à la synthaxe de ton server en entrée, il faut qu'il soit mappé.

Méthode Copyfile:

Copie un ou plusieurs fichiers d'un emplacement à un autre.

[ object].CopyFile ([ source], [ destination][, [ overwrite]] )

Arguments
* object : Requis. object doit toujours correspondre au nom d'un objet FileSystemObject.
* source : Requis. Spécification, sous forme d'une chaîne de caractères pouvant comporter des caractères génériques, d'un ou plusieurs fichiers à copier.
* destination : Requis. Destination, indiquée sous forme d'une chaîne de caractères, vers laquelle le ou les fichiers de source doivent être copiés. Les caractères génériques ne sont pas acceptés.
* overwrite : <dd>Facultatif. Valeur booléenne indiquant, le cas échéant, que les fichiers existants doivent être écrasés. Si la valeur est True, les fichiers sont écrasés ; si elle est False, ils ne le sont pas. La valeur par défaut est True. Il convient de noter que CopyFile échouera si destination est en lecture seule, quelle que soit la valeur de overwrite.
Lorsque source comporte des caractères génériques ou lorsque destination se termine par un séparateur de chemin (\), destination est supposé être un dossier existant dans lequel les fichiers correspondants seront copiés. Sinon, destination est considéré comme un nom de fichier à créer. Trois cas de figure peuvent se présenter lors de la copie d'un fichier individuel.

<li>Si destination n'existe pas, source est copié. C'est le cas le plus fréquent.
</li><li>Si destination est un fichier existant, une erreur se produit lorsque la valeur de overwrite est False. Sinon, source est copié et le fichier existant est écrasé.
</li><li>Si destination est un répertoire, une erreur se produit. </li>Une erreur se produit également lorsqu'un élément source comportant des caractères génériques ne correspond à aucun fichier. La méthode CopyFile s'arrête dès qu'elle rencontre une erreur. Aucune tentative n'est faite en vue de restaurer ou d'annuler les changements effectués avant que l'erreur se produise.

Voir aussi
[mk:@MSITStore:D:\Mes%20scripts%20vbs\SCRIPT56.CHM::/html/jsmthcopy.htm Copy, méthode] | [mk:@MSITStore:D:\Mes%20scripts%20vbs\SCRIPT56.CHM::/html/jsmthcopyfolder.htm CopyFolder, méthode] | [mk:@MSITStore:D:\Mes%20scripts%20vbs\SCRIPT56.CHM::/html/jsmthcreatetextfile.htm CreateTextFile, méthode] | [mk:@MSITStore:D:\Mes%20scripts%20vbs\SCRIPT56.CHM::/html/jsmthdeletefile.htm DeleteFile, méthode] | [mk:@MSITStore:D:\Mes%20scripts%20vbs\SCRIPT56.CHM::/html/jsmthmovefile.htm MoveFile, méthode]

Application: [mk:@MSITStore:D:\Mes%20scripts%20vbs\SCRIPT56.CHM::/html/jsobjfilesystem.htm FileSystemObject, objet]

En espérant avoir répondu favorablement à ta requête.

jean-marc
0
Rejoignez-nous