Mercredi 16 janvier 2008
3
16
/01
/Jan
/2008
22:58
Depuis longtemps, il est possible sous Sharepoint (2003 & 2007) d'automatiser la copie de fichiers d'une bibliothèque de documents Sharepoint vers ou depuis un poste Windows XP ou Windows Server 2003.
Cette fonctionnalité est possible par la capacité du redirecteur réseau fournit en standard « Web Client Network »
Sur Windows XP, par défaut le service Windows lié à ce redirecteur est démarré. Sur Windows Server 2003, sécurité oblige, il est désactivé…
Donc ce qui suit ne peut marcher sur Windows Server 2003 que si vous démarrez le service « WebClient »
Une fois démarré, il ne nous reste plus qu'à créer soit au travers du navigateur de fichiers, soit par ligne de commande, un lecteur réseau qui pointera directement sur une adresse du type « http://MonPortailSharePoint/MonSite/MaBibliothequeDocument ».
La commande est simple et fonctionne à merveille. Rien ne vaut un test pour valider mes paroles :
- Lancer une fenêtre de commande
- Taper la commande « Net Use * /user :MONDOMAINE\UserName http://MonPortailSharePoint/MonSite/MaBibliothequeDocument <Entree>
- Si tout se passe bien, il vous demande le mot de passe et le lecterur réseau est opérationnel.
- Pour vous en assurer, rien de plus simple : Mettez vous sur le lecteur que vous venez de créer (Y : par exemple) et faites une opération de copier/coller de fichier directement dedans.
- Si vous avez les droits d'écriture (bien sûr !!), vous devriez voir apparaitre votre fichier dans la bibliothèque de documents SharePoint.
La copie d'écran ci-dessous reprend l'ensemble de ces commandes J
Si l'erreur 67 est remontée lors de la commande de Net use : il y a fort à parier que le service WebClient n'est pas démarré (donc démarrez le)… ou mal démarré : dans ce cas, sous Windows XP comme sous Windows Server 2003, une seule solution : REBOOTER LA MACHINE pour le redémarrer correctementL. Ce « bug » est connu et corrigé sous Windows VISTA.
BON… On est bien là et ca marche bien… Tester plusieurs chez mes clients, éprouvé, je ne suis confiant sur cette connaissance approfondis de mon « net use » qui marche dans tout les cas J…
Et bien NON …. !! Il y a un cas pour lequel ca ne marche pas ! Si tu remplaces HTTP par HTTPS : là, oh surprise, ca ne marche pas ! En fait pas tout à fait : ca marche bien sous …. VISTA mais pas sous XP ou 2003.
Il vous pète une erreur 67 à chaque coup… et là, deux solutions pour mon client :
- Soit il abandonne son idée de copier de manière automatique des fichiers de ses postes locaux vers SharePoint et inversement
- Soit il migre sous VISTA où ca marche
Bizarrement mes solutions ne lui plaisent pas (et à moi non plus J).
Il ne reste alors plus qu'une solution de mon point de vue : lui fournir une application en ligne de commande développée en .NET 2.0 pour effectuer cette opération de copie de fichiers automatique qui marche en HTTPS sous Windows XP ou Windows Server 2003. Le temps était compté et mon délai de quelques heures avant de repartir de chez mon client…
J'aurais pu m'éplucher tranquillement le SDK mais j'ai trouvé mieux ici : http://geek.hubkey.com/2007/10/upload-file-to-sharepoint-document.html
J'ai pris ce morceau de code et je me lui suis mis dans mon projet .NET… « Specials thanks to txs8311 »
J'y ai ajouté quelques lignes de code pour mes paramètres de lignes de commandes, intégré des settings applicatifs pour pouvoir me connecter en utilisant un UserName et un mot de passe spécifique pour me connecter au serveur SharePoint et roule…
Vous trouverez le code de cette petite application ici : http://www.bewise.fr/download/SharePointUploadAndDownload.zip
Le mode d'emploi est simple :
SharePointUploadAndDownload.exe –[DOWNLOAD | UPLOAD] [Source] [DESTINATION]
Où la source peut être soit l'URL (http/https) du fichier sous SharePoint (DOWNLAOD), soit le chemin du fichier local (UPLOAD)
Et la destination peut être soit l'URL (http/https) du répertoire SharePoint (UPLOAD), sot le répertoire physique local (DOWNLOAD).
Le fichier de configuration inclus les « credentials » (ou utilisateur / mot de passe) pour pouvoir se connecter à l'environnement SharePoint.
De petites améliorations simples peuvent être ajoutées à ce petit utilitaire (permettre une authentification intégrée, prendre en entrée des infos pour des métadonnées…etc).
Je publierais au fur et à mesure les améliorations successives jusqu'à ce que tout le monde soit passé à Vista J….
Voilà pour mon premier modeste post de Bewisien.
Mon prochain post devrait traiter de l'intégration de MOSS & WSS avec ADAM… J'ai pas mal de chose à dire sur ce sujet donc je pense que cela tiendra en quelques posts.