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") p >
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 p>
-- ------------------------------------------- ------- ----------------------------
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
.