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

VB.NET Discussion :

Copie de fichier d'un PC vers un autre avec utilisateurs/droits différents


Sujet :

VB.NET

  1. #1
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Points : 1 327
    Points
    1 327
    Par défaut Copie de fichier d'un PC vers un autre avec utilisateurs/droits différents
    Bonjour à tous,

    tout d'abord voilà le contexte :

    Un compte utilisateur (userA) crée des fichiers sur un PC A
    Il les copie ensuite sur d'autre PCs du même réseau/domaine B, C et D .

    Pour se faire nous avons un script actuellement qui crée un lecteur réseau sur le PC B en utilisant le user qui va bien (userB car userA n'a pas les droits d'accès) avec bien sur son mot de passe, copie les fichiers, supprime le lecteur réseau et recommence à l'identique pour les PCs C (avec userC) et D (avec userD).

    Le problème est que nous avons 20 PCs comme ça sur lesquels ont doit copier nos fichiers, et avec cette méthode on lance les 20 copies les unes après les autres, ce qui prend énormément de temps étant donné que les PCs ne sont pas sur un réseau local mais à travers la France entière ...

    Afin d'améliorer ça j'ai pensé à lancer toutes les copies simultanément, ainsi ce qui limitera sera probablement le temps de lecture sur le PC A.

    Problème :
    userA n'a pas les droits d'accès aux PCs B, C, D.
    userB, userC, userD n'ont pas les droits, même de lecture, sur le PC A.

    Sur PC A on connait les identifiants et mots de passes pour se connecter aux PCs B, C, D (puisqu'on crée actuellement un lecteur réseau avec ces identifiants).

    Y a-t-il un moyen de copier un fichier du PC A (en utilisant les droits du userA connecté dessus) vers un chemin B sur lequel userA n'a pas les droits sans passer par la création d'un lecteur réseau, on doit donc utiliser un user différent sur le chemin de destination (mais garder nos droits sur le fichier source) ?

    J'ai jeté un oeil du côté de l'impersonation, ce qui était pas mal intéressant mais ne résout finalement pas mon problème.
    Ça permet d'emprunter l'identité de userB par exemple, mais dans ce cas je perd mes droits de userA, j'ai donc désormais accès au chemin de destination, mais plus au fichier source ...

    Tout ceci n'est pas forcément très clair, je peux apporter plus d'infos si nécessaire.

    Quelqu'un aurait-il une piste pour faire ce que je souhaite ?
    Pour le moment ma seule piste est de donner à userB, userC, userD des droits (de lecture uniquement) sur PC A, mais ça va être un bras de fer avec l'équipe réseau, donc s'il y a moyen de faire autrement ...

    Merci de votre aide.
    Le Porc est un loup pour le Porc.

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 153
    Points : 25 071
    Points
    25 071
    Par défaut
    il y a bien des moyens détournés pour ne pas avoir de problèmes de droits, mais ca me parrait étrange tout ce fouillis


    pourquoi utiliser des fichiers ? pourquoi faire transiter des fichiers ? pourquoi ne pas tout centraliser ? pourquoi pas de bases de données ?


    la solution que je vois c'est de faire en sorte que les programmes communiquent par tcp/ip pour s'envoyer les fichiers, et là c'est bien le progamme qui recoit qui écrit sur le disque, et il a les droits
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Points : 1 327
    Points
    1 327
    Par défaut
    Merci pour ta réponse.

    Pour plus d'explications :

    Les fichiers en questions sont des "masques" d'étiquettes à imprimer via un soft propriétaire sur les différents sites du groupe.
    Pour un masque on peut imprimer des étiquettes pour différents produit, dans les masques on a donc des variables, soit de type texte, soit de type image.
    On récupère la valeur de ces variables pour le produit qui nous intéresse dans une "BDD" Access.

    La BDD, les masques et les images sont les fichiers qu'on souhaite donc transférer sur les différents sites du groupe à travers la France (+ même un site en Belgique) quand la personne responsable de la créations/mise à jour des masques (1 personne dans le groupe et non 1 pas site) a apporté une modification.

    Donc on est bien obligés de faire transiter des fichiers.

    On pourrait ne pas envoyer tous ces fichiers sur les sites, c'est parfaitement paramétrable de cette manière, mais les temps d'accès des sites vers le serveur sont trop longs et de toute manière on souhaite que chaque site soit indépendant et puisse continuer d'imprimer si, par exemple, le serveur est en maintenance ou le réseau tombe (ça serait fâcheux de stopper le production des 10 sites).
    Le Porc est un loup pour le Porc.

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 153
    Points : 25 071
    Points
    25 071
    Par défaut
    certes vous etes bien obliger de transférer des fichiers, mais le partage windows n'est pas la seule solution

    moi je mettrais les fichiers dans la base de données, ca règlerait le problème (colonne de type varbinary)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Points : 1 327
    Points
    1 327
    Par défaut
    Je ne suis pas vraiment convaincu par cette solution.

    Le logiciel qui interprète les masques a besoin des fichiers physiques.

    On pourrait donc les envoyer dans la BDD pour le transfert, mais ensuite il faudrait les en ressortir sur le PC de destination.
    Le Porc est un loup pour le Porc.

  6. #6
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 153
    Points : 25 071
    Points
    25 071
    Par défaut
    nous on met "plein" de fichiers en base, ca nous évite de partager des dossiers, et de gérer la sécurité
    quand une appli a besoin d'un fichier, elle le recréé localement en lisant depuis la base

    donc cette solution me semble appropriée, efficace, simple et sécurisée
    en cas de changement d'un serveur ca évite du paramétrage aussi


    pour un fichier ce qu'il y a d'utile c'est son nom, ses octets, et éventuellement son LastWriteDate
    si tu as besoin de tout ca soit tu fais 3 colonnes, soit une qui réunit tout avec un codage maison, ce qui permet au passage de compresser les octets éventuellement
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

Discussions similaires

  1. Decompression de fichier d'un dossier vers un autre avec 7z
    Par PAB/31/SAB dans le forum VBScript
    Réponses: 2
    Dernier message: 31/03/2014, 16h28
  2. [Batch] copie de fichier d'un ftp vers ordi distant avec psftp
    Par Hotei dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 23/01/2013, 12h55
  3. Copie de fichiers d'un PC vers un Pocket PC
    Par poufouille dans le forum Windows Forms
    Réponses: 2
    Dernier message: 19/08/2008, 10h05
  4. copie de fichiers de plusieurs répertoires vers un seul
    Par cell dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 10/10/2007, 08h39
  5. [VB.net] copie de fichier d'un serveur vers un poste local
    Par junoreactor dans le forum ASP.NET
    Réponses: 2
    Dernier message: 16/11/2006, 19h54

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