Script envio masivo

27/11/2009 - 11:27 por ZIDAC | Informe spam
Hola a todos, estoy intentando localizar un scritp que ejecuta código en
maquinas remotas, estas máquinas remotas las toma de un .txt

El script en cuestión lo vi hace tiempo en el script center pero llevo dos
días buscándolo y no lo encuentro.

Lo que si recuerdo era el cuerpo del script (en vbs) el cual tenía a la
mitad del mismo un hueco para insertar el código a ejecutar en las máquinas
remotas.

A alguien le suena ?
Dónde puedo localizarlo ?

Gracias

Preguntas similare

Leer las respuestas

#1 Fernando Reyes [MS MVP]
27/11/2009 - 14:08 | Informe spam
Es muy simple, basta crear un objeto FileSystemObject, con él abrir el
fichero de texto (que se puede poner su ruta hardcoded en el script o
recibirlo como parámetro), en el que habrá un nombre de máquina por línea,
volcar este contenido a un array, usando el salto de línea como separador de
elementos y recorrer los elementos en un bucle For Each dentro del cual se
llama a un método o función, dependiendo si lo que se desea hacer con cada
nombre de equipo ha de devolver o no algo. Es decir:

Dim obj_FS
Dim obj_TS
Dim arr_Equipos
Dim str_Equipo

'Creamos un objeto FileSystemObject
Set obj_FS = CreateObject("Scripting.FileSystemObject")

'Cargamos el fichero en un objeto TextStream
Set obj_TS = obj_FS.OpenTextFile(WScript.Arguments.Unnamed(0))

'Cargamos el array de equipos leyendo el fichero y separando los elementos
'usando el salto de línea como separador
arr_Equipos = Split(obj_TS.ReadAll,vbCrLf)

'Cerramos el fichero
obj_TS.Close

'Vaciamos los objetos FileSystemObject y TextStream
Set obj_TS = Nothing
Set obj_FS = Nothing

'Recorremos los elementos del array
For Each str_Equipo In arr_Equipos

'Llamamos al método evitando elementos vacíos (líneas vacías en el fichero
'de nombres de equipos
Call s_Metodo(str_Equipo)

Next

'Definición del método
Sub s_Metodo(str_Equipo)
'Aquí dentro es donde se pone el código de lo que se quiera realizar con cada
'equipo, usando la variable str_Equipo como nombre de equipo


End Sub

Un saludo
Fernando Reyes [MS MVP]
MCSA, MCSE, MCTS
http://freyes.svetlian.com
http://urpiano.wordpress.com
freyes.champú@champú.mvps.org
(Aclárate la cabeza si quieres escribirme)


"ZIDAC" wrote:

Hola a todos, estoy intentando localizar un scritp que ejecuta código en
maquinas remotas, estas máquinas remotas las toma de un .txt

El script en cuestión lo vi hace tiempo en el script center pero llevo dos
días buscándolo y no lo encuentro.

Lo que si recuerdo era el cuerpo del script (en vbs) el cual tenía a la
mitad del mismo un hueco para insertar el código a ejecutar en las máquinas
remotas.

A alguien le suena ?
Dónde puedo localizarlo ?

Gracias
Respuesta Responder a este mensaje
#2 Fernando Reyes [MS MVP]
27/11/2009 - 14:12 | Informe spam
Se me ha olvidado decirte que el ejemplo que te pongo es para que se pase
como parámetro la ruta y nombe del fichero con los nombres de los equipos. Es
decir, si el script se llama liarla-parda.vbs, la forma de llamarlo sería:

cscript //nologo liarla-parda.vbs d:\listados\equipos-pa-liarla-parda.txt


Un saludo
Fernando Reyes [MS MVP]
MCSA, MCSE, MCTS
http://freyes.svetlian.com
http://urpiano.wordpress.com
freyes.champú@champú.mvps.org
(Aclárate la cabeza si quieres escribirme)


"Fernando Reyes [MS MVP]" wrote:

Es muy simple, basta crear un objeto FileSystemObject, con él abrir el
fichero de texto (que se puede poner su ruta hardcoded en el script o
recibirlo como parámetro), en el que habrá un nombre de máquina por línea,
volcar este contenido a un array, usando el salto de línea como separador de
elementos y recorrer los elementos en un bucle For Each dentro del cual se
llama a un método o función, dependiendo si lo que se desea hacer con cada
nombre de equipo ha de devolver o no algo. Es decir:

Dim obj_FS
Dim obj_TS
Dim arr_Equipos
Dim str_Equipo

'Creamos un objeto FileSystemObject
Set obj_FS = CreateObject("Scripting.FileSystemObject")

'Cargamos el fichero en un objeto TextStream
Set obj_TS = obj_FS.OpenTextFile(WScript.Arguments.Unnamed(0))

'Cargamos el array de equipos leyendo el fichero y separando los elementos
'usando el salto de línea como separador
arr_Equipos = Split(obj_TS.ReadAll,vbCrLf)

'Cerramos el fichero
obj_TS.Close

'Vaciamos los objetos FileSystemObject y TextStream
Set obj_TS = Nothing
Set obj_FS = Nothing

'Recorremos los elementos del array
For Each str_Equipo In arr_Equipos

'Llamamos al método evitando elementos vacíos (líneas vacías en el fichero
'de nombres de equipos
Call s_Metodo(str_Equipo)

Next

'Definición del método
Sub s_Metodo(str_Equipo)
'Aquí dentro es donde se pone el código de lo que se quiera realizar con cada
'equipo, usando la variable str_Equipo como nombre de equipo


End Sub

Un saludo
Fernando Reyes [MS MVP]
MCSA, MCSE, MCTS
http://freyes.svetlian.com
http://urpiano.wordpress.com
freyes.champú@champú.mvps.org
(Aclárate la cabeza si quieres escribirme)


"ZIDAC" wrote:

> Hola a todos, estoy intentando localizar un scritp que ejecuta código en
> maquinas remotas, estas máquinas remotas las toma de un .txt
>
> El script en cuestión lo vi hace tiempo en el script center pero llevo dos
> días buscándolo y no lo encuentro.
>
> Lo que si recuerdo era el cuerpo del script (en vbs) el cual tenía a la
> mitad del mismo un hueco para insertar el código a ejecutar en las máquinas
> remotas.
>
> A alguien le suena ?
> Dónde puedo localizarlo ?
>
> Gracias
Respuesta Responder a este mensaje
#3 Fernando Reyes [MS MVP]
27/11/2009 - 14:17 | Informe spam
Ejem, un gazapo. Pongo que se llama al método evitando elementos vacíos, pero
en realidad no lo hago. Para que esto sea así, sustituye:

Call s_Metodo(str_Equipo)

Por:

If Len(Trim(str_Equipo)) > 0 Then Call s_Metodo(str_Equipo)

Un saludo
Fernando Reyes [MS MVP]
MCSA, MCSE, MCTS
http://freyes.svetlian.com
http://urpiano.wordpress.com
freyes.champú@champú.mvps.org
(Aclárate la cabeza si quieres escribirme)


"Fernando Reyes [MS MVP]" wrote:

Es muy simple, basta crear un objeto FileSystemObject, con él abrir el
fichero de texto (que se puede poner su ruta hardcoded en el script o
recibirlo como parámetro), en el que habrá un nombre de máquina por línea,
volcar este contenido a un array, usando el salto de línea como separador de
elementos y recorrer los elementos en un bucle For Each dentro del cual se
llama a un método o función, dependiendo si lo que se desea hacer con cada
nombre de equipo ha de devolver o no algo. Es decir:

Dim obj_FS
Dim obj_TS
Dim arr_Equipos
Dim str_Equipo

'Creamos un objeto FileSystemObject
Set obj_FS = CreateObject("Scripting.FileSystemObject")

'Cargamos el fichero en un objeto TextStream
Set obj_TS = obj_FS.OpenTextFile(WScript.Arguments.Unnamed(0))

'Cargamos el array de equipos leyendo el fichero y separando los elementos
'usando el salto de línea como separador
arr_Equipos = Split(obj_TS.ReadAll,vbCrLf)

'Cerramos el fichero
obj_TS.Close

'Vaciamos los objetos FileSystemObject y TextStream
Set obj_TS = Nothing
Set obj_FS = Nothing

'Recorremos los elementos del array
For Each str_Equipo In arr_Equipos

'Llamamos al método evitando elementos vacíos (líneas vacías en el fichero
'de nombres de equipos
Call s_Metodo(str_Equipo)

Next

'Definición del método
Sub s_Metodo(str_Equipo)
'Aquí dentro es donde se pone el código de lo que se quiera realizar con cada
'equipo, usando la variable str_Equipo como nombre de equipo


End Sub

Un saludo
Fernando Reyes [MS MVP]
MCSA, MCSE, MCTS
http://freyes.svetlian.com
http://urpiano.wordpress.com
freyes.champú@champú.mvps.org
(Aclárate la cabeza si quieres escribirme)


"ZIDAC" wrote:

> Hola a todos, estoy intentando localizar un scritp que ejecuta código en
> maquinas remotas, estas máquinas remotas las toma de un .txt
>
> El script en cuestión lo vi hace tiempo en el script center pero llevo dos
> días buscándolo y no lo encuentro.
>
> Lo que si recuerdo era el cuerpo del script (en vbs) el cual tenía a la
> mitad del mismo un hueco para insertar el código a ejecutar en las máquinas
> remotas.
>
> A alguien le suena ?
> Dónde puedo localizarlo ?
>
> Gracias
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida