2008-08-13 25 views
11

¿Es posible, en Windows XP, copiar archivos en un lugar de la red desde la línea de comandos, un archivo por lotes o, incluso mejor, un script de PowerShell?¿Puedo copiar archivos a un Lugar de red desde un script o la línea de comando?

Lo que me envió por este camino de investigación fue tratar de publicar archivos en una biblioteca de documentos de WSS 3.0 desde la máquina de un usuario. No puedo asignar un disco a la biblioteca en cuestión porque el sitio de WSS solo está disponible para autenticarse a través de NTLM en un puerto que no sea 80 o 443. Supongo que podría usar alternativamente los servicios web de WSS para expulsar los archivos, pero Tengo mucha curiosidad sobre la respuesta a esta pregunta ahora.

+0

ver también pregunta similar aquí: http://serverfault.com/q/43116/84502 – Synox

Respuesta

1

De lo que estoy viendo, parece que no es posible el acceso directo/manipular un sitio de red desde la línea de comandos, ya sea en PowerShell o el símbolo del sistema ol llano'.

@slipsec (# 13899): Gracias por la sugerencia, pero PowerShell no admite el número de puerto en la ruta de destino más que el comando net use.

Así que lo mejor que puedo hacer en mi situación particular es comprar algo como WebDrive para habilitar el mapeo de discos a través de WebDAV en puertos no estándar, o hacer alguna configuración diferente (por ejemplo, una aplicación web separada con un diferentes direcciones IP y encabezados de host) en SharePoint para exponer el sitio a través de NTLM en un puerto estándar.

-1

Sí, puedes. Sugiero usar una herramienta como robocopy.

1

podría usar los comandos 'net' para autenticar y luego copiar los archivos.

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

No estoy realmente seguro exactamente cómo manejar la autenticación si se necesita.

0

Si es algo que necesita script, debe considerar NAnt.

Se usa principalmente para crear scripts, pero es muy potente y razonablemente fácil de usar.

También hay NAntContrib y nant ftp task que deberían ser de ayuda.

0

Podría estar equivocado al respecto, pero creo que ni la solución robocopy de Nick ni la solución de comando de copia de Nathan funcionarán. Robocopy parece querer una unidad asignada, la cual no puedo hacer porque no se está ejecutando en el puerto 80 o 443, y Windows no puede manejar un camino que incluye el puerto en un nombre de estilo UNC:

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

Tampoco vi una tarea NAnt que manejara esta situación.

También sé que hay herramientas que me permitirán mapear unidades WebDAV. Me preguntaba si había alguna forma de hacer uso de los sitios de red que se han configurado sin usar la GUI.

3

Powershell utiliza la abstracción de los proveedores para proporcionar una interfaz común en las áreas de almacenamiento de datos. Estos parecen quedarse con el sustantivo común "Artículo", por lo que puede obtener una lista completa con man *item*. Si conoce otra forma de copiar y trabajar con datos de una tienda, también podría usarla, pero usar los cmdlets proporciona un mejor enfoque de "aprenda una vez, use a menudo". En su caso podría:

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

El elemento de copia también admite el parámetro -Credential si lo necesita.

+1

Copy-Item tiene un parámetro -Credential, pero ninguno de los proveedores habituales (es decir, el sistema de archivos) soporta, por lo no es realmente utilizable – chills42

19

El uso de un archivo por lotes, ambos pueden iniciar sesión en el recurso y copiar el archivo:

el archivo por lotes podría contener lo siguiente:

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

por ejemplo,

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

"Lugares de red" realmente no tiene una API, es solo un grupo de accesos directos, y el recurso compartido de SharePoint usa una extensión de shell, si no recuerdo mal.

Todo eso para decir: el acceso a Sharepoint como un sistema de archivos de PowerShell también requiere una extensión, SharePoint Provider.

6

Si se refiere a un windows box, simplemente use xcopy. Es bastante estándar tener xcopy disponible.

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