Compartir a través de


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-Servicelocalmente. 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