none
Script restricitivo para ciertos usuarios RRS feed

  • Pregunta

  •  

    Hola:

     

    mediante un logon-script quiero que todos los usuarios hagan una copia de seguridad de su correo excepto los indicados en varias cadenas.

     

    Este es el codigo:

     

    *********************************************************************************************************************************

    Dim fso
    Dim WshShell, clave
    Dim str1
    Dim str2

     

    Set shell= WScript.CreateObject("WScript.Shell")
    Set fso = WScript.CreateObject("Scripting.FileSystemObject")
    Set WshShell = WScript.CreateObject("WScript.Shell")

     

    'aqui se definen los nombres de los usuarios que NO tienen que hacer la copia

     

    str1= "usuario1"
    str2= "usuario2"

     

    strUserName = shell.ExpandEnvironmentStrings("%USERNAME%")


    clave = LCase(WshShell.RegRead("HKEY_CLASSES_ROOT\mailto\shell\open\command\"))

     

    'ahora se recoge el resultado de la comparacion. si es 0 son iguales, si es 1 no son iguales

     

    intCompare1 = StrComp(strUserName, str1, vbTextCompare)
    intCompare2 = StrComp(strUserName, str2, vbTextCompare)


    num = InStr(clave, "outlook.exe")


    dia = weekday(now())

     

    '2:lunes 3:martes 4:miercoles 5:jueves 6:viernes

     

    'aqui es donde se realiza la comparacion con los usuarios introducidos en str1 y str2 y deberia detener el script is fuera 'el caso

     

    if (intCompare1 = 1) OR (intCompare2 = 1) then

     

    if (dia = 2) OR (dia = 4) OR (dia = 6) then

     

    Wscript.echo "Realizando copia de seguridad de su correo.No abra Outlook. Pulse aceptar para continuar y espere por favor..."

     

     if num <> 0 then

     

      Fso.CopyFile "C:\Documents and Settings\" & strUserName & "\Configuración local\Datos de programa\Microsoft\Outlook\Outlook.pst" , "\\servidor\CorreoElectronico\correo_" & strUserName & "\outlook.pst"

     

      Wscript.echo "Copia de Outlook del usuario " & strUserName & " realizada con exito. Ahora puede abrir Outlook"

     

     else

     

      fso.CopyFolder "C:\Documents and Settings\" & strUserName & "\Configuración local\Datos de programa\Identities","\\servidor\CorreoElectronico\correo_" & strUserName,True

     

      Wscript.echo "Copia de Outlook Express del usuario " & strUserName & " realizada con exito. Ahora puede abrir Outlook"

     

     end if

     

    end if

     

    end if

     

    set shell = nothing
    Set fso= nothing
    Set WshShell = nothing

     

    ***********************************************************************************************************************************

     

    Aunque introduzca los usuarios con los que se supone que no tiene que hacer copia, siempre la hace.

     

    ¿alguna idea?

     

    Gracias

    viernes, 25 de abril de 2008 11:01

Respuestas

  • en la comparación deberias poner

    if (intCompare1 <> 0) and (intCompare2 <> 0) then

     

    en lugar de

    if (intCompare1 = 1) OR (intCompare2 = 1) then

     

     

     

     

    viernes, 25 de abril de 2008 12:42