La Red de Conocimientos Pedagógicos - Currículum vitae - Tutorial detallado de EBV

Tutorial detallado de EBV

VBS obtiene la IP local

strComputer = "."

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2 ")

Establezca IPConfigSet = objWMIService.ExecQuery("Seleccione la dirección IP de Win32_NetworkAdapterConfiguration donde IPEnabled=TRUE")

Para cada IPConfig en IPConfigSet

Si no es nulo ( IPConfig.IPAddress) Luego

Para cada strAddress en IPConfig.IPAddress

WScript.Echo strAddress

Siguiente

Finalizar si

Siguiente

2 Obtenga el nombre de la computadora local

strComputer = "."

Establezca objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

Establezca colComputers = objWMIService.ExecQuery("Select * from Win32_ComputerSystem")

Para cada objComputer en colComputers

Wscript. Echo objComputer.Name

Siguiente

------------------------------- --- ----------------------------------------------- ---

4 Verifique el paquete de actualización

strComputer = "."

Establezca objWMIService = GetObject("winmgmts:\\" & strComputer & "\ root\cimv2")

Establezca colOperatingSystems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")

Para cada objOperatingSystem en colOperatingSystems

Wscript.Echo objOperatingSystem. ServicePackMajorVersion & "." & objOperatingSystem.ServicePackMinorVersion

Siguiente

-------------------- -------- ------------------------------------------ --------

5 Comprobar corrección urgente

strComputer = "."

Establecer objWMIService = GetObject("winmgmts:\\"

& strComputer & "\root\cimv2")

Establezca colQuickFixes = objWMIService.ExecQuery ("Select * from Win32_QuickFixEngineering")

Para cada objQuickFix en colQuickFixes

Wscript.Echo "Descripción: " & objQuickFix.Descripción

Wscript.Echo "Hot Fix ID: " & objQuickFix.HotFixID

Siguiente

---- -------------------------------------------------- --------------------------

6 Verifique el número de administradores locales

Establezca objNetwork = CreateObject ("Wscript.Network")

strComputer = objNetwork.ComputerName

Set objGroup = GetObject("WinNT://" & strComputer & "/Administrators,group")

Para cada objUser en objGroup.Members

Wscript.Echo objUser.Name

Siguiente

---------- ------------------------------------------------- - ------------------

Sistema de 7 discos

strComputer = "."

Establecer objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

Establecer colDisks = objWMIService.ExecQuery("Seleccione * de Win32_LogicalDisk donde DriveType = 3")

Para cada objDisk en colDisks

Wscript.Echo "Unidad de disco: "& objDisk.DeviceID & " -- " & objDisk.FileSystem

Siguiente

- -------------------------------------------------- --------------------------

8 Compruebe si el inicio de sesión automático está activado

Const HKEY_LOCAL_MACHINE = &H80000002

strComputer = "."

Establecer objReg=GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")

strKeyPath = "Software\Microso

ft\Windows NT\CurrentVersion\WinLogon"

strValueName = "AutoAdminLogon"

objReg.GetDWORDValue HKEY_LOCAL_MACHINE, strKeyPath, strValueName,dwValue

Si dwValue = 1 Entonces

Wscript.Echo "El inicio de sesión automático está habilitado."

Else

Wscript.Echo "El inicio de sesión automático está deshabilitado". Si

------------------------------------------ ------ -------------------------------------

9 Desactivar el inicio de sesión automático

Const HKEY_LOCAL_MACHINE = &H80000002

strComputer = "."

Set objReg=GetObject("winmgmts:\\" & strComputer & " \root\default:StdRegProv ")

strKeyPath = "Software\Microsoft\Windows NT\CurrentVersion\WinLogon"

strValueName = "AutoAdminLogon"

dwValue = 0

oReg.SetDWORDValue HKEY_LOCAL_MACHINE, strKeyPath, strValueName, dwValue

------------------------- --------- ----------------------------------------- ---------

10 Compruebe si el invitado está deshabilitado

Set objNetwork = CreateObject("Wscript.Network")

strComputer = objNetwork .ComputerName

Establecer objUser = GetObject("WinNT://" & strComputer & "/Guest")

Si objUser.AccountDisabled Entonces

Wscript.Echo "La cuenta de Invitado está deshabilitada."

Else

Wscript.Echo "La cuenta de Invitado está habilitada

End If

----------- --------------------------------------- ----------- ------------------

11 Cerrar invitado

Establecer objNetwork = CreateObject ("Wscript.Network")

strComputer = objNetwork.ComputerName

Establecer objUser = GetO

bject("WinNT://" & strComputer & "/Guest")

Si objUser.AccountDisabled Entonces

Wscript.Echo "La cuenta de invitado ya está deshabilitada". >

Else

objUser.AccountDisabled = True

objUser.SetInfo

Wscript.Echo "La cuenta de invitado ha sido deshabilitada

".

Finalizar si

-------------------------------------- ------- ------------------------------------------

12 Recuperar objeto *** local

strComputer = "."

Establecer objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\ cimv2")

Establezca colShares = objWMIService.ExecQuery("Select * from Win32_Share")

Para cada objShare en colShares

Wscript.Echo "Nombre: " & objShare.Name

Wscript.Echo "Ruta: " & objShare.Path

Wscript.Echo "Tipo: " & objShare.Type

Siguiente

-- ------------------------------------------- ------- ----------------------------

13 Script para recuperar archivos .txt en vale la pena aprender una carpeta

Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")

Set colFiles = objWMIService.ExecQuery("SELECT * FROM CIM_DataFile WHERE Path = '\\Documentos y configuraciones\\Administrador\\Desktop\\' AND Drive = 'E:' AND Extension = 'txt'")

Wscript.Echo "Número de archivos .txt encontrados: " & colFiles.Count

p>

para cada aa en colFiles

NL=NL & vbcrlf & aa.name

siguiente

Wscript.Echo NL

------------------------------------- ----------- --------------------------

14 ¿Cómo le muestro al usuario una ventana para seleccionar archivos?

Pregunta:

Hola, chico del scripting

! ¿Hay alguna manera de que pueda usar una secuencia de comandos para mostrar un cuadro de diálogo al usuario para que seleccione un archivo para usar?

-- BF

Respuesta:

Hola, BF. Si está utilizando Windows 2000, no conocemos ninguna forma de hacerlo, al menos no una integrada en el sistema operativo.

Pero si estás utilizando Windows XP, la situación es diferente. En Windows XP,

Puede utilizar el objeto "UserAccounts.CommonDialog" para mostrar al usuario un cuadro de diálogo estándar para abrir archivos. Puede utilizar un script similar al siguiente código:

Set objDialog = CreateObject("UserAccounts.CommonDialog")

objDialog.Filter = "All Files|*.*" objDialog. InitialDir = " C:\" intResult = objDialog.ShowOpen

Si intResult = 0 Then Wscript.Quit Else Wscript.Echo objDialog.FileName End If

Este es un script pequeño, por lo que Hagámoslo paso a paso. Bueno, déjame explicarte. Primero creamos una referencia de objeto al objeto UserAccounts.CommonDialog

(llamado "objDialog"). A continuación, configuramos la propiedad "Filtro" del cuadro de diálogo. Queremos mostrar todos los archivos,

Entonces configuramos el filtro de esta manera:

objDialog.Filter = "All Files|*.*"

Si only ¿Qué debo hacer si quiero mostrar un archivo de texto? En este caso usaremos el siguiente filtro:

objDialog.Filter = "Text Files|*.txt"

Es posible que puedas ver cómo funciona esto: proporcionamos una descripción para el tipo de archivo (Archivos de texto), luego inserte un delimitador de barra vertical (|) y finalmente use un carácter comodín estándar para indicar todos los archivos .txt (*.txt). ¿Quiere mostrar archivos .txt de forma predeterminada y luego darle al usuario la opción de ver todos los archivos?

Entonces puedes usar el siguiente código:

objDialog.Filter = "Text Files|*.txt|All Files|*.*"

Dale Pruébalo, verás lo que queremos decir.

Luego, especificamos la carpeta predeterminada. De forma predeterminada, queremos que el cuadro de diálogo muestre los archivos ubicados en la carpeta raíz de la unidad C.

Así que configuramos la propiedad "InitialDir" de esta manera:

objDialog.InitialDir = " C: \"

¿Quieres mostrar archivos en la carpeta C:\Windows? Luego puedes usar el siguiente código:

objDialog.InitialDir = "C:\Windows"

No te preocupes: este es un cuadro de diálogo Abrir archivo real, por lo que puedes hacer clic en Haga clic y puede detenerse en cualquier momento.

Sólo porque comiences en C:\Windows no significa que solo puedas abrir archivos en esa carpeta.

Finalmente, mostramos el diálogo usando esta línea de código:

intResult = objDialog.ShowOpen

Ahora, simplemente nos sentamos y esperamos a que el usuario seleccione un archivo y haga clic en Aceptar (o espere a que el usuario haga clic en Cancelar). Si el usuario hace clic en Cancelar,

la variable intResult se establecerá en 0.

En nuestro script verificamos el valor de intResult y si es 0,

Solo necesitaremos usar Wscript.Quit para finalizar este script.

Pero ¿qué pasa si el usuario realmente selecciona el archivo y hace clic en Aceptar? En este caso, intResult se establecerá en -1 y la propiedad 'FileDialog' se establecerá en la ruta del archivo seleccionado.

Nuestro script solo repite el nombre de la ruta, lo que significa que obtendremos un resultado similar a:

C:\WINDOWS\Prairie Wind.bmp

No hace falta decir que no se limita a hacer eco. sólo rutas de archivos. De hecho, puede usar WMI, FileSystemObject o alguna otra tecnología para vincular el archivo y luego realizar operaciones en él, como eliminar, copiar, comprimir o recuperar propiedades del archivo; prácticamente lo que puede hacer con el archivo se puede ejecutar. en ello.

Pero pase lo que pase, es necesario utilizar un script.

Por cierto, con este método, solo puedes seleccionar un archivo a la vez, no varios archivos mientras mantienes presionada la tecla "Ctrl". Hay una manera de seleccionar varios archivos,

al menos en una computadora XP, pero tendremos que guardarla para una columna futura.

------------------------------------------- --------------------------------------

15 ¿Cómo puedo determinar si un proceso está ¿Bajo qué cuenta se está ejecutando?

Pregunta:

¡Hola, chico del scripting! Tengo un script que devuelve información sobre todos los procesos que se ejecutan en la computadora.

Es solo que no sé cómo obtener el nombre de la cuenta de usuario bajo la cual se ejecutan estos procesos. ¿Me puedes ayudar?

-- DL

Respuesta:

Hola, DL. Sí, podemos ayudarte. Determinar en qué cuenta se está ejecutando un proceso es bastante simple, pero no es particularmente obvio cómo hacerlo. Si es como la mayoría de las personas, probablemente esté escaneando las propiedades de la clase Win32_Process en busca de una propiedad denominada Cuenta o Nombre de usuario o similar. Lo más probable es que no lo encuentres.

Esto sucede porque Win32_Process no tiene propiedades que le indiquen en qué cuenta se está ejecutando el proceso.

Es necesario utilizar el método "GetOwner" para capturar esta información.

El siguiente script le indica en qué cuenta se está ejecutando Microsoft Word (Winword.exe):

strComputer = "."Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2 " )

Establezca colProcessList = objWMIService.ExecQuery _ ("Seleccione * de Win32_Process donde Nombre = 'Winword.exe'")

Para cada objProcess en colProcessList objProcess.GetOwner strUserName, strUserDomain Wscript .Echo "Process " & objProcess.Name & " es propiedad de " _ & strUserDomain & "\" & strUserName & "."Next

Lo que más nos interesa es la siguiente línea de código:

p>

objProcess.GetOwner strNameOfUser, strUserDomain

Lo que hacemos aquí es llamar al método "GetOwner". GetOwner devuelve dos "parámetros de salida",

Uno devuelve el nombre del usuario responsable del proceso y el otro devuelve el dominio al que pertenece el usuario. Para capturar estos dos parámetros de salida, debemos proporcionar dos variables al método GetOwner.

En este script de ejemplo, utilizamos dos variables llamadas strUserName y strUserDomain. Los nombres son opcionales; puedes llamar a las variables A y B o X e Y o cualquier otra cosa que desees.

Sin embargo, el orden de las variables no se puede establecer arbitrariamente: el primer valor devuelto es siempre el nombre de usuario y el segundo valor es siempre el dominio. Esto significa que si desea que X represente el nombre de usuario e Y represente el dominio, entonces debe asegurarse de que su código se parezca a esta línea de código:

objProcess.GetOwner X, Y

Después de llamar a GetOwner, podemos repetir directamente el nombre del proceso y el propietario. Tenga en cuenta que podemos ser un poco sofisticados: use el formato dominio\usuario. De esta manera podemos repetir un nombre como "fabrikam\kenmyer".

A continuación se proporciona otro script que enumera todos los procesos en la computadora y el propietario de cada proceso:

strComputer = "."Set objWMIService = GetObject(" winmgmts:\\" & strComputer & "\root\cimv2")

Establezca colProcessList = objWMIService.ExecQuery _ ("Select * from Win32_Process")

Para cada objProcess en colProcessList objProcess .GetOwner strUserName, strUserDomain Wscript .Echo "Process " & objProcess.Name & " es propiedad de " _ & strUserDomain & "\" & strUserName & "."Siguiente

Algunas personas pueden encontrarlo extraño, el 3 de marzo de 2005 resulta ser el día libre oficial para los empleados de Microsoft.

Entonces, ¿por qué hay una columna "¡Hola, chico del scripting!" Esto sólo puede deberse a la increíble dedicación y dedicación mostradas por los expertos en secuencias de comandos de Microsoft.

O podría ser que algún gurú del scripting (aún no puedo nombrarlo) no se dio cuenta de que era feriado y se presentó como de costumbre (¡y a las 7 am!).

------------------------------------------- ----- -------------------------------------

16 ¿Puedes convertir la salida del script para copiar al portapapeles?

Pregunta:

¡Hola, chico del scripting! ¿Hay alguna manera de copiar la salida del script al portapapeles?

-- ZW, Marsella, Francia

Respuesta:

Hola, ZW. Si no te importan algunas soluciones locas, entonces funcionará Copiar script. enviar al portapapeles es bastante fácil.

Primero, necesita construir una cadena que contenga la salida deseada. Luego, crea una instancia de Internet Explorer y abre una página en blanco en ella. A continuación, utilice la funcionalidad integrada del modelo de objetos de Internet Explorer para copiar la cadena al portapapeles; en particular, puede utilizar el método clipboardData.SetData para realizar este truco. Un script de ejemplo para copiar algunos datos al portapapeles es el siguiente:

strCopy = "Este texto se ha copiado al portapapeles."

Set objIE = CreateObject("InternetExplorer.Application " )

objIE.Navigate("about:blank")

objIE.document.parentwindow.clipboardData.SetData "texto", strCopy

objIE.Quit

Ejecute el script, luego abra el Bloc de notas y haga clic en Pegar. Debería ver la cadena copiada.

Por cierto, todo esto sucede "detrás de escena" e Internet Explorer en realidad no aparece en la pantalla.

Esto se debe a que, de forma predeterminada, cualquier instancia de IE creada mediante un script está oculta en tiempo de ejecución a menos que la muestre usando:

objIE = True

.