Script en VB para copiar archivo y apagar
Publicado por Victor (1 intervención) el 30/09/2010 11:03:15
Hola,
Tengo 30 ordenadores en una red.
Los usuarios tienen cuentas de outlook.
Quiero, mediante políticas del sistema, agregar una TAREA en cada ordenador para que haga los siguiente:
1) Cerrar todas las aplicaciones abiertas
2) Copiar el archivo outlook.ost que se encuentra en C:\Documents and Settings\usuario\Application Data\Microsoft\Outlook, a c:\ con el nombre "dia de la semana"_outlook.ost, donde "día de la semana corresponde a Lunes, Martes, etc. (Así tengo 5 copias semanales)
3) Apagar el equipo.
Lo que hago actualmente, es, por políticas del sistema, hacer que al iniciar la sesión, se ejecute un .BAT que es el que me crea la tarea, y la tarea en sí, es ejjecutar un .VBS que se encarga de hacer las copias y apagar el PC.
El contenido del .BAT es básicamente esto:
c:\windows\system32\schtasks /create /tn SHUTDOWN /tr \\directorio en donde se encuentra el archivo\BSD.vbs /sc weekly /d MON,TUE,WED,THU,FRI /st 21:00:00 /ru dominio\copia /rp "copia123"
El contenido de BSD.VBS es:
'COPY------------------------
Set WshNetwork = WScript.CreateObject("WScript.Network")
set filesys=CreateObject("Scripting.FileSystemObject")
path=CreateObject("WScript.Shell").ExpandEnvironmentStrings("%UserProfile%") & ("\Configuración local\Datos de programa\Microsoft\Outlook\")
filesys.CopyFile path & "\outlook.ost", "c:\" & WeekDayName(WeekDay(Date)) & "_outlook.ost"
'SHUTDOWN--------------------
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "c:\windows\system32\SHUTDOWN.EXE -s -t 300 -f"
El problema es que no funciona.
Por qué?
En el .BAT, utilizo un usuario "copia" con una contraseña "copia123" para que la tarea se ejecute con ese usuario.
Por que?
Porque cada usuario tiene una contraseña diferente.
El problema es que el .VBS, cuando busca el archivo de outlook en la carpeta del usuario, lo busca en la del usuario "copia" y no en la del usuario que tiene iniciada la sesión.
Si en el .BAT no especifico los parámetros de usuario y password, la tarea no se agrega.
Si en lugar de utilizar "schtasks" para crear la tarea, utilizo AT y no especifico usuario y pass, la tarea se agrega para que se ejecute como NT AUTHORITY SYSTEM, pero luego da un error al ejecutarse.
alguna idea de como solucionarlo?
Gracias.
Tengo 30 ordenadores en una red.
Los usuarios tienen cuentas de outlook.
Quiero, mediante políticas del sistema, agregar una TAREA en cada ordenador para que haga los siguiente:
1) Cerrar todas las aplicaciones abiertas
2) Copiar el archivo outlook.ost que se encuentra en C:\Documents and Settings\usuario\Application Data\Microsoft\Outlook, a c:\ con el nombre "dia de la semana"_outlook.ost, donde "día de la semana corresponde a Lunes, Martes, etc. (Así tengo 5 copias semanales)
3) Apagar el equipo.
Lo que hago actualmente, es, por políticas del sistema, hacer que al iniciar la sesión, se ejecute un .BAT que es el que me crea la tarea, y la tarea en sí, es ejjecutar un .VBS que se encarga de hacer las copias y apagar el PC.
El contenido del .BAT es básicamente esto:
c:\windows\system32\schtasks /create /tn SHUTDOWN /tr \\directorio en donde se encuentra el archivo\BSD.vbs /sc weekly /d MON,TUE,WED,THU,FRI /st 21:00:00 /ru dominio\copia /rp "copia123"
El contenido de BSD.VBS es:
'COPY------------------------
Set WshNetwork = WScript.CreateObject("WScript.Network")
set filesys=CreateObject("Scripting.FileSystemObject")
path=CreateObject("WScript.Shell").ExpandEnvironmentStrings("%UserProfile%") & ("\Configuración local\Datos de programa\Microsoft\Outlook\")
filesys.CopyFile path & "\outlook.ost", "c:\" & WeekDayName(WeekDay(Date)) & "_outlook.ost"
'SHUTDOWN--------------------
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "c:\windows\system32\SHUTDOWN.EXE -s -t 300 -f"
El problema es que no funciona.
Por qué?
En el .BAT, utilizo un usuario "copia" con una contraseña "copia123" para que la tarea se ejecute con ese usuario.
Por que?
Porque cada usuario tiene una contraseña diferente.
El problema es que el .VBS, cuando busca el archivo de outlook en la carpeta del usuario, lo busca en la del usuario "copia" y no en la del usuario que tiene iniciada la sesión.
Si en el .BAT no especifico los parámetros de usuario y password, la tarea no se agrega.
Si en lugar de utilizar "schtasks" para crear la tarea, utilizo AT y no especifico usuario y pass, la tarea se agrega para que se ejecute como NT AUTHORITY SYSTEM, pero luego da un error al ejecutarse.
alguna idea de como solucionarlo?
Gracias.
Valora esta pregunta


0