Manejo de varios servidores usando powershell (Parte II)
Manejo de varios servidores usando powershell (Parte II)
En mi primer artículo cité lo básico de powershell. Ahora vamos a entrar a una sección más avanzada.
Este artículo incluye lo siguiente:
Ver todas las clases disponibles de WMI
Ver información de los volúmenes del disco en powershell
Usar select en powershell (especificar columnas a mostrar)
Usar where en powershell para filtar las filas a mostrar
Para obtener datos de una máquina remota utilizando powershell
Para obtener datos del sistema operativo de varios servidores a la vez utilizando powershell
Vamos a controlar varias máquinas usando powershell y WMI. No se asusten si no saben nada de WMI.
Voy a introducirles al mundo de WMI usando powershell.
WMI (Windows management Instrumentation) es una tecnología que permite manejar computadoras windows.
Mediante WMI se puede ver información del BIOS, del cluster, del sistema operativo y discos.
Para ver todas las clases disponibles se utiliza la siguiente sintaxis:
Gwmi -namespace "root\cimv2" –list
CIM_ExecuteProgram CIM_FileAction
CIM_RemoveFileAction CIM_CopyFileAction
Win32_ClientApplicationSetting CIM_Product
Win32_ComputerSystemProduct Win32_ImplementedCategory
CIM_SoftwareElementActions CIM_ToDirectorySpecification
CIM_ReplacementSet CIM_Configuration
Ahora veamos información de los volúmenes del disco en powershell con WMI:
Gwmi -class Win32_volume
DirtyBitSet : False
DriveLetter : D:
DriveType : 5
ErrorCleared :
ErrorDescription :
ErrorMethodology :
FileSystem : CDFS
FreeSpace : 0
IndexingEnabled :
InstallDate :
Label : SQLServer2008
LastErrorCode :
MaximumFileNameLength : 110
Name : D:\
NumberOfBlocks :
PNPDeviceID :
SystemName : DANVIRT
Usar select en powershell (especificar columnas a mostrar)
Mucha información verdad ?. Qué pasa si solo quiero ver el nombre (name) y la capacidad del volumen (capacity). Para seleccionar solo algunas columnas en powershell:
Gwmi -class Win32_volume | select name, capacity
name capacity
---- --------
C:\ 8578932736
E:\ 5362847744
D:\ 3509424128
Usar where en powershell para filtar las filas a mostrar:
Ahora si quiero utilizar un where en powershell con el comando like:
Gwmi -class Win32_volume | select name, capacity | where {$_.name -like "c*"}
name capacity
C:\ 8578932736
El comando muestra el nombre y la capacidad del volumen c. Si quisiéramos ver la capacidad del disco d, sería casi igual.
Gwmi -class Win32_volume | select name, capacity | where {$_.name -like "d*"}
Acá estoy usando el comando like. Se puede usar match o equals si sabemos exactamente como se escribe.
Ahora, si queremos ver los datos de una computadora remota, tenemos que usar el parámetro computername:
Para obtener datos del sistema operativo de una máquina remota utilizando powershell:
Gwmi win32_OperatingSystem -computername danvirt
Donde danvirt es el nombre de mi máquina:
SystemDirectory : C:\WINDOWS\system32
Organization : jala
BuildNumber : 3790
RegisteredUser : dan
SerialNumber : 69815-650-9188916-45856
Version : 5.2.3790
Ahora tratemos de obtener resultados de varias máquinas a la vez.
Para obtener datos del sistema operativo de varios servidores a la vez utilizando powershell:
Gwmi win32_OperatingSystem -computername 10.31.22.44,10.31.22.45
Se le puede mandar el nombre de la computadora o el ip separado por comas.
Espero que les sean útiles estos ejemplos. Si desean más, solo escriban al blog.
Muy buenos, geniales articulos. Me gustaría saber (echaré un vistazo por el blog) como acceder a SQL SERVER desde PowerShell (sin tener que ejecutar el powershell de SQLSERVER. PArece una trabalenguas) ya que intento acceder a él como si fuera una particion (drive) y no me lo permite.
ResponderEliminarInicio ejecutar>sqlps abre el PS de SQL server. Pero sospecho que tu quieres algo más que eso.
ResponderEliminarTal vez te convenga generar un archivo ps1.
Puedes usar mi Búsqueda personalizada de artículos de este sitio web. Avísame si te sirve o quieres algo más.
Hola Daniel, gracias por tu tiempo y dedicación a iluminarnos en estos temas.
ResponderEliminarUna pregunta, que hago para consultar un equipo destino con clave o contraseña con el comando:
Gwmi win32_OperatingSystem -computername xyz
.... ¿?
Si, usa el comando get-credential.
ResponderEliminar