Recopilar información acerca de los equipos
Este ejemplo solo se aplica a las plataformas Windows.
Los cmdlets del módulo CimCmdlets son los más importantes para tareas de administración generales del sistema. Todas las opciones de configuración críticas del subsistema se exponen a través de WMI. Además, WMI trata los datos como objetos que están en colecciones de uno o más elementos. Dado que PowerShell también funciona con objetos y tiene una canalización que permite tratar uno o varios objetos de la misma manera, el acceso genérico a WMI le permite realizar algunas tareas avanzadas con muy poco esfuerzo.
Enumeración de la configuración de escritorio
Comenzaremos con un comando que recopila información acerca de los escritorios en el equipo local.
Get-CimInstance -ClassName Win32_Desktop
Se devuelve información de todos los equipos de escritorio, independientemente de si están en uso.
Nota
La información devuelta por algunas clases WMI puede ser muy detallada y, a menudo, incluir metadatos acerca de la clase WMI.
Dado que la mayoría de las propiedades de estos metadatos tienen nombres que comienzan por Cim, puede filtrarlas mediante Select-Object
. Especifique el parámetro -ExcludeProperty con "Cim*" como valor. Por ejemplo:
Get-CimInstance -ClassName Win32_Desktop | Select-Object -ExcludeProperty "CIM*"
Para filtrar los metadatos, use un operador de canalización (|) para enviar los resultados del comando Get-CimInstance
a Select-Object -ExcludeProperty "CIM*"
.
Enumerar información del BIOS
La clase Win32_BIOS de WMI devuelve información bastante compacta y completa sobre el BIOS del sistema en el equipo local:
Get-CimInstance -ClassName Win32_BIOS
Enumerar información del procesador
Puede recuperar información general del procesador mediante la clase Win32_Processor de WMI, aunque probablemente desee filtrar la información:
Get-CimInstance -ClassName Win32_Processor | Select-Object -ExcludeProperty "CIM*"
Para obtener una cadena descriptiva genérica de la familia del procesador, puede devolver la propiedad SystemType:
Get-CimInstance -ClassName Win32_ComputerSystem | Select-Object -Property SystemType
SystemType
----------
X86-based PC
Enumeración del modelo y el fabricante del equipo
La información del modelo del equipo también está disponible en Win32_ComputerSystem. La salida estándar mostrada no necesita ningún filtrado para proporcionar datos de OEM:
Get-CimInstance -ClassName Win32_ComputerSystem
Name PrimaryOwnerName Domain TotalPhysicalMemory Model Manufacturer
---- ---------------- ------ ------------------- ----- ------------
MyPC Jane Doe WORKGROUP 804765696 DA243A-ABA 6415cl NA910 Compaq Presario 06
La salida de comandos como este, que devuelven información directamente de determinado hardware, es tan buena como los datos que posee. Los fabricantes del hardware no configuran correctamente algunos datos, por lo que podrían no estar disponibles.
Enumeración de las revisiones instaladas
Puede enumerar todas las revisiones instaladas mediante Win32_QuickFixEngineering:
Get-CimInstance -ClassName Win32_QuickFixEngineering
Esta clase devuelve una lista de revisiones que se ve así:
Source Description HotFixID InstalledBy InstalledOn PSComputerName
------ ----------- -------- ----------- ----------- --------------
Security Update KB4048951 Administrator 12/16/2017 .
Para obtener una salida más concisa, puede excluir algunas propiedades. Aunque puede usar el parámetro Property de Get-CimInstance
para elegir solo HotFixID, al hacerlo se devolverá más información, porque se muestran todos los metadatos de manera predeterminada:
Get-CimInstance -ClassName Win32_QuickFixEngineering -Property HotFixID
InstalledOn :
Caption :
Description :
InstallDate :
Name :
Status :
CSName :
FixComments :
HotFixID : KB4533002
InstalledBy :
ServicePackInEffect :
PSComputerName :
CimClass : root/cimv2:Win32_QuickFixEngineering
CimInstanceProperties : {Caption, Description, InstallDate, Name…}
CimSystemProperties : Microsoft.Management.Infrastructure.CimSystemProperties
...
Se devuelven los datos adicionales, ya que el parámetro Property de Get-CimInstance
restringe las propiedades devueltas de instancias de la clase WMI, no el objeto que se devuelve a PowerShell. Para reducir la salida, use Select-Object
:
Get-CimInstance -ClassName Win32_QuickFixEngineering -Property HotFixId |
Select-Object -Property HotFixId
HotFixId
--------
KB4048951
Enumeración de la información de versión del sistema operativo
Las propiedades de la clase Win32_OperatingSystem incluyen información acerca de la versión y del Service Pack. Solo puede seleccionar explícitamente estas propiedades para obtener un resumen de la información de versión de Win32_OperatingSystem:
Get-CimInstance -ClassName Win32_OperatingSystem |
Select-Object -Property BuildNumber,BuildType,OSType,ServicePackMajorVersion,ServicePackMinorVersion
También puede usar caracteres comodín con el parámetro Property. Dado que todas las propiedades que comienzan por Build o ServicePack son importantes para usar aquí, podemos reducirlo al formato siguiente:
Get-CimInstance -ClassName Win32_OperatingSystem |
Select-Object -Property Build*,OSType,ServicePack*
BuildNumber : 18362
BuildType : Multiprocessor Free
OSType : 18
ServicePackMajorVersion : 0
ServicePackMinorVersion : 0
Enumeración del propietario y los usuarios locales
Puede encontrar información general sobre los usuarios locales con una selección de las propiedades de clase Win32_OperatingSystem. Puede seleccionar explícitamente las propiedades para que tengan el aspecto siguiente:
Get-CimInstance -ClassName Win32_OperatingSystem |
Select-Object -Property NumberOfLicensedUsers, NumberOfUsers, RegisteredUser
Una versión más concisa con caracteres comodín es:
Get-CimInstance -ClassName Win32_OperatingSystem | Select-Object -Property *user*
Obtención del espacio en disco disponible
Para ver el espacio en disco y el espacio libre de las unidades locales, puede usar la clase Win32_LogicalDisk. Solo necesita ver las instancias con un valor de DriveType de 3 (valor que WMI usa para los discos duros fijos).
Get-CimInstance -ClassName Win32_LogicalDisk -Filter "DriveType=3"
DeviceID DriveType ProviderName VolumeName Size FreeSpace PSComputerName
-------- --------- ------------ ---------- ---- --------- --------------
C: 3 Local Disk 203912880128 65541357568 .
Q: 3 New Volume 122934034432 44298250240 .
Get-CimInstance -ClassName Win32_LogicalDisk -Filter "DriveType=3" |
Measure-Object -Property FreeSpace,Size -Sum |
Select-Object -Property Property,Sum
Property Sum
-------- ---
FreeSpace 109839607808
Size 326846914560
Obtención de información de la sesión de inicio
Puede obtener información general sobre las sesiones de inicio asociadas a los usuarios a través de la clase Win32_LogonSession de WMI:
Get-CimInstance -ClassName Win32_LogonSession
Obtención del usuario que inició sesión en un equipo
Para ver el usuario que inició sesión en un equipo concreto, use Win32_ComputerSystem. Este comando devuelve solo el usuario que inició sesión en el escritorio del sistema:
Get-CimInstance -ClassName Win32_ComputerSystem -Property UserName
Obtención de la hora local de un equipo
Puede recuperar la hora local actual en un equipo específico mediante la clase WMI Win32_LocalTime.
Get-CimInstance -ClassName Win32_LocalTime
Day : 23
DayOfWeek : 1
Hour : 8
Milliseconds :
Minute : 52
Month : 12
Quarter : 4
Second : 55
WeekInMonth : 4
Year : 2019
PSComputerName :
Visualización del estado del servicio
Para ver el estado de todos los servicios de un equipo concreto, puede usar el cmdlet Get-Service
localmente. Para los sistemas remotos, puede usar la clase Win32_Service de WMI. Si también usa Select-Object
para filtrar los resultados con Status, Name y DisplayName, el formato de salida es prácticamente idéntico al de Get-Service
:
Get-CimInstance -ClassName Win32_Service |
Select-Object -Property Status,Name,DisplayName
Para permitir que se muestren completamente los nombres de servicios que son largos, use los parámetros AutoSize y Wrap de Format-Table
. Estos parámetros optimizan el ancho de columna y permiten que los nombres largos se encapsulen en lugar de truncarse:
Get-CimInstance -ClassName Win32_Service |
Format-Table -Property Status, Name, DisplayName -AutoSize -Wrap