Puis-je copier des fichiers vers un favori réseau à partir d'un script ou de la ligne de commande ?[fermé]

StackOverflow https://stackoverflow.com/questions/10313

Question

Est-il possible, sous Windows XP, de copier des fichiers vers un Place réseau à partir de la ligne de commande, d'un fichier batch ou, mieux encore, d'un script PowerShell ?

Ce qui m'a poussé dans cette voie de recherche, c'est d'essayer de publier des fichiers dans une bibliothèque de documents WSS 3.0 à partir de la machine d'un utilisateur.Je ne parviens pas à mapper un lecteur à la bibliothèque en question car le site WSS n'est disponible que pour s'authentifier via NTLM sur un port autre que 80 ou 443.Je suppose que je pourrais alternativement utiliser les services Web WSS pour extraire les fichiers, mais je suis vraiment curieux de connaître la réponse à cette question maintenant.

Était-ce utile?

La solution 6

D'après ce que je vois, il semble qu'il ne soit pas possible d'accéder/de manipuler directement un emplacement réseau à partir de la ligne de commande, que ce soit dans PowerShell ou dans la simple invite de commande.

@slipsec (#13899) :Merci pour la suggestion, mais PowerShell ne prend pas plus en charge le numéro de port dans le chemin de destination que le net use la commande le fait.

Donc, la meilleure chose que je puisse faire dans ma situation particulière est de mordre la balle et d'acheter quelque chose comme WebDrive pour activer le mappage de lecteur via WebDAV sur des ports non standard, ou d'effectuer une configuration différente (par ex.application Web distincte avec une adresse IP et des en-têtes d'hôte différents) dans SharePoint pour exposer le site via NTLM sur un port standard.

Autres conseils

À l'aide d'un fichier batch, vous pouvez à la fois vous connecter à la ressource et copier le fichier :

Le fichier batch contiendrait les éléments suivants :

net use \\{dest-machine}\{destfolder} {password} /user:{username}
copy {file} \\{dest-machine}\{destfolder}

par exemple.

net use \\Development\myfolder mypassword /user:Administrator
copy newfile.c \\development\myfolder

Si vous faites référence à un windows box, utilisez simplement xcopy.C'est assez standard d'avoir xcopy disponible.

xcopy src \\dest-machine\shared-library-name\dest
xcopy \\src-machine\shared-library-name\dest src

Powershell utilise l'abstraction des fournisseurs pour fournir une interface commune dans les banques de données.Ceux-ci semblent s'en tenir au nom commun "Item", vous pouvez donc obtenir une liste complète avec man *item*.Si vous connaissez une autre façon de copier et de travailler avec les données d'un magasin, vous pouvez tout aussi bien l'utiliser, mais l'utilisation des applets de commande offre une meilleure approche « apprendre une fois, utiliser souvent ».Dans votre cas, vous pourriez :

Copy-Item test.txt -Destination \\dest-machine\share

Copy-item prend également en charge le paramètre -Credential si vous en avez besoin.

"Lieux réseau" n'a pas vraiment d'API, c'est juste un tas de raccourcis, et le partage SharePoint utilise une extension Shell, si je me souviens bien.

Tout ça pour dire :accéder à Sharepoint en tant que système de fichiers à partir de PowerShell aussi nécessite une extension, le Fournisseur SharePoint.

vous pouvez utiliser les commandes « net » pour vous authentifier puis copier les fichiers.

copy src \\dest-machine\shared-library-name\dest

je ne suis pas vraiment je sais exactement comment gérer l'authentification si elle est nécessaire.

Si c'est quelque chose que vous devez écrire dans un script, vous devriez envisager NANT.

C'est principalement utilisé pour les scripts de construction, mais il est très puissant et raisonnablement facile à utiliser.

Il y a aussi NAntContrib et le tâche FTP nantante ce qui devrait vous aider.

Je peux me tromper à ce sujet, mais je pense que ni la solution robocopy de Nick ni la solution de commande de copie de Nathan ne fonctionneront.Robocopy semble vouloir un lecteur mappé, ce que je ne peux pas faire car il ne fonctionne pas sur le port 80 ou 443, et Windows ne peut pas gérer un chemin qui inclut le port dans un nom de style UNC :

copy src \\dest-machine:45000\shared-library-name\dest

Je n'ai pas non plus vu de tâche NAnt capable de gérer cette situation.

Je sais également qu'il existe des outils qui me permettront de mapper des lecteurs WebDAV.Je me demandais davantage s'il existait un moyen d'utiliser les emplacements réseau configurés sans utiliser l'interface graphique.

Oui, vous pouvez.Je suggère d'utiliser un outil comme robocopy.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top