Obtenir chemin UNC d'un lecteur réseau

Obtenir chemin UNC d'un lecteur réseau - PHP - Programmation

Marsh Posté le 28-06-2010 à 16:13:07    

Bonjour,

 

Je développe un site interne à une entreprise et je suis en train de créé une rubrique où l'on peut poster de la documentation située sur différents lecteurs réseau.
Pour ajouter une documentation, l'utilisateur utilise un formulaire où il entre :
-le titre de la documentation
-le chemin réseau de cette documentation (à l'aide d'un bouton parcourir)

 

Le problème est que la lettre du lecteur réseau peut variée selon la configuration de l'utilisateur. Il faudrait un script qui soit capable de convertir ce chemin au format UNC de façon à ce que la documention soit accessible par tous les postes.

 

Avez-vous une idée ? Merci


Message édité par Magg27 le 28-06-2010 à 16:13:54
Reply

Marsh Posté le 28-06-2010 à 16:13:07   

Reply

Marsh Posté le 28-06-2010 à 17:02:09    

Perso, j'ai fait un montage samba sur mon serveur web des différents lecteurs réseaux. J'utilise "parcourir" pour récupérer le chemin du fichier que je mets dans un champ caché via javascript (attention, sous firefox, il aime pas cette manip, faut donc afficher en-dessous du champ "file" un input type texte pour que l'utilisateur copie/colle le chemin puis je vide le champ "file" histoire de pas uploader inutilement le fichier. Côté php, je fais un find-replace du chemin local par le chemin samba.
Pour le réaffichage, je fais un find-replace dans le sens inverse et j'affiche le lien en file:// (pour firefox, faut créer un fichier user.js et y mettre 3 lignes qui modifient la police de sécurité du navigateur, par défaut, FF n'ouvre pas les liens file://).
 
Mais si y'a moyen de faire autrement, je suis preneur ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 28-06-2010 à 17:14:33    

quand tu crées un nouveau mail Outlook et que tu insères un lien vers ce doc, tu constateras que quand outlook souligne le lien, il l'a converti en chemin UNC. T'as donc pas de lettre de lecteur dans le lien.
 
c'est un peu galère comme méthode, mais si t'as besoin d'un exemple simple et "qui parle" aux utilisateurs, Outlook peut vous y aider ... (si vous l'utilisez oeuf corse !)


---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Marsh Posté le 28-06-2010 à 17:55:45    

dans mon cas, pas oeuf corse :(


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 28-06-2010 à 17:56:01    

OK Merci.
 
Le plus simple pour moi serai de faire exactement comme outlook effectivement mais en utilisant des langages web. C'est possible ?

Reply

Marsh Posté le 29-06-2010 à 10:34:49    

up

Reply

Marsh Posté le 07-07-2010 à 10:12:56    

Mon serveur Web ne peut pas contacter les lecteurs réseaux de l'entreprise. Il faut vraiment qu'au niveau du poste client il soit possible de traduire un chemin local en chemin UNC (ex : "X:\rep\fichier.doc" en "\\nom-du-serveur\rep\fichier.doc" ).
Je pense pas que cela soit possible de faire cette traduction en passant par PHP étant donné que le serveur Web lui-même ne peut pas contacter les différents lecteurs réseaux. Il me faudrait un script client qui puisse mapper les lecteurs réseaux de la machine cliente et faire le lien entre le nom du serveur et la lettre du chemin ...
Toujours pas de solution ??

Message cité 1 fois
Message édité par Magg27 le 07-07-2010 à 10:36:20
Reply

Marsh Posté le 07-07-2010 à 10:36:00    

Magg27 a écrit :

Mon serveur Web ne peut pas contacter les lecteurs réseaux de l'entreprise. Il faut vraiment qu'au niveau du poste client il soit possible de traduire un chemin local en chemin UNC (ex : "X:\rep\fichier.doc" en "\\nom-du-serveur\rep\fichier.doc" ).
Je pense pas que cela soit possible de faire cette traduction en passant par PHP étant donné que le serveur Web lui-même ne peut pas contacter les différents lecteurs réseaux. Il me faudrait un script client qui puisse mapper les lecteurs réseaux de la machine cliente et faire le lien entre le nom du serveur et la lettre du chemin ...
Toujours pas de solution ??


Reply

Marsh Posté le 09-07-2010 à 10:00:38    

si t'es sûre que X:\soit exactement le même lecteur chez tout le monde, tu peux toujours faire une fonction qui te le remplace par le chemin UNC ...
Je dis "fonction" car tu pourrais modulariser ce bout de code et centraliser le traitement des chemins UNC.
 
Par exemple une fonction du style
 

Code :
  1. function LecteurVersUNC($chemin)
  2. {
  3. // $chemin est du type X:\dossier\docs\trux\fichier.ext
  4. $lecteur = strtoupper($chemin[0]); // X
  5. switch($lecteur)
  6. {
  7.  case 'X':
  8.   return str_replace($lecteur.':\\', '\\\\serveur1\\partage\\', $chemin);
  9.   break;
  10.  case 'Y':
  11.   return str_replace($lecteur.':\\', '\\\\serveur2\\partage\\', $chemin);
  12.   break;
  13.  case 'Z':
  14.   return str_replace($lecteur.':\\', '\\\\serveur3\\partage\\', $chemin);
  15.   break;
  16.  default:
  17.   return str_replace($lecteur.':\\', '\\\\serveur4\\partage\\', $chemin);
  18.   break;
  19. };
  20. };


 


---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Marsh Posté le 09-07-2010 à 10:24:08    

Il l'a dit précédemment, tous les utilisateurs n'ont pas le même nom de montage pour un même chemin réseau :( Enfin, c'est ce que j'ai compris. Je lui avais déjà proposé le replace sinon...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 09-07-2010 à 10:24:08   

Reply

Marsh Posté le 15-07-2010 à 15:33:15    

Merci Newslet Tux mais comme le dit rufo tous les utilisateurs n'ont pas forcément le même nom de montage pour un même chemin réseau .J'ai essayé de me tourner vers les applets java mais bon .. je suis pas top en la matière et puis des sécurités empêchent de fouiller dans l'arboresence des clients ...
En gros : mon projet n'est tout simplement pas possible ....

Reply

Marsh Posté le 21-07-2010 à 10:19:56    

Heureux de te dire que non ton projet n'est pas impossible !

Reply

Marsh Posté le 21-07-2010 à 10:41:20    

kanak09 a écrit :

Heureux de te dire que non ton projet n'est pas impossible !


 
Sans doute, mais en proposant une solution technique, ça donnerait plus de poids à ton affirmation :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 06-08-2010 à 11:53:12    

Désolé de revenir si tard.
 
Dans mon entreprise, chaque utilisateur possède un script de connexion lancé au démarrage de la session utilisateur.
 
Exemple l'employé toto à un script nommé toto.bat contenant :  
 
@net use I: \\serveur\....
 
Effectivement sur le poste de travail de toto on a un lecteur réseau I:\  correspondant au chemin \\serveur\...
il suffit ensuite de récupérer l'ID utilisateur, et d'aller lire dans le fichier le chemin UNC.
 
Si le système n'est pas le même chez toi alors, les autres solutions proposées sont excellente car en effet les appli PHP ou asp.net s'exécutent côté serveur et il n'existe pas de lecteur I:\ H:\... chez les serveur, donc il ne trouvera rien.
 
Si par contre tu exécute ton appli en Locale ( je ne pense pas que ce soit le cas vu que c'est pour le réseau del'entreprise )  
 
alors voici une super fonction  
 

Code :
  1. Private Declare Function WNetGetConnection Lib "mpr.dll" Alias "WNetGetConnectionA" (ByVal lpszLocalName As String, ByVal lpszRemoteName As String, ByRef cbRemoteName As Integer) As Integer
  2.     Private Function GetUNCPath(ByVal strDriveLetter As String) As String
  3.         Dim intRet As Integer
  4.         Dim strRet As String = ""
  5.         Dim strTmp As String = New String(" ", 260)
  6.         Dim intLen As Integer = 260
  7.         Dim intCnt As Integer = 0
  8.         Try
  9.             WNetGetConnection(strDriveLetter.Substring(0, 1) & ":", strTmp, intLen)
  10.             Do Until intCnt = (intLen - 1) Or strTmp.Substring(intCnt + 1, 1) = " "
  11.                 strRet &= strTmp.Substring(intCnt, 1)
  12.                 intCnt += 1
  13.             Loop
  14. catch ex as exception
  15. End try
  16. End function


 
j'espere en avoir aidé !  
Contactez moi si besoin


Message édité par kanak09 le 06-08-2010 à 11:54:33
Reply

Marsh Posté le 06-08-2010 à 12:09:21    

Y'a peut-être moyen de faire la même chose en Javascript moyennant une modif de paramétrage de Firefox puis d'envoyer via une requête Ajax le chemin trouvé au serveur.
 
J'avais trouvé ce script : http://www.captain.at/ajax-file-upload.php
Ca permet d'uploader via ajax un fichier sur le serveur (alors que normalement, ce n'est pas possible). Quand tu regardes le code, ça lit le fichier octet par octet sur le hdd de l'utilisateur. Si ça se trouve, y'a d'autres fonctions sympathiques de ce genre pour Firefox ;)...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 06-08-2010 à 12:09:39    

Perso, je n'ai pas compris le problème.
 
Si tu mets un <input/> de type "file", le fichier est envoyé au serveur... pas son chemin.


---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 06-08-2010 à 12:14:58    

Du genre de ces fcts : https://developer.mozilla.org/en/Co [...] e_I%2F%2FO
 
Pour les privilèges : http://www.mozilla.org/projects/se [...] jssec.html
 
Tiens, pour lancer une appli via JS : https://developer.mozilla.org/en/Co [...] plications
 
Plus généralement : https://developer.mozilla.org/en/Code_snippets


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 06-08-2010 à 13:22:07    

Dj YeLL a écrit :

Perso, je n'ai pas compris le problème.
 
Si tu mets un <input/> de type "file", le fichier est envoyé au serveur... pas son chemin.


Si tu parles de l'upload d'un fichier via ajax et que tu ne vois pas en quoi c'est un pb alors saches que normalement, ajax n'est pas censé faire des requêtes post en multipart. Du coup, tu peux pas poser un formulaire contenant un input type "file".
 
En gros, si tu veux faire un form d'upload de fichier et que la page n'ait pas besoin de se rafraîchir pour visualiser le résultat de l'upload (genre afficher des liens hypertextes sur les fichiers qui viennent d'être uploadés), ben de base, tu peux pas avec Firefox (sauf avec IE 6, mais là, c'est parce qu'il est pas super secure :D). Faut mettre en place le script que j'ai cité + modifier la conf de firefox.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 06-08-2010 à 14:35:25    

Non je parlais de son problème à la base. Tu as répondu entre temps :D


---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 06-08-2010 à 15:27:09    

son pb est que ses users ont différents lecteurs réseaux qui sont montés sur des lettres différentes, genre un répertoire "RepServ1" du server1 qui est mon chez Toto sur R:\ alors que chez Titi, il est monté sur S:\. De la doc est référencée dans ces répertoires réseaux et il a créé une appli qui doit permettre de référencer des fiches documentaires avec un lien de type file:// pointant sur les fichiers. Le pb, c'est que si Titi références un doc situé sur S:\, le lien en file:// va marcher pour tous ceux qui ont le doc sur S:\ mais pas pour toto ou les autres qui ont le même doc mais sur R:\. Il voudrait donc une solution pour connaître le chemin UNC et non local du répertoire.
 
Moi, j'avais le même pb pour mon appli Astres. Sauf que j'avais moyen de discriminer le chemin de montage du répertoire via l'OS. Tous ceux sous Linux avait le répertoire sur un montage réseau donné et tous ceux sous Windows sur un autre. Donc en détectant l'OS, je m'en sortait pour faire le liens en file:// ;) Mais c'est pas valable pour lui... Il n'a pas de critère de discrimination (a priori en tout cas).


Message édité par rufo le 14-10-2010 à 13:36:41

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 06-08-2010 à 15:34:06    

Au fait magg27, c'est toi sur ce topic : http://www.developpez.net/forums/d [...] hemin-unc/  ?


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 01-09-2010 à 11:45:31    

Yop tout le monde,
 
Désolé de répondre si tard.
 

Citation :

rufo : Au fait magg27, c'est toi sur ce topic : http://www.developpez.net/forums/d [...] hemin-unc/  ?


 
Oui c'est bien moi  :) vu que mon problème tournait en rond et que je ne trouvais absolument rien sur le net, j'ai posté sur plusieurs forums.
Mais ne vous inquiétez pas, je ne vous fais pas faux bond  ;)
 
Enfin, mon problème est toujours au goût du jour et avec la rentrée, celui-ci deviens très critique pour mon entreprise : Les gens vont commencer activement à poster des chemins de doc sur l'outil.
 

Citation :

rufo : Y'a peut-être moyen de faire la même chose en Javascript moyennant une modif de paramétrage de Firefox puis d'envoyer via une requête Ajax le chemin trouvé au serveur.


 
Il y a beaucoup de monde dans l'entreprise : il y a plusieurs sites en France ... Cette solution est trop difficile à mettre en place : on ne peut pas toucher aux paramétrage de Firefox ...
 

Citation :


  Désolé de revenir si tard.
 
Dans mon entreprise, chaque utilisateur possède un script de connexion lancé au démarrage de la session utilisateur.
 
Exemple l'employé toto à un script nommé toto.bat contenant :  
 
@net use I: \\serveur\....
 
Effectivement sur le poste de travail de toto on a un lecteur réseau I:\  correspondant au chemin \\serveur\...
il suffit ensuite de récupérer l'ID utilisateur, et d'aller lire dans le fichier le chemin UNC.
 
Si le système n'est pas le même chez toi alors, les autres solutions proposées sont excellente car en effet les appli PHP ou asp.net s'exécutent côté serveur et il n'existe pas de lecteur I:\ H:\... chez les serveur, donc il ne trouvera rien.
 
Si par contre tu exécute ton appli en Locale ( je ne pense pas que ce soit le cas vu que c'est pour le réseau del'entreprise )  
 
alors voici une super fonction  
 

Code :
  1. 1. Private Declare Function WNetGetConnection Lib "mpr.dll" Alias "WNetGetConnectionA" (ByVal lpszLocalName As String, ByVal lpszRemoteName As String, ByRef cbRemoteName As Integer) As Integer
  2.    2.     Private Function GetUNCPath(ByVal strDriveLetter As String) As String
  3.    3.
  4.    4.         Dim intRet As Integer
  5.    5.         Dim strRet As String = ""
  6.    6.         Dim strTmp As String = New String(" ", 260)
  7.    7.
  8.    8.         Dim intLen As Integer = 260
  9.    9.         Dim intCnt As Integer = 0
  10.   10.
  11.   11.         Try
  12.   12.
  13.   13.             WNetGetConnection(strDriveLetter.Substring(0, 1) & ":", strTmp, intLen)
  14.   14.             Do Until intCnt = (intLen - 1) Or strTmp.Substring(intCnt + 1, 1) = " "
  15.   15.                 strRet &= strTmp.Substring(intCnt, 1)
  16.   16.                 intCnt += 1
  17.   17.             Loop
  18.   18. catch ex as exception
  19.   19. End try
  20.   20. End function


 
 
j'espere en avoir aidé !  
Contactez moi si besoin


 
Par contre cette solution m'interesse beaucoup .. Mais je ne connais pas du tout ce langage, est-il possible d'intégrer ce code à mon site php ?
 
Merci à tous le monde pour vos nombreuses réponses !  :)  et encore désolé pour ma réponse tardive
 
 
 

Reply

Marsh Posté le 01-09-2010 à 16:58:58    

C'est du VB/VBA/VBS. Non, pas intégrable en l'état.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 01-09-2010 à 17:30:53    

Ca aurait été trop facile :) Et il y a moyen de revoir son état ?

Reply

Marsh Posté le 02-09-2010 à 15:13:40    

regardes du côté de javascript pour Firefox : https://developer.mozilla.org/en/Co [...] plications
 
Avec le code du dessus, tu le mets dans VB, t'en fais un exe que tu appelles avec la méthode donnée ci-dessus.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 14-10-2010 à 10:56:25    

Bonjour,
 
Je déterre ce post pour vous annoncer que je n'ai toujours pas réussi à faire ce que je voulais ...
 
Mon intranet souffre beaucoup de ce problème car il devient de plus en plus pauvre en information.
 
Je suis vraiment à cours d'idée et je compte sur votre communauté pour me donner de nouvelles pistes, c'est très très urgent ..
 
Je vous serai très reconnaissant pour votre aide. Par avance merci ..

Reply

Marsh Posté le 14-10-2010 à 13:35:52    

Si on reprend le problème dans un autre sens, on a :
- l'utilisateur a des lecteurs réseaux mappés, chaque utilisateur a ses lettres de lecteur à sa convenance
- poste des liens de documents via une page web en php/html
 
côté client, il y a 2 langages qui sont dynamiques : Java et Javascript. Le souci est que Javascript est limité (pour des questions évidentes de sécurité) et Java itou, mais celui-ci possède un moteur qui peut exécuter des commandes.
 
Si on part du principe que les mappages de lecteurs réseaux de l'utilisateur ne changent pas, pour un même utilisateur, dans le temps (le S: reste toujours \\serveur\chemin chez Toto p.ex.), on peut arriver à une solution qui mène à ma fonction de remplacement plus haut : dans le "profil" de l'utilisateur, tu déclares ses chemins réseaux ...
 
 
 
Typiquement, tu fais exécuter ce fichier BAT à chaque utilisateur :

Code :
  1. C:\>net use > c:\%USERNAME%_mapping_reseau.txt


 
ça créera un fichier texte avec la session de l'utilisateur (par exemple pour Bill Gates, ça donnera c:\bgates_mapping_reseau.txt)
 
Dans ce fichier t'as tous les lecteurs + le pointage vers lequel ils renvoient. T'as plus qu'à uploader et parser ce doc et enregistrer la correspondance dans le profil de l'utilisateur (ou plus propre, dans une autre table)
genre ID User 3 lecteur S: partage \\serveur\chemin
IDUser 3 lecteur T: partage \\serveur2\chemin  
etc.
 
et à chaque lien qu'il poste, connaissant ses correspondances de lecteurs réseaux, tu fais le remplacement comme rufo et moi te l'avons suggéré.
 
Le gros inconvénient c'est qu'en php tu ne peux absolument pas récupérer les lecteurs, en javascript non plus ... donc ça demande une intervention manuelle de l'utilisateur, mais après rien ne t'empêche de lui "interdire" de poster des docs s'il n'a pas uploadé son fichier texte...


Message édité par NewsletTux le 14-10-2010 à 13:38:29

---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Marsh Posté le 14-10-2010 à 13:42:03    

J'ai supposé dans mon message précédent que les lecteurs ne changeaient pas dans le temps pour un même utilisateur, donc S:\pour toto, renvoie toujours à \\serveur\chemin, mais il peut être intéressant de prévoir pour cette "table de correspondance" une date de péremption, date à partir de laquelle l'utilisateur serait invité à retélécharger le fichier .BAT proposé, le rééxécuter et réuploader les nouvelles correspondances ...
 
(ça, c'est au cas où certains de tes utilisateurs changent fréquemment leurs lettres, ce qui n'est, certes, pas dans leur intérêt, mais bon...)
 
merci de me(nous) tenir au courant en tous cas, la suite m'intéresse ... :)


---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Marsh Posté le 14-10-2010 à 13:42:05    

Si, en javascript on peut récupérer les lecteurs réseaux, mais y'a 2 pré-requis : utiliser Firefox et avoir modifié certaines variables de conf (cf les liens que j'ai donnés dans un précédent post). Et avec ces pré-requis, tu peux même lire un fichier sur le HDD ;)
 
Sinon, y'a vraiment aucun moyen de déduire l'ordre des mappages d'un utilisateur à partir d'infos accessibles par php ou JS :??: (ex, basé sur l'IP, l'OS et/ou sa version...)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 14-10-2010 à 13:52:05    

Je suis actuellement en recherche d'infos sur l'interfaçage PHP et les variables d'environnement Windows, j'ai pas encore bcp cherché mais le peu que j'ai fait me laisse à penser que c'est très limité ...
 
L'inconvénient de ta solution (qui reste sans doute la plus automatisée de ce sujet, donc requérant le moins d'actions de la part de l'utilisateur en minimisant au maximum les risques d'erreur) reste dans le fait qu'il faut un firefox modifié alors que dans l'environnement de magg27 c'est pas envisageable. L'avantage de ma solution est qu'elle marche aussi pour ceux qui ne jurent que par IE et ne veulent pas de navigateurs alternatifs dans leur entreprise.


---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Marsh Posté le 14-10-2010 à 14:27:59    

NewsletTux a écrit :

Je suis actuellement en recherche d'infos sur l'interfaçage PHP et les variables d'environnement Windows, j'ai pas encore bcp cherché mais le peu que j'ai fait me laisse à penser que c'est très limité ...
 
L'inconvénient de ta solution (qui reste sans doute la plus automatisée de ce sujet, donc requérant le moins d'actions de la part de l'utilisateur en minimisant au maximum les risques d'erreur) reste dans le fait qu'il faut un firefox modifié alors que dans l'environnement de magg27 c'est pas envisageable. L'avantage de ma solution est qu'elle marche aussi pour ceux qui ne jurent que par IE et ne veulent pas de navigateurs alternatifs dans leur entreprise.


 
d'où ma question s'il avait moyen de discriminer automatiquement l'ordre du mappage des utilisateurs en fonction des infos envoyées par le navigateur au serveur (version d'OS, IP...).


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 14-10-2010 à 18:06:33    

Salut !

 

En fait je recherche une solution qui n'implique pas un paramétrage préalable de l'utilisateur. Etant donné que l'intranet est utilisé par 200 personnes éparpillés en Europe et maîtrisant plus ou moins bien l'informatique, ce type de solution n'est pas du tout envisageable.

 

Donc la solution de rufo qui consiste à reparamétrer chaque profil user de Mozilla n'est pas faisable.
La solution de NewsletTux est déjà mieux mais elle est trop lourde à mettre en prod : comme je le disais, les 200 personnes sont des novices en informatique, donc dans un premier temps cela ne coulera pas de source pour eux d'exécuter le .bat et d'uploader le .txt sur le serveur web ... dans un second temps, il peut arriver que leurs lecteurs réseaux cassent et en les remettant la lettre à des chances d'être modifiée, ce qui implique alors de mener une regénération du .txt pour le reuploader à nouveau ... Autrement cette solution est très astucieuse !

 

Je sais bien que mon projet est très exigeant ... Dans l'idéal, il me faudrait un applet ou autre qui s'exécute sur le poste du client pour avoir davantage d'action sur celui-ci ... Mais comment ?

 

Mes utilisateurs s'authentifient sur l'intranet via leurs identifiants de domaine. Mon serveur web peut donc contacter le serveur LDAP de l'entreprise. Sachant cela, y a t-il d'autres solutions ?

 

Merci pour vos réponses en tout cas  :)


Message édité par Magg27 le 14-10-2010 à 18:08:39
Reply

Marsh Posté le 14-10-2010 à 20:47:52    

le mappage des lecteurs réseaux est enregistré dans les variables du profil, pas dans un champ de l'objet "utilisateur" de AD. Si tu as des profils itinérants, alors il y a peut-être moyen de faire la requête au niveau du serveur (si tant est que ton intranet PHP s'exécute sur le même serveur...
 
Mais autrement, si on pousse mon raisonnement plus loin, j'ai peut-être une solution encore plus astucieuse ...
Puisque tu as un AD avec domaine, ça veut dire que les utilisateurs s'y authentifient = récupèrent des paramètres de l'AD.
 
Rien ne t'empêche alors, côté serveur, d'exécuter le .BAT à l'ouverture de session de la personne (inconvénient : le fichier texte sera recréé à chaque ouverture de session, mais il écrasera le précédent, et en cas de lecteur qui sautent et sont mal remis (i.e. avec la mauvaise lettre), ça met à jour le fichier texte) et depuis ton intranet, tu récupères l'IP du poste client ...
 
Ainsi tu récupères 192.168.0.200 (par exemple) à la connexion de l'utilisateur à ton intranet.
Et tu peux ensuite aller chercher dans \\192.168.0.200\c$\bgates_mapping_reseau.txt ;)
 
Ainsi tu fais ce que j'ai dit plus haut, en toute transparence pour l'utilisateur ...


---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed