|
| Droits d'écriture sur C:\ProgramData\monappli\data\ |
| Iniciado por Yvan, 15,jun. 2013 11:47 - 6 respuestas |
| |
| | | |
|
| |
Miembro registrado 214 mensajes |
|
| Publicado el 15,junio 2013 - 11:47 |
Bonjour,
Chez certain de mes utilisateurs, sous windows 7, mon application semble ne pas avoir accès en écriture au répertoire des fichiers hyperfilesql.
Je pense toutefois respecter l'UAC, l'exe étant dans c:\program files\monappli et les datas dans C:\ProgramData\monappli\data\ (le répertoire est créé avec SysRep(srAppDataCommun)).
A l'exécution, le problème suivant apparait: Le fichier <USERS> n'a pas été ouvert avec des droits en écriture. Impossible d'effectuer l'opération. Ce fichier est pourtant bien dans C:\ProgramData\monappli\data\.
Le problème pourrait-il venir du fait que ce n'est pas l'installeur (wdinst) qui crée le répertoire mais l'application, et que chez certains utilisateurs, ils installent l'application avec les droits d'administrateur (indispensable), ensuite, ils ne lancent pas l'application une première fois avec les droits d'administrateur mais change de session pour passer en mode utilisateur non administrateur, cet utilisateur ouvre l'application qui crée automatiquement le répertoire C:\ProgramData\monappli\data\ avec des droits limités en écriture seulement?
La solution serait-elle dans ce cas de créer le répertoire vide avec l'installeur, mais qu'en est-il des droits fichiers qui seront tout de même créés par l'application lors de son ouverture?
Tout retour d'expérience est le bienvenu!
Merci. |
| |
| |
| | | |
|
| | |
| |
| Publicado el 15,junio 2013 - 18:46 |
Bonjour Yvan
je n'ai jamais vu de cas ou il fallait les droits admin pour écrire dans C:\ProgramData\monappli\data\... C'est justement une zone destinée au travail des utilisateurs normaux...
Par contre, j'ai déjà vu des cas ou le programmeur CROYAIT écrire dans C:\ProgramData\monappli\data\ alors que son code essayait toujours d'écrire dans le répertoire de l'exécutable (emplacement par défaut des fichiers)...
je te conseille donc de vérifier exactement (au débuggeur, ou avec un affichage à l'écran) quel est l'emplacement réel des fichiers juste avant la ligne qui déclenche l'erreur
Cordialement
-- Fabrice Harari Consultant WinDev, WebDev et WinDev Mobile International
Nouveau site web (EXPERIMENTAL) http://www.fabriceharari.eu (Plus d'information sur http://fabriceharari.com/index_FR.html)
On 6/15/2013 3:47 AM, Yvan wrote:
Bonjour,
Chez certain de mes utilisateurs, sous windows 7, mon application semble ne pas avoir accès en écriture au répertoire des fichiers hyperfilesql.
Je pense toutefois respecter l'UAC, l'exe étant dans c:\program files\monappli et les datas dans C:\ProgramData\monappli\data\ (le répertoire est créé avec SysRep(srAppDataCommun)).
A l'exécution, le problème suivant apparait: Le fichier <USERS> n'a pas été ouvert avec des droits en écriture. Impossible d'effectuer l'opération. Ce fichier est pourtant bien dans C:\ProgramData\monappli\data\.
Le problème pourrait-il venir du fait que ce n'est pas l'installeur (wdinst) qui crée le répertoire mais l'application, et que chez certains utilisateurs, ils installent l'application avec les droits d'administrateur (indispensable), ensuite, ils ne lancent pas l'application une première fois avec les droits d'administrateur mais change de session pour passer en mode utilisateur non administrateur, cet utilisateur ouvre l'application qui crée automatiquement le répertoire C:\ProgramData\monappli\data\ avec des droits limités en écriture seulement?
La solution serait-elle dans ce cas de créer le répertoire vide avec l'installeur, mais qu'en est-il des droits fichiers qui seront tout de même créés par l'application lors de son ouverture?
Tout retour d'expérience est le bienvenu!
Merci. |
| |
| |
| | | |
|
| | |
| |
| Publicado el 15,junio 2013 - 19:35 |
Tous les utilisateurs ont droit de lecture sur ce dossier/fichier.
Par contre les utilisateurs ne peuvent pas écrire si le dossier/fichiers à été créé par l'administrateur ou les droits administrateur. Je n'utilise pas ce dossier car j'ai toujours eu des problèmes de droits NTFS. |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 214 mensajes |
|
| Publicado el 15,junio 2013 - 22:38 |
Quelques nouvelles précisions: Un utilisateur rencontrant le problème est admin de son pc (windows 7), mais s'il lance l'application en mode administrateur (via les propriétés du raccourci bureau), ça fonctionne, si il lance l'appli "normalement", ça ne fonctionne pas (je compile l'appli pour qu'elle utilise les droits d'un utilisateur sans privilège car j'ai architecturé en respectant l'UAC, du moins je le croyais) .... |
| |
| |
| | | |
|
| | |
| |
| Publicado el 16,junio 2013 - 05:22 |
Bonjour Yvan
ce que tu décris colle avec mon hypothèse... Un admin a le droit d'écrire dans program files (le répertoire de ton exe) pas un utilisateur courant
Cordialement
-- Fabrice Harari Consultant WinDev, WebDev et WinDev Mobile International
Nouveau site web (EXPERIMENTAL) http://www.fabriceharari.eu (Plus d'information sur http://fabriceharari.com/index_FR.html)
On 6/15/2013 2:38 PM, Yvan wrote:
Quelques nouvelles précisions: Un utilisateur rencontrant le problème est admin de son pc (windows 7), mais s'il lance l'application en mode administrateur (via les propriétés du raccourci bureau), ça fonctionne, si il lance l'appli "normalement", ça ne fonctionne pas (je compile l'appli pour qu'elle utilise les droits d'un utilisateur sans privilège car j'ai architecturé en respectant l'UAC, du moins je le croyais) .... |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 214 mensajes |
|
| Publicado el 16,junio 2013 - 14:17 |
Bonjour Fabrice,
Merci de l'info, mais après vérification, je suis bien dans le répertoire correct, ceci dit, je n'arrive jamais à reproduire le problème, il survient chez certains clients. Pour vérifier ton hypothèse, je me suis assuré que j'était dans le bon répertoire de la sorte: la première action d'écriture que l'application fait dans un des fichiers de la db est un hsupprime(). Dans l'application, avant ce hsupprime, je faisait un hsubstrep("?","C:\ProgramData\monappli\data\") J'ai ajouté avant un hferme("") car la doc précise que hsubstrep() ne fonctionne que si les fichiers sont fermés (bien qu'à ce stade aucun fichier en théorie n'est encore ouvert). Je trace le résultat du hferme() et du hsubstrep() dans un log, et ils fonctionnent tous les deux. Je vais mettre cette version chez le client pour avoir son retour, wait & see...
Yvan |
| |
| |
| | | |
|
| | |
| |
| Publicado el 31,octubre 2018 - 19:37 |
C'est un vieux post, mais je suis exactement sur le même problème. Certains utilisateurs, dont le compte windows est administrateur, n'ont pas les droits d'écriture sur le dossier C:\ProgramData\monappli\ , il faut le modifier à la main. Quelqu'un a déjà rencontré le problème ? |
| |
| |
| | | |
|
| | | | |
| | |
|