Powershell: numer seryjny komputera i wersja BIOS na płycie głównej


 

Informacje o numerze seryjnym i BIOS’ie, o które pytamy w temacie, mozna znaleźć na wiele sposóbów. Według mnie najlepszym źródłem jest WMI, a narządziem do ich pobierania oczywiście Powershell. Dzięki Powershell możemy pobierać dane z WMI również na komputerach zdalnych, których listę trzymamy w pliku tekstowym.

Zacznijmy od początku. Za odczytywanie danych z bazy WMI w Powershellu odpowiada cmdlet Get-WmiObject. Użyjemy go to odczytania klasy WMI win32_BIOS:

Get-WmiObject Class win32_BIOS

Oto przykładowy wynik:

SMBIOSBIOSVersion : 2.40
Manufacturer : INSYDE
Name : InsydeH2O Version 2.40
SerialNumber : 1L066671J
Version : TOSINV – 1

..i jeszcze jeden :)

SMBIOSBIOSVersion : 68SCF Ver. F.28
Manufacturer : Hewlett-Packard
Name : Default System BIOS
SerialNumber : 0ZC121032W
Version : HPQOEM – f

Pobieramy dane o płycie głównej ze zdalnego komputera

CMdlet Get-WmiObject pozwala łączyć się ze zdalnym komputerem, a odpowiada za to parametr -ComputerName:

Get-WmiObject Class win32_BIOS -computername nazwa_lub_IP_komputera

Jak zawsze zachęcam do zapoznania się z opcjami formatowania w powershellu. Możemy na przykład informacje zrzucić do pliku CSV co nie tylko pozwoli obrabiać dane (np w Excelu) ale pokaże znacznie więcej szczegółów (np data BIOSU):

Get-WmiObject win32_BIOS -computername nazwa_komputera | export-csv c:\export.csv

Dane o płycie głównej z wielu komputerów z listy

Nazwy komputerów zapisujemy w pliku tekstowym. U mnie: C:\serwery.txt. Pętla pobierająca dane z tej listy bedzie wyglądać tak:

Clear
$ErrorActionPreference = ‘silentlycontinue’
Remove-Variable [a..z]* -Scope Global
Remove-Variable [1..9]* -Scope Global
$ScriptPath = $MyInvocation.MyCommand.Path
$Dir = Split-Path $ScriptPath
Push-Location $Dir

$lista = Get-Content “C:\serwery.txt”

foreach ($Serwer in $lista) {
Write-Host Sprawdzam $serwer
Get-WmiObject win32_BIOS -computername $serwer
}

Więcej o Powershell znajdziecie w naszym specowym kursie :)


Podobne Tematy:

  • scribe_pl

    gr8 job!

  • Mariousz1

    Jestem totalny Newbie w PS.
    Pierwsze polecenie mi nie zadziałało ale po skasowaniu „Class” już wszystko działa

    Get-WmiObject win32_BIOS

  • Tomek

    bo pownno być Get-WmiObject -Class Win32_BIOS

  • sdf

    Cześć, napisał byś artykuł jak zarządzać sprzętem przez Powershell. Obecnie już nie możemy zdalnie uruchamiać tej przystawki.