Script SMB en Windows

7 views
Skip to first unread message

Óscar López

unread,
Aug 26, 2006, 11:41:15 AM8/26/06
to sl-prog
Hola,

Necesito automatizar un proceso que me permita bajar archivos
compartidos por SMB, desde una máquina windows hacia una máquina
windows. Idealmente, debería poder llamar este proceso como un script
-no importa en qué lenguaje, con tal que un intérprete esté
disponible en windows-.

Sé que hay herramientas y librerías en Linux para esta labor, pero
necesito una solución en windows que no implique tener que reproducir
un ambiente Unix (es decir, instalar CygWin, o compilar desde fuentes
no son opciones viables).

¿A alguien se le ocurre alguna idea?

-Óscar.

Andres Pinzon

unread,
Aug 26, 2006, 3:48:39 PM8/26/06
to sl-...@googlegroups.com
On 8/26/06, Óscar López <oscar.and...@gmail.com> wrote:
>
> Hola,
>
> Necesito automatizar un proceso que me permita bajar archivos
> compartidos por SMB, desde una máquina windows hacia una máquina
> windows. Idealmente, debería poder llamar este proceso como un script
> -no importa en qué lenguaje, con tal que un intérprete esté
> disponible en windows-.

Pues tienes PHP (CLI) y Python entre otros. Es cosa de hacer el
script y ya, digo yo. ;-)
--
Andrés Pinzón cPh.D.
[http://www.andrespinzon.com]
Bioinformatics Center, Colombia EMBnet node
http://bioinf.ibun.unal.edu.co
Tel +57 3165000 ext 16961 Fax +571 3165415
Micology and Phytopathology Laboratory - Los Andes University.
Tel +571 3394949 ext. 2768

Camilo

unread,
Aug 27, 2006, 10:31:21 AM8/27/06
to sl-...@googlegroups.com
Yo no se nada del tema, pero no se puede hacer con el copy de windows?

PDT:
Te extrañanos en las JSL

On 8/26/06, Óscar López <oscar.and...@gmail.com> wrote:
>


--
Red-Handed un programa de radio para informaticos
http://www.red-handed.com.ar

Óscar López

unread,
Aug 28, 2006, 8:12:26 PM8/28/06
to sl-prog
Gracias a todos los que contestaron, aquí y en #GLUC. Las posibles
soluciones que encontramos fueron:

Ruby/SMB [http://rubysmb.sourceforge.net/]
Pros: Se integra transparentemente con el lenguaje, hace las cosas a la
manera Ruby
Contras: Depende de una librería externa que debe ser compilada desde
fuentes sobre la máquina objetivo, luego no es muy portable. Además,
no ha sido actualizada en más e 4 años.

PySMB [http://miketeo.net/old/projects/pysmb/]
Pros: La última versión es de hace "sólo" 2 años. No depende de
librerías externas.
Contras: Como el mismo autor lo reconoce, tiene problemas funcionando
en versiones de windows superiores a WinME. A mí, no me funcionó. Me
parece que Ruby/SMB está más en el espíritu de su lenguaje que esta
librería en el del suyo.

PyWin32 [http://sourceforge.net/projects/pywin32/]
Pros: Sencilla de usar, funciona. Esta receta demuestra todo lo que
puede hacer:
http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/442521
Contras: No es una librería específicamente pensada para SMB, aunque
su sencillez puede considerarse una ventaja.

JCIFS [http://jcifs.samba.org/]
Pros: La librería más poderosa que encontré. Permite autenticarse,
abrir Input y Output Streams, listar directorios, filtrar el contenido
de éstos y por supuesto bajar y subir archivos via SMB. Su API es rica
en funcionalidades, aunque compleja.
Contras: Da la sensación de tener que hacer mucho trabajo para lograr
algo, se "siente" muy de bajo nivel. No es una solución muy
script-esca que digamos.

Comandos de Línea de Windows
Pros: Es la solución más sencilla de todas. No tenía ni idea que uno
pudiera hacer `copy \\SERVER\Directorio\archivoRemoto archivoLocal'
(copy, dir, etc.) en Windows. Trabajar con archivos remotos es
completamente transparente.
Contras: El débil shell de Windows XP hace que si uno necesitara
algún tipo de procesamiento adicional (ej, filtrar archivos), deba
recurrir a un lenguaje externo. No logré hacer autenticación
programáticamente, no es tan grave ya que con una vez que uno se
autentique por la interfaz gráfica es suficiente y el script funciona
sin problemas de ahí en adelante.

Y el ganador fue ... Comandos de Línea de Windows + Ruby . Nuevamente
la navaja de Occam en acción: la solución más sencilla, generalmente
es la correcta.

Reply all
Reply to author
Forward
0 new messages