Recolher informações sobre os computadores

Este exemplo aplica-se apenas às plataformas do Windows.

Os cmdlets do módulo CimCmdlets são os cmdlets mais importantes para tarefas gerais de gestão do sistema. Todas as definições críticas do subsistema são expostas através da WMI. Além disso, a WMI trata os dados como objetos que estão em coleções de um ou mais itens. Uma vez que o PowerShell também funciona com objetos e tem um pipeline que lhe permite tratar objetos individuais ou múltiplos da mesma forma, o acesso genérico à WMI permite-lhe realizar algumas tarefas avançadas com muito pouco trabalho.

Listar definições do ambiente de trabalho

Vamos começar com um comando que recolhe informações sobre os ambientes de trabalho no computador local.

Get-CimInstance -ClassName Win32_Desktop

Esta ação devolve informações para todos os ambientes de trabalho, quer estejam a ser utilizados ou não.

Nota

As informações devolvidas por algumas classes WMI podem ser muito detalhadas e, muitas vezes, incluem metadados sobre a classe WMI.

Uma vez que a maioria destas propriedades de metadados tem nomes que começam com Cim, pode filtrar as propriedades com Select-Object. Especifique o parâmetro -ExcludeProperty com "Cim*" como o valor. Por exemplo:

Get-CimInstance -ClassName Win32_Desktop | Select-Object -ExcludeProperty "CIM*"

Para filtrar os metadados, utilize um operador de pipeline (|) para enviar os resultados do Get-CimInstance comando para Select-Object -ExcludeProperty "CIM*".

Listar Informações do BIOS

A classe WMI Win32_BIOS devolve informações relativamente compactas e completas sobre o BIOS do sistema no computador local:

Get-CimInstance -ClassName Win32_BIOS

Listar Informações do Processador

Pode obter informações gerais do processador com a classe Win32_Processor da WMI, embora provavelmente queira filtrar as informações:

Get-CimInstance -ClassName Win32_Processor | Select-Object -ExcludeProperty "CIM*"

Para uma cadeia de descrição genérica da família do processador, pode simplesmente devolver a propriedade SystemType :

Get-CimInstance -ClassName Win32_ComputerSystem | Select-Object -Property SystemType

SystemType
----------
X86-based PC

Listar o fabricante e o modelo do computador

As informações do modelo de computador também estão disponíveis no Win32_ComputerSystem. A saída apresentada padrão não precisará de qualquer filtragem para fornecer dados OEM:

Get-CimInstance -ClassName Win32_ComputerSystem
Name PrimaryOwnerName Domain    TotalPhysicalMemory Model                   Manufacturer
---- ---------------- ------    ------------------- -----                   ------------
MyPC Jane Doe         WORKGROUP 804765696           DA243A-ABA 6415cl NA910 Compaq Presario 06

O resultado de comandos como este, que devolvem informações diretamente de algum hardware, é tão bom quanto os dados que tem. Algumas informações não são configuradas corretamente pelos fabricantes de hardware, pelo que podem não estar disponíveis.

Listar correções instaladas

Pode listar todas as correções instaladas com Win32_QuickFixEngineering:

Get-CimInstance -ClassName Win32_QuickFixEngineering

Esta classe devolve uma lista de correções com o seguinte aspeto:

Source Description     HotFixID  InstalledBy   InstalledOn PSComputerName
------ -----------     --------  -----------   ----------- --------------
       Security Update KB4048951 Administrator 12/16/2017  .

Para obter uma saída mais sucinta, poderá querer excluir algumas propriedades. Embora possa utilizar o Get-CimInstanceparâmetro 'Propriedade ' para escolher apenas o HotFixID, fazê-lo irá realmente devolver mais informações, uma vez que todos os metadados são apresentados por predefinição:

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

Os dados adicionais são devolvidos, uma vez que o parâmetro Propriedade no Get-CimInstance restringe as propriedades devolvidas das instâncias da classe WMI e não o objeto devolvido ao PowerShell. Para reduzir a saída, utilize Select-Object:

Get-CimInstance -ClassName Win32_QuickFixEngineering -Property HotFixId |
    Select-Object -Property HotFixId
HotFixId
--------
KB4048951

Listar informações da versão do sistema operativo

As propriedades da classe Win32_OperatingSystem incluem informações sobre a versão e o service pack. Só pode selecionar explicitamente estas propriedades para obter um resumo das informações da versão do Win32_OperatingSystem:

Get-CimInstance -ClassName Win32_OperatingSystem |
  Select-Object -Property BuildNumber,BuildType,OSType,ServicePackMajorVersion,ServicePackMinorVersion

Também pode utilizar carateres universais com o parâmetro Propriedade . Uma vez que todas as propriedades que começam com Build ou ServicePack são importantes para utilizar aqui, podemos encurtar esta opção para o seguinte formulário:

Get-CimInstance -ClassName Win32_OperatingSystem |
    Select-Object -Property Build*,OSType,ServicePack*
BuildNumber             : 18362
BuildType               : Multiprocessor Free
OSType                  : 18
ServicePackMajorVersion : 0
ServicePackMinorVersion : 0

Listar utilizadores e proprietários locais

Pode encontrar informações gerais sobre utilizadores locais com uma seleção de Win32_OperatingSystem propriedades da classe. Pode selecionar explicitamente as propriedades a apresentar da seguinte forma:

Get-CimInstance -ClassName Win32_OperatingSystem |
    Select-Object -Property NumberOfLicensedUsers, NumberOfUsers, RegisteredUser

Uma versão mais sucinta com carateres universais é:

Get-CimInstance -ClassName Win32_OperatingSystem | Select-Object -Property *user*

Obter espaço em disco disponível

Para ver o espaço em disco e o espaço livre para unidades locais, pode utilizar a classe Win32_LogicalDisk . Só precisa de ver instâncias com um DriveType de 3, o valor que a WMI utiliza para discos rígidos fixos.

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

Obter informações de sessão de início de sessão

Pode obter informações gerais sobre sessões de início de sessão associadas aos utilizadores através da classe WMI Win32_LogonSession :

Get-CimInstance -ClassName Win32_LogonSession

Iniciar sessão do utilizador num computador

Pode apresentar o utilizador com sessão iniciada num sistema informático específico com Win32_ComputerSystem. Este comando devolve apenas o utilizador com sessão iniciada no ambiente de trabalho do sistema:

Get-CimInstance -ClassName Win32_ComputerSystem -Property UserName

Obter a hora local a partir de um computador

Pode obter a hora local atual num computador específico com a classe 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 :

A apresentar o estado do serviço

Para ver o estado de todos os serviços num computador específico, pode utilizar localmente o Get-Service cmdlet . Para sistemas remotos, pode utilizar a classe WMI Win32_Service . Se também utilizar Select-Object para filtrar os resultados para Status, Name e DisplayName, o formato de saída é quase idêntico ao de Get-Service:

Get-CimInstance -ClassName Win32_Service |
    Select-Object -Property Status,Name,DisplayName

Para permitir a apresentação completa de nomes para serviços com nomes longos, utilize os parâmetros AutoSize e Wrap de Format-Table. Estes parâmetros otimizam a largura das colunas e permitem que os nomes longos sejam moldados em vez de serem truncados:

Get-CimInstance -ClassName Win32_Service |
    Format-Table -Property Status, Name, DisplayName -AutoSize -Wrap