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 🙂

Łukasz Skalikow

Obecnie Manager IT. Przez lata byłem Inżynierem systemów. Jestem entuzjastą i specem od vSphere, Windows serwer, GPO. Od zawsze byłem zwolennikiem wiersza poleceń i automatyzacji. Obecnie, ze względu na pracę, rodzinę i wyjazdy służbowe, dużo mniej udzielam się na blogu, ale mam nadzieję, że pośród kilkuset porad opublikowanych na spece.it, wiele osób znajdzie dla siebie coś przydatnego :)

Przeczytaj także...

6 komentarzy

  1. scribe_pl pisze:

    gr8 job!

  2. Mariousz1 pisze:

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

    Get-WmiObject win32_BIOS

  3. Tomek pisze:

    bo pownno być Get-WmiObject -Class Win32_BIOS

  4. sdf pisze:

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

  5. Marian T pisze:

    jestem zieliny jak trawa morska ale co ci powiem to ci powiem ,żadny z tach komend nie działa dostaje wszystko na czerwono ta komenda co kolega na dole daje mariusz1 jest własciwa ale co z resztą .??????

Dodaj komentarz