Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Guia Rapida Windows Script Technologies 1 PDF
Guia Rapida Windows Script Technologies 1 PDF
( Uno )
Referencias
2
Windows Script Technologies
o INTRODUCCIÓN
- Siglas
- 1. Mapear Unidad
- 2. BackUp & Borrado de Logs
- 3. Todos los servicios instalados
o VBSCRIPT
- 4. Espacio Libre en Disco (Objetos)
- 5. Espacio Libre en Disco en MB (Variables, Constantes y Conexión Remota)
- 6. Espacio libre en todos los discos (Colecciones)
- 7. Lista de Unidades de Cinta (Corrección de Fallo por Lista Vacía)
- 8. Espacio Libre en Discos cada Hora (For Next y Sleep)
- 9. Espacio Libre en Grupo de Equipos (Arrays)
- 10. Espacio Libre en Equipos por paso de Argumentos (Argumentos y Errores)
- 11. Constantes Intrínsecas.
- 12. Conversores de Tipos.
- 13. Trabajo con Fechas.
- 14. Datepart. Porciones de Fecha.
- 15. Datepart. Configuración de la semana del principio del año.
- 16. Otras funciones para devolver porciones de Fecha.
- 17. Porcentajes.
- 18. Abrir Fichero y Leer línea a línea.
- 19. Ver Impresoras (Select Case)
- 20. Listar Subcarpetas (Recursividad)
o WSH
- 21. Crear Cuenta de Usuario.
- 22. Borrar Archivo.
- 23. Conectar Unidad de Red Condicional.
- 24. Detener Servicio.
- 25. Enviar Salida a Archivo.
- I. 26. WScript Object.
- 27. Métodos y Propiedades de los Objetos TextStream.
- 28. Argumentos. Argumentos sin nombre.
- 29. Argumentos. Argumentos con nombre y predefinidos.
- 30. Funciones en Entorno WHS.
- II. 31. WshShell Object.
- 32. Run & Exec.
- 33. %compsec%
- 34. Accesos Directos.
- 35. Identificadores de Carpetas Especiales.
- 36. Variables de Entorno.
- 37. LogEvent. Logear Eventos.
- 38. RegRead.
- 39. RegWrite.
- 40. RegDelete.
- 41. SendKeys. Enviar pulsaciones de teclas.
- 42. Cambiar y Mostrar el Directorio Actual (CurrentDirectory).
- 43. Popup. Mostrar MessageBox con cuenta atrás.
- III. 44. WshNetwork Object.
- 45. Mapear Unidades de Red.
- 46. Manejo de Impresoras de Red.
- 47. Obtener información del Usuario y del Equipo.
- IV. 48. WshController Object.
- 49. Ejecutar scripts en Ordenadores Remotos.
- 50. Monitorizar estado de Scripts Remotos.
- 51. Examinar Errores ocurridos en scripts Remotos.
- 52. Limitaciones de WSH Remoto.
3
Windows Script Technologies
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & _
"{impersonationLevel=impersonate, (Backup, Security)}!\\" _
& strComputer & "\root\cimv2")
Set colLogFiles = objWMIService.ExecQuery _
("Select * from Win32_NTEventLogFile")
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & _
"{impersonationLevel=Impersonate}!\\" & _
strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_Service")
4
Windows Script Technologies
VBSCRIPT
Wscript.Echo objLogicalDisk.FreeSpace
o Conectando a Objetos:
- GetObject
- CreateObject
o Instanciación de Objetos:
- Set objNombre
o Llamar Métodos:
- ObjetoReferencia.Metodo
o Recuperar Propiedades:
- ObjetoReferencia.Propiedad
5
Windows Script Technologies
For i = 1 to 12
Set colLogicalDisk = objWMIService.InstancesOf("Win32_LogicalDisk")
For Each objLogicalDisk In colLogicalDisk
FreeMegaBytes = objLogicalDisk.FreeSpace / CONVERSION_FACTOR
Wscript.Echo objLogicalDisk.DeviceID & " " & Int(FreeMegaBytes)
Next
Wscript.Sleep ONE_HOUR
Next
6
Windows Script Technologies
If WScript.Arguments.Count = 0 Then
Wscript.Echo "Use: NombreScript.vbs server1 server2 server3 ..."
WScript.Quit
End If
- .Description
- .Number
- .Source
Si las propiedades no se borran con el método .Clear estas siguen manteniendo su valor y
puede provocar mal funcionamiento del script.
7
Windows Script Technologies
8
Windows Script Technologies
Wscript.Echo Now
Wscript.Echo "Year: " & DatePart("yyyy", Now)
Wscript.Echo "Quarter: " & DatePart("q", Now)
Wscript.Echo "Month: " & DatePart("m", Now)
Wscript.Echo "Day of Year: " & DatePart("y", Now)
Wscript.Echo "Day: " & DatePart("d", Now)
Wscript.Echo "Weekday: " & DatePart("w", Now)
Wscript.Echo "Week of Year: " & DatePart("ww", Now)
Wscript.Echo "Hour: " & DatePart("h", Now)
Wscript.Echo "Minute: " & DatePart("n", Now)
Wscript.Echo "Seconds: " & DatePart("s", Now)
TestDate = "1/6/2003"
Wscript.Echo TestDate
Wscript.Echo "Week of Year: " & DatePart("ww", TestDate)
Wscript.Echo "Week of Year: " & DatePart("ww", TestDate, vbFirstJan1)
Wscript.Echo "Week of Year: " & DatePart("ww", TestDate, _
vbFirstFourDays)
Wscript.Echo "Week of Year: " & DatePart("ww", TestDate, _
vbFirstFullWeek)
9
Windows Script Technologies
CurrentDate = Now
Wscript.Echo "Year: " & VbTab & VbTab & Year(CurrentDate)
Wscript.Echo "Month: " & VbTab & VbTab & Month(CurrentDate)
Wscript.Echo "Day: " & VbTab & VbTab & Day(CurrentDate)
Wscript.Echo "Weekday: " & VbTab & Weekday(CurrentDate)
Wscript.Echo "Hour: " & VbTab & VbTab & Hour(CurrentDate)
Wscript.Echo "Minute: " & VbTab & Minute(CurrentDate)
Wscript.Echo "Second: " & VbTab & Second(CurrentDate)
_17. Porcentajes_____________________
Const NoDecimals = 0
NumberToFormat = 1 / 7
Wscript.Echo NumberToFormat
Wscript.Echo FormatPercent(NumberToFormat, NoDecimals)
Const ForReading = 1
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile("c:\test.txt", ForReading)
Do Until objTextFile.AtEndOfStream
strNextLine = objTextFile.Readline
Wscript.Echo strNextLine
Loop
(Ejemplo de Do While)
Const ForReading = 1
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile("c:\test.txt", ForReading)
Do While Not objTextFile.AtEndOfStream
strNextLine = objTextFile.Readline
Wscript.Echo strNextLine
Loop
10
Windows Script Technologies
Sub ErrorHandler
Select Case Hex(Err.Number)
Case "80041001"
Wscript.Echo "The call failed."
Case "80041002"
Wscript.Echo "The object could not be found."
Case "80041010"
Wscript.Echo "The specified class is not valid."
Case "8004103A"
Wscript.Echo "The specified object path was invalid."
Case "80041048"
Wscript.Echo "The specified class is not supported."
Case Else
Wscript.Echo "An unknown error occurred."
End Select
Err.Clear
End Sub
Sub ShowSubFolders(Folder)
For Each Subfolder in Folder.SubFolders
Wscript.Echo Subfolder.Path
ShowSubFolders Subfolder
Next
End Sub
11
Windows Script Technologies
WSH
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & _
"\root\cimv2")
Set colServices = objWMIService.ExecQuery _
("SELECT * FROM Win32_Service WHERE Name = 'NombreServicio'")
For Each objService in colServices
errReturnCode = objService.StopService()
Next
12
Windows Script Technologies
13
Windows Script Technologies
14
Windows Script Technologies
strServer = WScript.Arguments.Item(0)
strPacketSize = WScript.Arguments.Item(1)
strTimeout = WScript.Arguments.Item(2)
Wscript.Echo "Pinging Server: " & strServer
Wscript.Echo "Packet Size: " & strPacketSize
Wscript.Echo "Timeout: " & strTimeout
If colNamedArguments.Exists("PacketSize") Then
strPacketSize = colNamedArguments.Item("PacketSize")
Else
strPacketSize = DEFAULT_PACKET_SIZE
End If
strTimeout = colNamedArguments.Item("Timeout")
Wscript.Echo "Server Name: " & strServer
If colNamedArguments.Exists("PacketSize") Then
Wscript.Echo "Packet Size :" & strPacketSize
Else
Wscript.Echo "Packet Size [default]: " & strPacketSize
End If
15
Windows Script Technologies
16
Windows Script Technologies
Estados de Run:
0 Oculta la ventana y activa otra.
1 Activa y muestra una ventana a su tamaño y posición original.
2 Ventana minimizada.
3 Ventana maximizada.
4 Muestra una ventana copiando eñ último tamaño y posición.
5 Muestra la ventana en su posición y tamaño normal.
6 Minimiza la ventana y hace activa la ventana anterior.
7 Ventana minimizada. La ventana activa se mantiene siéndolo.
8 Muestra la ventana en el estado actual. La ventana activa no varía.
9 Activa y muestra la ventana y deja de estar maximizada o minimizada.
10 Pone la ventana en el mismo estado que el programa que la inició.
17
Windows Script Technologies
_33. %comspec%________________________
(Especificación de Run y Exec)
Do Until objExecObject.StdOut.AtEndOfStream
strLine = objExecObject.StdOut.ReadLine()
strIP = Instr(strLine,"Address")
If strIP <> 0 Then
Wscript.Echo strLine
End If
Loop
URL.
Set objShell = WScript.CreateObject("WScript.Shell")
strDesktopFld = objShell.SpecialFolders("Desktop")
Set objURLShortcut = objShell.CreateShortcut(strDesktopFld & _
"\MSDN.url")
objURLShortcut.TargetPath = "http://msdn.microsoft.com"
objURLShortcut.Save
18
Windows Script Technologies
19
Windows Script Technologies
_38. RegRead_______________________________
_39. RegWrite_________________________
Set objShell = WScript.CreateObject("WScript.Shell")
objShell.RegWrite "HKCU\TestKey\Version", 56, "REG_DWORD"
20
Windows Script Technologies
_40. RegDelete_________________________
Tecla Representación
BACKSPACE {BACKSPACE}, {BS}, or {BKSP}
BREAK {BREAK}
CAPS LOCK {CAPSLOCK}
DEL o DELETE {DELETE} o {DEL}
DOWN ARROW {DOWN}
END {END}
ENTER {ENTER} o ~
ESC {ESC}
HELP {HELP}
HOME {HOME}
INS o INSERT {INSERT} or {INS}
LEFT ARROW {LEFT}
NUM LOCK {NUMLOCK}
PAGE DOWN {PGDN}
PAGE UP {PGUP}
PRINT SCREEN {PRTSC}
RIGHT ARROW {RIGHT}
SCROLL LOCK {SCROLLLOCK}
TAB {TAB}
UP ARROW {UP}
SHIFT +
CONTROL ^
ALT %
F1, F2, … {F1}, {F2}, …
{a 10} 10 veces ‘a’. Sólo puede usarse con un único carácter.
21
Windows Script Technologies
Const iNormalFocus = 1
Set objShell = WScript.CreateObject("WScript.Shell")
objShell.Run "mmc.exe",iNormalFocus
Wscript.Sleep 300
objShell.AppActivate "Console1"
Wscript.Sleep 100
objShell.SendKeys "^m"
Wscript.Sleep 100
objShell.SendKeys "{TAB}"
Wscript.Sleep 100
objShell.SendKeys "{TAB}"
Wscript.Sleep 100
objShell.SendKeys "{ENTER}"
Const TIMEOUT = 5
Set objShell = WScript.CreateObject("WScript.Shell")
Iconos.
Icon Constant Name Constant Value
STOP vbCritical 16
QUESTION MARK vbQuestion 32
EXCLAMATION MARK vbExclamation 48
INFORMATION vbInformation 64
22
Windows Script Technologies
Sets de Botones.
Button Set Constant Name Constant Value
OK vbOKOnly 0
OK and CANCEL vbOKCancel 1
ABORT, RETRY and IGNORE vbAbortRetryIgnore 2
YES, NO and CANCEL vbYesNoCancel 3
YES and NO vbYesNo 4
RETRY and CANCEL vbRetryCancel 5
Const TIMEOUT = 7
Set objShell = WScript.CreateObject("WScript.Shell")
Set objFS = WScript.CreateObject("Scripting.FileSystemObject")
strPath = Wscript.FullName
strFileVersion = objFS.GetFileVersion(strPath)
iRetVal = objShell.Popup(Wscript.FullName & vbCrLf & _
"Version: " & strFileVersion & vbCrLf & _
"Mas detalles?" _
,TIMEOUT,"Mas informacion?",vbYesNo + vbQuestion)
Select Case iRetVal
Case vbYes
Set objFile = objFS.GetFile(strPath)
objShell.Popup WScript.FullName & vbCrLf & vbCrLf & _
"Version: " & strFileVersion & vbCrLf & _
"Tamanyo: " & Round((objFile.Size/1024),2) & " KB" & _
vbCrLf & "Fecha de creacion: " & objFile.DateCreated & vbCrLf & _
"Ultima modificacion: " & objFile.DateLastModified & vbCrLf,TIMEOUT
Wscript.Quit
Case vbNo
Wscript.Quit
Case -1
WScript.StdOut.WriteLine "Popup tiempo de espera agotado."
Wscript.Quit
End Select
23
Windows Script Technologies
MapNetworkDrive
Trabajo con unidades de red EnumNetworkDrives
RemoveNetworkDrive
AddPrinterConnection
AddWindowsPrinterConnection
SetDefaultPrinter
RemovePrinterConnection
ComputerName
Obtener información sobre el usuario logueado UserDomain
UserName
24
Windows Script Technologies
Mapeado.
Set objNetwork = Wscript.CreateObject("WScript.Network")
objNetwork.MapNetworkDrive "G:", "\\atl-fs-01\Sales"
objNetwork.MapNetworkDrive "H:", "\\atl-fs-01\Users$\lewjudy"
Argumentos.
Argumento Tipo Requerido
LocalName String
RemoteName String
UpdateProfile Boolean
UserName String
Password String
Desmapeado.
Set objNetwork = WScript.CreateObject("Wscript.Network")
objNetwork.RemoveNetworkDrive "G:"
’Listar impresoras.
Set colPrinters = objNetwork.EnumPrinterConnections
For i = 0 to colPrinters.Count -1 Step 2
Wscript.Echo colPrinters.Item(i) & vbTab & colPrinters.Item (i + 1)
Next
25
Windows Script Technologies
26
Windows Script Technologies
Requisitos:
27
Windows Script Technologies
strRemoteComputer = "RASServer01"
strWorkerScript = "MapNetworkDrive.vbs"
Set objWshController = WScript.CreateObject("WshController")
Set objRemoteScript = _
objWshController.CreateScript(strWorkerScript, strRemoteComputer)
objRemoteScript.Execute
Valores de Status
0 El script remoto no ha comenzado aún.
1 El script está ejecutándose en estos momentos.
2 El script ya ha finalizado.
strRemoteComputer = "RASServer01"
strWorkerScript = "CreateTextFilMapNetworkDrive.vbs"
Set objWshController = WScript.CreateObject("WshController")
Set objRemoteScript =_
objWshController.CreateScript(strWorkerScript, strRemoteComputer)
Wscript.ConnectObject objRemoteScript, "Remote_"
objRemoteScript.Execute
Do While Not objRemoteScript.Status = 2
Wscript.Sleep(100)
Loop
Sub Remote_Start
Wscript.Echo "Se comienza a ejecutar el script remoto."
End Sub
Sub Remote_Error
Wscript.Echo "Error al ejecutarse el script remoto."
objRemoteScript.Terminate
Wscript.Quit
End Sub
Sub Remote_End
Wscript.Echo "Termina de ejecutarse el script remoto."
End Sub
28
Windows Script Technologies
strRemoteComputer = "RASServer01"
strWorkerScript = "CreateTestFile.vbs"
Sub Remote_Error
Wscript.Echo "Error durante la ejecucion del script."
Set objError = objRemoteScript.Error
Wscript.Echo "Caracter :" & objError.Character
Wscript.Echo "Descripcion :" & objError.Description
Wscript.Echo "Linea :" & objError.Line
Wscript.Echo "Numero :" & objError.Number
Wscript.Echo "Fuente :" & objError.Source
Wscript.Echo "Texto fuente :" & objError.SourceText
objRemoteScript.Terminate
Wscript.Quit
End Sub
Para solucionar el primer problema se puede volcar el output del script a un archivo de
texto.
29