Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Problème de droit pour copier des fichiers dans Windows XP PRO

6 réponses
Avatar
Guy Lafrenière
Bonjour Collègues,

Je suis en train de créer un programme pour effectuer des copies de
fichiers. J'utilise VB 6 sur Windows XP PRO (avec SP2). J'ai des droits
d'administrateur, mais de toute façon ce programme doit pouvoir fonctionner
pour toute personne, peu importe ses droits. C'est un programme de backup
adapté à nos besoins qui doit pouvoir être utilisé tant au travail qu'à la
maison. Les cadres s'en serviront pour copier les fichiers institutionnels.
Chaque employé s'en servira pour faire des copies de sécurité de ses
documents personnels, habituellement placés dans C:\Documents And
Settings\<UserName>\Mes documents.

Le programme fonctionne correctement pour copier des fichiers qui ne sont
pas dans Documents And Settings. Le problème se pose quand je copie le
contenu d'un dossier Documents And Settings\<UserName>. Certains
sous-dossiers se copient puis, à un moment donné, un message m'informe que
'Permission refusée' et la copie cesse.

Quelqu'un connaît la façon de jouer avec les droits dans Windows XP?

Merci à l'avance pour toute piste pertinente!

Guy Lafrenière

6 réponses

Avatar
Jacques93
Bonjour Guy Lafrenière,
Guy Lafrenière a écrit :
Bonjour Collègues,

Je suis en train de créer un programme pour effectuer des copies de
fichiers. J'utilise VB 6 sur Windows XP PRO (avec SP2). J'ai des droits
d'administrateur, mais de toute façon ce programme doit pouvoir fonctionner
pour toute personne, peu importe ses droits. C'est un programme de backup
adapté à nos besoins qui doit pouvoir être utilisé tant au travail qu'à la
maison. Les cadres s'en serviront pour copier les fichiers institutionnels.
Chaque employé s'en servira pour faire des copies de sécurité de ses
documents personnels, habituellement placés dans C:Documents And
Settings<UserName>Mes documents.

Le programme fonctionne correctement pour copier des fichiers qui ne sont
pas dans Documents And Settings. Le problème se pose quand je copie le
contenu d'un dossier Documents And Settings<UserName>. Certains
sous-dossiers se copient puis, à un moment donné, un message m'informe que
'Permission refusée' et la copie cesse.

Quelqu'un connaît la façon de jouer avec les droits dans Windows XP?

Merci à l'avance pour toute piste pertinente!




Indépendamment des droits d'accès, tu vas rencontrer un problème sur le
fichier :

NTUSER.DAT se trouvant dans

C:Documents And Settings<UserName>, si la session <UserName> est
ouverte. Ce fichier correspond à la ruche du registre :

HKEY_CURRENT_USER

pour la session courante, et n'est pas accessible (utilisé par le
système). Tu peux rencontrer le même problème sur certains fichiers dans
le sous répertoire Local Settings.

Une solution, en fonction de l'outil de sauvegarde utilisé (API ou
autre) serait de tester l'ouverture, puis l'éventuelle erreur, avant
d'effectuer la copie, ou de logger l'erreur, afin de connaître les
fichiers non sauvegardés.
--
Cordialement,

Jacques.
Avatar
Jacques93
Re,
Jacques93 a écrit :
[...]
Indépendamment des droits d'accès, tu vas rencontrer un problème sur le
fichier :

NTUSER.DAT se trouvant dans

C:Documents And Settings<UserName>, si la session <UserName> est
ouverte. Ce fichier correspond à la ruche du registre :

HKEY_CURRENT_USER

pour la session courante, et n'est pas accessible (utilisé par le
système). Tu peux rencontrer le même problème sur certains fichiers dans
le sous répertoire Local Settings.



[...]

J'ajouterai que même si tu peux lire, le fichier NTUSER.DAT d'une
session fermée, il ne me semble pas judicieux de l'intégrer à ta
sauvegarde. Backup veut dire éventuelle restauration, tu rencontrerais
donc le même problème à ce stade là, sans compter que ce fichier
contenant le paramétrage personnel du compte, tu pourrais avoir des
surprises désagréables.

Par ailleurs, ces fichiers sont sauvegardés pendant la création des
points de restauration.

--
Cordialement,

Jacques.
Avatar
Guy Lafrenière
Bonjour Jacques,

Je te remercie d'avoir pris le temps de me répondre. Je pense que tu as
touché le bobo.

Ça me fait suer parce que j'utilisais la méthode FileSystemObject.CopyFolder
pour copier les fichiers, ce qui me simplifiait la vie. Avec ta remarque, je
me rend compte que je devrai réécrire mon code pour effectuer une copie
fichier par fichier, en tenant compte de la récursivité.

Je ne suis sûrement pas le premier à faire ça. Quelqu'un aurait-il un code
tout prêt pour copier tout le contenu d'un dossier (fichiers et
sous-dossiers) fichier par fichier?

Merci pour toute aide!

Guy Lafrenière


"Jacques93" a écrit
Indépendamment des droits d'accès, tu vas rencontrer un problème sur le
fichier NTUSER.DAT. Tu peux rencontrer le même problème sur certains
fichiers dans le sous répertoire Local Settings.


Avatar
bayosky
salut,

un truc tout bête du type

-------------------------------------------------
Sub FAIT(fd as Scripting.Folder)

For Each sf in fd.Files

' copier ...
Next

For Each sfg in fd.SubFolders
Call FAIT(sfg)
Next

End Sub
--------------------------------------------------
Cela devrait fonctionner ...

le mieux est de créer le dossier sfg avant l'appel de FAIT(sfg) et
d'avoir ainsi une variable " globale" qui contient le chemin courant
de la copie du répertoire sfg

Ceci étant, compte tenu de ce que contient Doc&Settings/<Nom> je
trouve périlleux d'en faire un backup en bloc en n'écartant que les
éléments qui refusent :o)
Il y a là dedans des choses "dynamiques" ( les divers appdata et
autres localsettings, et bien sûr ntuser.dat ) qu'il faut mieux
laisser évoluer sereinement... et qui ne seront pas réutilisables.
Pour certains fichiers, la restauration après crash et réparation
pourrait même sans doute poser des problèmes...

En ce qui me concerne, les choses que je sauvegarde là dedans sont :

le carnet d'adresse
les dossiers OE
les favoris
les modèles, macros complémentaires, etc... ( Word & Excel )
et bien sûr les documents ( mais chez moi, il sont sur un autre
disque, dédié )

Les dossiers associés peuvent être pris en bloc sans se préoccuper de
fichiers bizarres...
Suivant le contexte, la liste des dossiers à récupérer peut être
modifiable pour s'adapter à de nouveaux besoins mais je pense qu'il
vaut mieux ne sauvegarder que ce qui peut être restaurer...

A+

HB
Avatar
riki
Guy Lafrenière a écrit :
Bonjour Jacques,

Je te remercie d'avoir pris le temps de me répondre. Je pense que tu as
touché le bobo.

Ça me fait suer parce que j'utilisais la méthode FileSystemObject.CopyFolder
pour copier les fichiers, ce qui me simplifiait la vie. Avec ta remarque, je
me rend compte que je devrai réécrire mon code pour effectuer une copie
fichier par fichier, en tenant compte de la récursivité.

Je ne suis sûrement pas le premier à faire ça. Quelqu'un aurait-il un code
tout prêt pour copier tout le contenu d'un dossier (fichiers et
sous-dossiers) fichier par fichier?

Merci pour toute aide!

Guy Lafrenière


"Jacques93" a écrit
Indépendamment des droits d'accès, tu vas rencontrer un problème sur le
fichier NTUSER.DAT. Tu peux rencontrer le même problème sur certains
fichiers dans le sous répertoire Local Settings.






Bonjour,

Allez voir sur les sites suivants, et surtout sur http://faq.vb.free.fr/

Quels sont les désavantages du FSO (File System Object) ? :
-----------------------------------------------------------
http://faq.vb.free.fr/index.php?question6

Comment copier, déplacer, supprimer ou renommer une arborescence
complète de dossiers ? :
-----------------------------------------------------------------
http://faq.vb.free.fr/index.php?question5

et aussi sur :
--------------
http://vb.developpez.com/cours/
http://vb.developpez.com/faq/
http://vbnet.mvps.org/index.html?http://vbnet.mvps.org/dev/main/vb6faq.htm

sinon il existe un fabuleux tread sur ce même sujet et dans ce même
groupe : faite une recherche sur François Picalausa & Zoury & dir
récursif. Merci à eux pour ces infos.

Cordialement,

EG.
Avatar
Guy Lafrenière
Merci à Bayoski et Riki et Jacques93.

Avec vos trois réponses j'ai réussi à me débrouiller pour arriver à mes
fins.

Guy Lafrenière