El Blog de Gualtrysoft

Windows 2000/2003/2008, Active Directory, VBScript, Hyper-V, PowerShell y todo aquello interesante a la hora de usar, configurar y administrar Windows Server. También tenemos longanizas…

Script VBScript Para Combrobar Si Tienen Un Reinicio Pendiente Los Equipos

Posted by urpiano en Viernes 1 \01\UTC junio \01\UTC 2007

Script VBScript que revisa si hay pendiente un reinicio en uno o más equipos. Estos reinicios pendientes son provocados por la instalación de software y/o parches. Permite reiniciar el/los equipos revisados si así se desea.

Sintaxis

cscript [//nologo] reinicio-pendiente.vbs [/E:equipos] [/U:usuario] [C:contraseña]] [/R] [/?]

Siendo

Parámetro ¿Requerido? Descripción
/E No
Lista de equipos a los que se quiere revisar si necesitan reiniciar. Esta lista son los nombres de los equipos separados por comas. Si se omite este parámetro se revisará en el equipo local.
/U No
Nombre del usuario que se utilizará para conectar con el servicio WMI del equipo. En caso de omitirse se utilizará el usuario que lanza el script. Si se trata del equipo local se ignora, pues no se puede conectar al servicio WMI con credenciales alternativas en el equipo local; en este caso se debe ejecutar desde una ventana de comandos (cmd.exe) abierta con un administrador local usando RunAs, por ejemplo.
/C No
Cuando está establecido el parámetro /U, este parámetro nos permite especificar la contraseña del usuario que conectará con el servicio WMI. Si no está especificado el parámetro U se ignorará. Si está establecido el parámetro U y este parámetro es omitido, el script presentará una ventana de Internet Explorer donde entrar la contraseña. Es recomendable no usar este parámetro, pues implica que se teclea la contraseña y alguien puede verla; como el usuario debe tener derechos administrativos, es peligroso que tengamos la contraseña expuesta. Al usar una ventana de IE para teclear la contraseña, esto se realiza en una caja de texto de tipo password, quedando enmascarada, protegida de ojos indiscretos.
/R No
Si se pasa este modificador se procederá al reinicio de los equipos que estén pendientes de reinicio para completar una instalación
/? No
Muestra la ayuda en línea.

Ejemplos

– Revisamos el equipo local

cscript //nologo reinicio-pendiente.vbs

– Revisamos los equipos snaug, grima y saruman

cscrip //nologo reinicio-pendiente.vbs /E:snaug,grima,saruman

– Revisamos los equipos snaug, grima y saruman utilizando las credenciales del usuario mordorreybrujo y suministrando su contraseña

cscript reinicio-pendiente.vbs /E:snaug,grima,saruman /U:mordorreybrujo /C:"soy malisimo"

– Revisamos los equipos snaug, grima y saruman utilizando las credenciales del usuario mordorreybrujo, suministrando su contraseña y provocamos el reinicio de los que lo necesiten

cscript reinicio-pendiente.vbs /E:snaug,grima,saruman /U:mordorreybrujo /C:"soy malisimo" /R

El script se basa en buscar el valor PendingFileRenameOperations, ubicado en la clave del registro HKLMSYSTEMCurrentControlSetControlSession Manager. Este valor no existe cuando no es necesaria ningún reinicio, pues almacena los nombres de los ficheros a nombrar y el nuevo nombre que deben tener; el sistema en el arranque mira si existe este valor y, en caso de existir, renombra los ficheros que este valor indique. Esto es así cuendo se tienen que renombrar ficheros que están en uso por el sistema cuando se realiza la instalación.

'reinicio-pendiente.vbs
'
'Script VBScript que revisa si hay pendiente un reinicio en uno o
'más equipos. Estos reinicios pendientes son provocados por la
'instalación de software y/o parches. Permite reiniciar el/los
'equipos revisados si así se desea.
'
'Sintaxis
'
'cscript [//nologo] reinicio-pendiente.vbs [/E:equipos]
' [/U:usuario de conexion [/C:contraseña]] [/?] [/R]
'
'Siendo
'
'    - /E: opcional. Lista de equipos a los que se quiere revisar 
'                    si necesitan reiniciar. Esta lista son los
'                    nombres de los equipos separados por comas.
'                    Si se omite este parámetro se revisará en el
'                    equipo local.
'
'    - /U: opcional. Nombre del usuario que se utilizará para conectar
'                    con el servicio WMI del equipo. En caso de
'                    omitirse se utilizará el usuario que lanza el
'                    script.
'
'    - /C: opcional. Cuando está establecido el parámetro U, este
'                    parámetro nos permite especificar la contraseña
'                    del usuario que conectará con el servicio WMI.
'                    Si no está especificado el parámetro U se
'                    ignorará. Si está establecido el parámetro U
'                    y este parámetro es omitido, el script presentará
'                    una ventana de Internet Explorer donde entrar la
'                    contraseña. Es recomendable no usar este parámetro,
'                    pues implica que se teclea la contraseña y alguien
'                    puede verla; como el usuario debe tener derechos
'                    administrativos, es peligroso que tengamos la
'                    la contraseña expuesta. Al usar una ventana de IE
'                    para teclear la contraseña, esto se realiza en
'                    una caja de texto de tipo password, quedando
'                    enmascarada, protegida de ojos indiscretos.
'
'    - /R: opcional. Si se pasa este modificador se procederá al 
'                    reinicio de los equipos que estén pendientes
'                    de reinicio para completar una instalación
'
'    - /?: opcional. Muestra la ayuda en línea.
'
'Nota: en el equipo local no se puede conectar a WMI con credenciales
'       alternativas. Si el usuario que está lanzando el script no
'       tiene privilegios suficientes para poder ejecutarlo, se debe
'       usar RunAs. Con equipos remots no hay problema en usar
'       credenciales alternativas
'
'Ejemplos:
'
'- Revisamos el equipo local
'
'cscript //nologo reinicio-pendiente.vbs
'
'- Revisamos los equipos snaug, grima y saruman
'
'cscrip //nologo reinicio-pendiente.vbs /E:snaug,grima,saruman
'
'- Revisamos los equipos snaug, grima y saruman utilizando las 
'  credenciales del usuario mordorreybrujo y suministrando su
'  contraseña
'
'cscript reinicio-pendiente.vbs /E:snaug,grima,saruman
'             /U:mordorreybrujo /C:"soy malisimo"
'
'- Revisamos los equipos snaug, grima y saruman utilizando las 
'  credenciales del usuario mordorreybrujo, suministrando su
'  contraseña y provocamos el reinicio de los que lo necesiten
'
'cscript reinicio-pendiente.vbs /E:snaug,grima,saruman
'             /U:mordorreybrujo /C:"soy malisimo" /R
'
'
'© Fernando Reyes - Junio de 2007


'Constante del la rama LOCAL MACHINE del registro
Const HKEY_LOCAL_MACHINE = &H80000002

Dim arr_Equipos, str_Usuario, str_Clave
Dim arr_Contenido, int_Equipo

'Si se ha solicitado la ayuda, se muestra y termina
'el script
If WScript.Arguments.Named.Exists("?") Then

    Call s_Ayuda
    WScript.Quit  
  
End If

'Si se ha pasado una lista de equipos, la guardamos
'en la variable arr_Equipos como array
If WScript.Arguments.Named.Exists("E") Then

    arr_Equipos = Split(WScript.Arguments.Named("E"),",")
    
'si no se ha pasado establecemos un único elemento en el
'array, como cadena vacía
Else

    arr_Equipos = Array("")
    
End If


'Miramos si se ha recibido el parámetro de usuario de conexión a
'WMI
If WScript.Arguments.Named.Exists("U") Then

    'Como se ha recibido, lo recogemos
    str_Usuario = WScript.Arguments.Named("U")

    'Miramos si se ha recibido contraseña
    If WScript.Arguments.Named.Exists("C") Then

        'si se ha recibido lo recogemos
        str_Clave = WScript.Arguments.Named("C")

    Else

        'Como no se ha recibido, llamamos a la función
        'que pedirá al usuario que entre la contraseña
        str_Clave= f_EntrarClave("\fernandor-fcompartido" & _
                                 "usuario-conexion.htm")

    End If

'No se ha recibido parámetro de usuario, dejamos las
'variables vacías
Else

    str_Usuario = ""
    str_Clave = ""

End If

'Procesamos los equipos
For int_Equipo = LBound(arr_Equipos) To UBound(arr_Equipos)

    Call s_ProcesarEquipo(arr_Equipos(int_Equipo))

Next 'int_Equipo

Sub s_ProcesarEquipo(str_Equipo)
'Este procedimiento se encarga de procesar el equipo
'de nombre el parámetro recibido

    Dim col_SOs, obj_SO, str_Espacio, int_Devolucion
    Dim obj_ServicioWMI, obj_Registro, str_RutaRegistro
    Dim str_ValorRegistro    
    
    WScript.Echo "Procesando " & str_Equipo
    WScript.Echo f_EquipoLocal(str_Equipo)
    
    'Conectaremos al espacio de nombres default
     str_Espacio = "rootdefault"
    
    'Conectamos con el servicio WMI del equipo
    If Not f_ServicioWMI(obj_ServicioWMI, _
                         str_Usuario, str_Clave, _
                         str_Equipo, str_Espacio) Then

        WScript.Echo str_Equipo & ": No se ha podido cone" & _
                     "ctar con el servicio WMI"
        Exit Sub
    
    End If

    'Obtenemos el proveedor del registro
    Set obj_Registro = obj_ServicioWMI.Get("StdRegProv")

    'Establecemos la clave del registro donde se ubica el
    'valor PendingFileRenameOperations
    str_RutaRegistro = "SYSTEMCurrentControlSetContro" & _
                       "lSession Manager"
    
    'Establecemos el nombre del valor
    str_ValorRegistro = "PendingFileRenameOperations"
    
    'Obtenemos el valor
    obj_Registro.GetMultiStringValue HKEY_LOCAL_MACHINE,_
                                     str_RutaRegistro, _
                                     str_ValorRegistro, _
                                     arr_Contenido
 
    'Si no es array arr_Contenido el equipo no está esperando
    'un reinicio
    If Not IsArray(arr_Contenido) Then

        WScript.Echo str_Equipo & ": no está esperando un " & _
                     "reinicio para finalizar una instalación"
    
    'El equipo está esperando un reinicio 
    Else

        WScript.Echo str_Equipo & ": está esperando un " & _
                     "reinicio para finalizar una instalación"
        

        'Si se ha pasado el modificador de reinicio, procedemos
        'al mismo
        If WScript.Arguments.Named.Exists("R") Then
        
            'Lo primero es volver a conectar al servicio WMI, esta
            'vez al espacio de nombres CIMV2
        
            str_Espacio = "rootCIMV2"
        
            'Conectamos con el servicio WMI del equipo
            If Not f_ServicioWMI(obj_ServicioWMI, _
                                 str_Usuario, str_Clave, _
                                 str_Equipo, str_Espacio) Then

                WScript.Echo str_Equipo & ": No se ha podido cone" & _
                         "ctar con el servicio WMI"
                Exit Sub
            
            End If
        
            'Obtenemos la colección de sistemas operativos
            Set col_SOs = obj_ServicioWMI.ExecQuery( _
                                     "SELECT * FROM " & _
                                     "Win32_OperatingSystem")
                                     
            'Recorremos la colección (sólo contiene un elemento)
            For Each obj_SO In col_SOs
            
                'Procedemos al reinicio
                int_Devolucion = obj_SO.Reboot
            
                'Si la devolución ha sido 0 indicamos que se
                'ha iniciado el reinicio
                If int_Devolucion = 0 Then
                
                    WScript.Echo str_Equipo   & _
                                 ": se ha ordenado el " & _
                                 "reinicio al equipo."
                                     
                'En caso contrario lo indicamos
                Else
                
                    WScript.Echo str_Equipo & _
                                 ": el reinicio falló" & _
                                 " con error " & int_Devolucion
                                     
                End If
            
            Next 'obj_SO 
            
            'Limpieza de popa :-)
            Set obj_SO = Nothing
            Set col_SOs = Nothing                                    
        
        End If

    End If

    'Parte posterior aseada :-)
    Set obj_Registro = Nothing
    Set obj_ServicioWMI = Nothing

End Sub 's_ProcesarEquipo

Function f_ServicioWMI(obj_ServicioWMI, str_Usuario, _
                       str_Clave, str_Equipo, _
                       str_Espacio)
'Esta función permite conectar con el servicio WMI de un equipo.
'La conexión puede ser realizada directamente por el usuario
'que ha lanzado el script o por otro usuario cuyas credenciales
'son recibidas como parámetros. La función recibe como parámetro
'un objeto que será utilizado como parámetro de salida, siendo
'creado por la función como objeto de servicio WMI del equipo
'recibido como parámetro. Si recibe usuario, contraseña y nombre
'de equipo a conectar, conectará con ése equipo con las
'credenciales pasadas, siempre y cuando no se trate del equipo
'local, en cuyo caso no se conectará con credenciales alternativas
'si no con el usuario que lanza el script. Si está vacío el 
'parámetro str_Espacio, se conectará con el espacio de nombres
'rootCIMV2, en caso contrario con el espacio pasado.

    Dim obj_LocalizadorWMI
    Dim lng_Respuesta

    If Len(str_Espacio) = 0 Then str_Espacio = "rootCIMV2"

    'Si hemos recibido nombre de usuario, debemos conectar
    'al servicio WMI del equipo como el usuario
    'recibido. en el caso de que se trate del equipo local
    'ignoramos las credenciales alternativas
    If Len(str_Usuario) > 0 _
    And Not f_EquipoLocal(str_Equipo) Then

        'Para poder especificar unas credenciales alternativas,
        'debemos crear primero un localizador WMI
        Set obj_LocalizadorWMI = CreateObject( _
                                  "WbemScripting.SWbemLocator")

        'Establecemos control de errores
        On Error Resume Next
        'Conectamos con el servicio WMI del equipo con las
        'credenciales pasadas
        Set obj_ServicioWMI = obj_LocalizadorWMI.ConnectServer( _
                                       str_Equipo, str_Espacio, _
                                       str_Usuario, str_Clave)

        'Si se ha producido algún error...
        If Err.Number <> 0 Then

            'Lo primero es vaciar la variable con el localizador WMI
            Set obj_LocalizadorWMI = Nothing

            'Mostramos el error
            WScript.Echo vbCrLf & vbCrLf & _
                         Err.Number & ": " & Err.Description

            'Vaciamos el objeto Err
            Err.Clear

            'Devolvemos False
            f_ServicioWMI = False

            'Salimos de la función
            Exit Function

        End If

    Else

        'Podemos conectar directamente con el servicio WMI del
        'equipo sin necesidad de utilizar el localizador WMI
        'ya que no hay que hacerlo con otras credenciales 
        'distintas a las del usuario que lanza el script
        Set obj_ServicioWMI = GetObject("winmgmts:\" & _
                                    str_Equipo  & "" & _
                                    str_Espacio)

        'si se ha producido algún error...
        If Err.Number <> 0 Then

            'Mostramos el error
            WScript.Echo Err.Number & ": " & Err.Description & _
                         vbCrLf & vbCrLf

            'Vaciamos el objeto Err
            Err.Clear

            'Devolvemos False
            f_ServicioWMI = False

            'Salimos de la función
            Exit Function

        End If

    End If

    'No se han producido errores, devolvemos True
    f_ServicioWMI = True

    'Limpieza de culito :-)
    Set obj_LocalizadorWMI = Nothing

End Function 'f_ServicioWMI


Function f_EquipoLocal(str_Equipo)

    Dim obj_SH, str_EquipoEntorno

    f_EquipoLocal = False

    'Creamos un objeto WshShell
    Set obj_SH = CreateObject("WScript.Shell")
        
    'Obtenemos el valor de la variable de entorno con
    'el nombre de equipo
    str_EquipoEntorno = UCase(_
       obj_SH.ExpandEnvironmentStrings("%COMPUTERNAME%"))
       
    'Si está vacío el nombre de equipo, o es ".",
    'se trata del equipo local; lo asignamos a la
    'variable
    If Len(str_Equipo) = 0 _
    Or str_Equipo = "." Then
        
        str_Equipo = str_EquipoEntorno
        f_EquipoLocal = True
            
    'Ahora revisamos no se haya pasado el FQDN del equipo
    'local o su nombre NetBios
    ElseIf _
        ( _
        Len(str_Equipo) > Len(str_EquipoEntorno) _
        And UCase(Left(str_Equipo,Len(str_EquipoEntorno))) = _
                      UCase(str_EquipoEntorno) _
        And Mid(str_Equipo, Len(str_EquipoEntorno) + 1,1) = _
                      "." _
        ) _
    Or UCase(str_Equipo) = UCase(str_EquipoEntorno) Then
        
            str_Equipo = str_EquipoEntorno
            f_EquipoLocal = True
                
    End If        

End Function 'f_EquipoLocal

Function f_EntrarClave(str_HTML)
'El propósito de esta función es el proveer al usuario de una caja
'de texto en la que teclear una contraseña sin revelarla, pues
'la caja de texto es de tipo password. Para ello se crea una página
'web que es cargada en un Internet Explorer y se recoge de éste
'la contraseña tecleada y se convierte en la devolucion de la función.
'La ruta y nombre de la página es recibida como parámetro por la
'función, lo que permite reutilizar esta función en más scripts y
'personalizar la página para cada script, lo único que debe ser igual
'en todas las páginas que se quieran utilizar es que el botón debe
'llamarse Aceptar, el control oculto AceptarPulsado y la caja de texto
'Clave.

'Esta función está basada en:
'http://www.microsoft.com/technet/scriptcenter/guide/sas_ent_lppm.mspx?mfr=true

'En el ejemplo de TechNet se pone una ruta local (c:carpetafichero.asp)
'para la ubicación del fichero. Esto no es correcto cuando estamos de
'XP SP2 en adelante, pues la navegación segura interfiere con el script,
'Ya que contiene un script VBScript. Para evitar esto, yo lo que hago
'es situar el fichero en una carpeta compartida y acceder a él con su
'ruta UNC; de esta manera es tratado como de la zona de intranet y no
'hay problemas. También se podría colocar en un servidor Web que fuese
'de la intranet o de los sitios de confianza y referirse a él por su
'ruta http; la mejor opción de todas sería situarlo en un servidor
'web seguro, y poner su ruta https, de esa manera eludimos a alguien
'que esté usando un sniffer

'El código de la página puede ser algo tan simple como:

'********************************************************************
'<html>
'<script language="VBScript">
'<!--
'    Sub Aceptar_OnClick

'        AceptarPulsado.Value = "Pulsado"

'    End Sub
'-->
'</script>
'<body>
'Entre la contraseña del usuario con el que se conectará al servicio 
'WMI del equipo: <input type="password" name ="Clave" size="20">
'<p><input name="Aceptar" type="button" value="Aceptar" ></p>
'<p><input type="hidden" name="AceptarPulsado" size="20"></p>
'</body></html>
'*******************************************************************

    'Declaramos variables
    Dim obj_IE

    'Creamos un objeto Internet Explorer
    Set obj_IE = WScript.CreateObject _
              ("InternetExplorer.Application", "IE_")

    'Cargamos el navegador con la página recibida como parámetro
    obj_IE.Navigate str_HTML

    'Con este bucle esperamos a que la página esté completamente cargada
    Do

        WScript.Sleep 10

    Loop Until obj_IE.ReadyState = 4    

    'Establecemos propiedades del navegador
    obj_IE.ToolBar = 0
    obj_IE.StatusBar = 0
    obj_IE.Width = 400
    obj_IE.Height = 250
    obj_IE.Left = 0
    obj_IE.Top = 0
    obj_IE.Visible = 1

    'En este bucle esperamos a que se haya pulsado el botón
    '"Aceptar"
    Do While (obj_IE.Document.All.AceptarPulsado.Value = "")

        WScript.Sleep 250

    Loop

    'Recogemos la contraseña entrada
    str_Clave = obj_IE.Document.All.Clave.Value

    'Cerramos el navegador
    obj_IE.Quit

    'Esperamos a que esté cerrado
    WScript.Sleep 250

    'Establecemos la contraseña como devolución de la función
    f_EntrarClave = str_Clave  

    'Limpiadita de culito :-)
    Set obj_IE = Nothing

End Function 'f_EntrarClave

Sub s_Ayuda()

    WScript.Echo
    WScript.Echo "reinicio-pendiente.vbs"
    WScript.Echo ""
    WScript.Echo "Script VBScript que revisa" & _
                 " si hay pendiente un reini" & _
                 "cio en uno o"
    WScript.Echo "más equipos. Estos reinici" & _
                 "os pendientes son provocad" & _
                 "os por la"
    WScript.Echo "instalación de software y/" & _
                 "o parches. Permite reinici" & _
                 "ar el/los"
    WScript.Echo "equipos revisados si así s" & _
                 "e desea."
    WScript.Echo ""
    WScript.Echo "Sintaxis"
    WScript.Echo ""
    WScript.Echo "cscript [//nologo] [/E:equ" & _
                 "ipos][/U:usuario de conexi" & _
                 "on [/C:contraseña]] [/?] [" & _
                 "/R]"
    WScript.Echo ""
    WScript.Echo "Siendo"
    WScript.Echo ""
    WScript.Echo "    - /E: opcional. Lista " & _
                 "de equipos a los que se qu" & _
                 "iere revisar "
    WScript.Echo "                    si nec" & _
                 "esitan reiniciar. Esta lis" & _
                 "ta son los"
    WScript.Echo "                    nombre" & _
                 "s de los equipos separados" & _
                 " por comas."
    WScript.Echo "                    Si se " & _
                 "omite este parámetro se re" & _
                 "visará en el"
    WScript.Echo "                    equipo" & _
                 " local."
    WScript.Echo ""
    WScript.Echo "    - /U: opcional. Nombre" & _
                 " del usuario que se utiliz" & _
                 "ará para conectar"
    WScript.Echo "                    con el" & _
                 " servicio WMI del equipo. " & _
                 "En caso de"
    WScript.Echo "                    omitir" & _
                 "se se utilizará el usuario" & _
                 " que lanza el"
    WScript.Echo "                    script."
    WScript.Echo ""
    WScript.Echo "    - /C: opcional. Cuando " & _
                 "está establecido el parámet" & _
                 "ro U, este"
    WScript.Echo "                    parámet" & _
                 "ro nos permite especificar " & _
                 "la contraseña"
    WScript.Echo "                    del usu" & _
                 "ario que conectará con el s" & _
                 "ervicio WMI."
    WScript.Echo "                    Si no e" & _
                 "stá especificado el parámet" & _
                 "ro U se"
    WScript.Echo "                    ignorar" & _
                 "á. Si está establecido el p" & _
                 "arámetro U"
    WScript.Echo "                    y este " & _
                 "parámetro es omitido, el sc" & _
                 "ript presentará"
    WScript.Echo "                    una ven" & _
                 "tana de Internet Explorer d" & _
                 "onde entrar la"
    WScript.Echo "                    contras" & _
                 "eña. Es recomendable no usa" & _
                 "r este parámetro,"
    WScript.Echo "                    pues im" & _
                 "plica que se teclea la cont" & _
                 "raseña y alguien"
    WScript.Echo "                    puede v" & _
                 "erla; como el usuario debe " & _
                 "tener derechos"
    WScript.Echo "                    adminis" & _
                 "trativos, es peligroso que " & _
                 "tengamos la"
    WScript.Echo "                    la cont" & _
                 "raseña expuesta. Al usar un" & _
                 "a ventana de IE"
    WScript.Echo "                    para te" & _
                 "clear la contraseña, esto s" & _
                 "e realiza en"
    WScript.Echo "                    una caj" & _
                 "a de texto de tipo password" & _
                 ", quedando"
    WScript.Echo "                    enmasca" & _
                 "rada, protegida de ojos ind" & _
                 "iscretos."
    WScript.Echo ""
    WScript.Echo "    - /R: opcional. Si se p" & _
                 "asa este modificador se pro" & _
                 "cederá al "
    WScript.Echo "                    reinici" & _
                 "o de los equipos que estén " & _
                 "pendientes"
    WScript.Echo "                    de rein" & _
                 "icio para completar una ins" & _
                 "talación"
    WScript.Echo ""
    WScript.Echo "    - /?: opcional. Muestra" & _
                 " la ayuda en línea."
    WScript.Echo ""
    WScript.Echo "Nota: en el equipo local n" & _
                 "o se puede conectar a WMI c" & _
                 "on credenciales"
    WScript.Echo "       alternativas. Si el " & _
                 "usuario que está lanzando e" & _
                 "l script no"
    WScript.Echo "       tiene privilegios su" & _
                 "ficientes para poder ejecut" & _
                 "arlo, se debe"
    WScript.Echo "       usar RunAs. Con equi" & _
                 "pos remots no hay problema " & _
                 "en usar"
    WScript.Echo "       credenciales alterna" & _
                 "tivas"
    WScript.Echo ""
    WScript.Echo "Ejemplos:"
    WScript.Echo ""
    WScript.Echo "- Revisamos el equipo local"
    WScript.Echo ""
    WScript.Echo "cscript //nologo reinicio-p" & _
                 "endiente.vbs"
    WScript.Echo ""
    WScript.Echo "- Revisamos los equipos sna" & _
                 "ug, grima y saruman"
    WScript.Echo ""
    WScript.Echo "cscrip //nologo reinicio-pe" & _
                 "ndiente.vbs /E:snaug,grima," & _
                 "saruman"
    WScript.Echo ""
    WScript.Echo "- Revisamos los equipos sna" & _
                 "ug, grima y saruman utiliza" & _
                 "ndo las "
    WScript.Echo "  credenciales del usuario " & _
                 "mordorreybrujo y suministr" & _
                 "ando su"
    WScript.Echo "  contraseña"
    WScript.Echo ""
    WScript.Echo "cscript reinicio-pendiente." & _
                 "vbs /E:snaug,grima,saruman"
    WScript.Echo "             /U:mordorreyb" & _
                 "rujo /C:""soy malisimo"""
    WScript.Echo ""
    WScript.Echo "- Revisamos los equipos sna" & _
                 "ug, grima y saruman utiliza" & _
                 "ndo las"
    WScript.Echo "  credenciales del usuario " & _
                 "mordorreybrujo, suministra" & _
                 "ndo su"
    WScript.Echo "  contraseña y provocamos e" & _
                 "l reinicio de los que lo ne" & _
                 "cesiten"
    WScript.Echo ""
    WScript.Echo "cscript reinicio-pendiente." & _
                 "vbs /E:snaug,grima,saruman " & _
                 "/U:mordorreybrujo /C:""soy" & _
                 " malisimo"" /R"
    WScript.Echo ""


End Sub 's_Ayuda

 

 

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

 
A %d blogueros les gusta esto: