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:
Manufacturer : INSYDE
Name : InsydeH2O Version 2.40
SerialNumber : 1L066671J
Version : TOSINV – 1
..i jeszcze jeden 🙂
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:
$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
}
gr8 job!
Jestem totalny Newbie w PS.
Pierwsze polecenie mi nie zadziałało ale po skasowaniu „Class” już wszystko działa
Get-WmiObject win32_BIOS
bo pownno być Get-WmiObject -Class Win32_BIOS
Cześć, napisał byś artykuł jak zarządzać sprzętem przez Powershell. Obecnie już nie możemy zdalnie uruchamiać tej przystawki.
Mógłbyś sprecyzować?
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ą .??????