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-CimInstance
parâ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