Coletar Inventário de Hardware do Windows com Powershell

Want create site? Find Free WordPress Themes and plugins.

Coletar Inventário de Hardware

Sempre que precisamos coletar inventário de hardware de um computador utilizamos softwares de terceiros baixados da internet. Mas com o Powershell é possível coletar qualquer informação que você precisar de forma fácil e rápida.

Para coletar as informações de hardware de um computador vamos utilizar o WMI (Windows Management Instrumentation), a implementação do WBEM (Web-Based Enterprise Management ) da Microsoft, que é uma iniciativa de mercado para desenvolver uma tecnologia padrão para acessar informações de gerenciamento em um ambiente corporativo.

Powershell

O cmd-let em Powershell para acessar o WMI é o Get-WmiObject. Com ele podemos consultar vários objetos, como por exemplo o processador de um computador:

PS:\> Get-WmiObject win32_processor

Caption : Intel64 Family 6 Model 78 Stepping 3
DeviceID : CPU0
Manufacturer : GenuineIntel
MaxClockSpeed : 2601
Name : Intel(R) Core(TM) i7-6500U CPU @ 2.50GHz
SocketDesignation : U3E1

Da mesma forma que podemos coletar informações do computador para nosso inventário de hardware podemos coletar outras informações como:

win32_physicalmemory – Memória Física
win32_systemenclosure – Chassi (“Gabinete”)
win32_baseboard – Placa Mãe
win32_bios – BIOS
win32_videocontroller – Placa de Vídeo
win32_diskdrive – Disco (HD)
win32_networkadapter – Placa de Rede
win32_battery – Bateria
win32_cdromdrive – Unidade CD/DVD
win32_computersystemproduct – Sistema Operacional
win32_sounddevice – Placa de Som

Entre muitas outras. Para pegar uma listagem completa de todas as informações que podem ser coletadas é possível usar o WMI Explorer, que permite “navegar” pelos objetos.

Para coletar inventário de hardware e salvar as informações em um arquivo html podemos fazer um script como abaixo:

#Nome do Computador
$ComputerName = (Get-Item env:\Computername).Value

#Local para salvar o arquivo
$filepath = (Get-ChildItem env:\userprofile).value

Write-Host “Obtendo informações do computador: $ComputerName”

#### HTML Formatting #######
$ReportTime = Get-Date
$htmlhead=”<html>
<style>
BODY{font-family: Arial; font-size: 8pt;}
H1{font-size: 20px;}
H2{font-size: 18px;}
H3{font-size: 16px;}
TABLE{border: 1px solid black; border-collapse: collapse; font-size: 8pt;}
TH{border: 1px solid black; background: #dddddd; padding: 5px; color: #000000;}
TD{border: 1px solid black; padding: 5px; }
</style>
<body>
<h1 align=””center””>Computer Info: $ComputerName</h1>
<h3 align=””center””>Generated: $ReportTime </h3>”
############################

ConvertTo-Html -Head $htmlhead -Title “Informações de Hardware do: $ComputerName” -Body “<h1> Computer Name : $ComputerName </h1>” > “$filepath\$ComputerName.html”

# Placa Mae
Get-WmiObject -ComputerName $ComputerName Win32_BaseBoard | Select Name,Manufacturer,Product,SerialNumber,Status | ConvertTo-html -Body “<H2> MotherBoard Information</H2>” >> “$filepath\$ComputerName.html”

# Bateria
Get-WmiObject Win32_Battery -ComputerName $ComputerName | Select Caption,Name,DesignVoltage,DeviceID,EstimatedChargeRemaining,EstimatedRunTime | ConvertTo-html -Body “<H2> Battery Information</H2>” >> “$filepath\$ComputerName.html”

# BIOS
Get-WmiObject win32_bios -ComputerName $ComputerName | Select Manufacturer,Name,BIOSVersion,ListOfLanguages,PrimaryBIOS,ReleaseDate,SMBIOSBIOSVersion,SMBIOSMajorVersion,SMBIOSMinorVersion | ConvertTo-html -Body “<H2> BIOS Information </H2>” >> “$filepath\$ComputerName.html”

# CD/DVD Drive
Get-WmiObject Win32_CDROMDrive -ComputerName $ComputerName | select Name,Drive,MediaLoaded,MediaType,MfrAssignedRevisionLevel | ConvertTo-html -Body “<H2> CD ROM Information</H2>” >> “$filepath\$ComputerName.html”

# Sistema
Get-WmiObject Win32_ComputerSystemProduct -ComputerName $ComputerName | Select Vendor,Version,Name,IdentifyingNumber,UUID | ConvertTo-html -Body “<H2> System Information </H2>” >> “$filepath\$ComputerName.html”

# Video
Get-WmiObject win32_videocontroller -ComputerName $ComputerName | Select Name,VideoProcessor,AdapterCompatibility,AdapterRAM,DeviceID | ConvertTo-html -Body “<H2> Video Controller </H2>” >> “$filepath\$ComputerName.html”

# Disco
Get-WmiObject win32_diskDrive -ComputerName $ComputerName | select Model,SerialNumber,InterfaceType,Size,Partitions | ConvertTo-html -Body “<H2> Harddisk Information </H2>” >> “$filepath\$ComputerName.html”

# Rede
Get-WmiObject win32_networkadapter -ComputerName $ComputerName | Select Name,Manufacturer,Description ,AdapterType,Speed,MACAddress,NetConnectionID | ConvertTo-html -Body “<H2> Nerwork Card Information</H2>” >> “$filepath\$ComputerName.html”

# Memoia
Get-WmiObject Win32_PhysicalMemory -ComputerName $ComputerName | select BankLabel,DeviceLocator,Capacity,Manufacturer,PartNumber,SerialNumber,Speed | ConvertTo-html -Body “<H2> Physical Memory Information</H2>” >> “$filepath\$ComputerName.html”

# Processador
Get-WmiObject Win32_Processor -ComputerName $ComputerName | Select Name,Manufacturer,Caption,DeviceID,CurrentClockSpeed,CurrentVoltage,DataWidth,L2CacheSize,L3CacheSize,NumberOfCores,NumberOfLogicalProcessors,Status | ConvertTo-html -Body “<H2> CPU Information</H2>” >> “$filepath\$ComputerName.html”

# System enclosure
Get-WmiObject Win32_SystemEnclosure -ComputerName $ComputerName | Select Tag,AudibleAlarm,ChassisTypes,HeatGeneration,HotSwappable,InstallDate,LockPresent,PoweredOn,PartNumber,SerialNumber | ConvertTo-html -Body “<H2> System Enclosure Information </H2>” >> “$filepath\$ComputerName.html”

## Invoke Expressons
invoke-Expression “$filepath\$ComputerName.html”

Did you find apk for android? You can find new Free Android Games and apps.
Contato Rápido

Escreva sua mensagem que o mais rápido possível retornaremos!

Start typing and press Enter to search