Visual Basic - Script en VB para copiar archivo y apagar

Life is soft - evento anual de software empresarial
 
Vista:

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.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Script en VB para copiar archivo y apagar

Publicado por XHkrElite (518 intervenciones) el 03/10/2010 07:29:41
posiblemente sea esta linea:
path=CreateObject("WScript.Shell").ExpandEnvironmentStrings("%UserProfile%") & ("\Configuración local\Datos de programa\Microsoft\Outlook\")

quizas se escriba asi:
set path=CreateObject("WScript.Shell")
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar