Get-ComputerInfo u odnosu na SystemInfo: Prave razlike, upotreba i trikovi

Posljednje ažuriranje: 14/08/2025
Autor: Isaac
  • Get-ComputerInfo vraća konzistentne objekte; systeminfo zahtijeva CSV + ConvertFrom-Csv.
  • systeminfo je brz i udaljen sa /S /U /P; Get-ComputerInfo treba Invoke-Command.
  • Lokalizacija utiče na sistemske informacije; normalizuje zaglavlja za robusne skripte.

Poređenje Get-ComputerInfo i systeminfo na Windowsu

Poređenje Get-ComputerInfo i systeminfo.exe je upit koji se ponavlja. među administratorima koji traže najefikasniji i „čistiji“ način popisa opreme WindowsIako oba vraćaju sistemske informacije, Ne ponašaju se isto, ne izvršavaju iste funkcije i ne nude istu vrstu rezultata., što ima direktne implikacije na automatizaciju, izvještavanje i udaljeno izvršavanje.

U ovom članku ćete pronaći sveobuhvatan vodič koji integriše stvarne prakse, nijanse performansi, trikovi sa cjevovodom od PowerShell i manje očigledne detalje poput lociranje zaglavlja u systeminfo-u ili zašto Svojstvo -Get-ComputerInfo vraća objekte Čak i kada zahtijevate samo jedno polje. Sve je objašnjeno na španskom, s jasnim primjerima i rješenjima za uobičajene greške prilikom pokretanja na udaljenim računarima.

Šta je systeminfo.exe

systeminfo

systeminfo.exe je klasični uslužni program komandne linije. naredbe profilirati Windows računarDostupno je od starijih verzija (Windows XP Professional) do Windows 11, i nalazi se u %windir%\system32\systeminfo.exe (i na 64-bitnim sistemima također) %windir%\SysWOW64\systeminfo.exe). Prikazuje postavke operativnog sistema, sigurnosne informacije, ID proizvoda i svojstva hardver como RAM, prostor na disku ili mrežne kartice.

Ogromna prednost je njegova sveprisutnostPrisutan je u gotovo svakom Windows operativnom sistemu. Ali ima jedno veliko ograničenje: izlaz se nalaziTo znači da nazivi svojstava poput „Dostupna fizička memorija“ na engleskom jeziku mogu izgledati drugačije u drugim jezicima, što komplicira automatizaciju koja se oslanja na te zaglavlja.

Uprkos tome što je "stari" alat, iznenađujuće je fleksibilanPodržava izlazne formate s prekidačem /FO (Tabela, Lista, CSV) i može konsultovati udaljene računare koristeći /S za tim, /U za korisnika i /P za lozinku. Ovo ga čini korisnim za brze inventare kada ne želite postavljati udaljene PowerShell sesije.

Šta je Get-ComputerInfo

get-computerinfo

Get-ComputerInfo je ugrađena cmdlet komanda od verzije Windows PowerShell 5.1. (dostupno na Windows 10 i Windows Server 2016) koje objedinjuje svojstva sistema i OS-a u jedan objekat. Is dostupno samo na Windowsu i vraća instance tipa Microsoft.PowerShell.Management.ComputerInfo sa stotinama nekretnina na listi.

Njegova velika prednost je što je izlaz objektno orijentisan od prve minute.: Ne morate analizirati tekstMožete ga usmjeriti u cjevovod, formatu, filtrirajte i izvozite prirodno pomoću cmdleta poput Odaberite objekt, Format-Lista, Sort-Objekat o Izvoz-CSV. Više detalja u ovom vodiču.

  Postoji 5 načina da popravite ovu grešku: Semafor je istekao

Parametar -Property prihvata niz stringova (String[]) i podržava džoker znakove. Ovo vam omogućava da odaberete određene skupove svojstava (na primjer, sva svojstva povezana sa BIOS con *BIOS*) ili kratku listu poput Naziv operativnog sistema, Vremenska zona, Vrsta operativnog proizvoda. Važno: Alias za Get-ComputerInfo je gin, u slučaju da naiđete na skraćene skripte.

Ključne razlike i kada ih koristiti

Izlaz i tip podataka: systeminfo.exe proizvodi tekst (iako može biti i CSV), što zahtijeva konverziju u objekte za ugodan rad u PowerShellu; Get-ComputerInfo vraća bogati predmeti spreman za cjevovod. Ovaj resurs pomaže da se bolje razumije proces.

PerformanseIzvori se slažu da Get-ComputerInfo je relativno sporZatražite manje nekretnina sa -Imovina ne predstavlja značajno poboljšanje, jer ionako prikuplja većinu informacija. Systeminfo.exe je obično prilično brzo, posebno sa CSV-om.

Daljinski: systeminfo.exe nudi /S, /U, /P za udaljene upite; Get-ComputerInfo nema -ComputerName ili -CimSession, tako da morate koristiti Invoke-Command ili udaljene PowerShell sesije (WinRM). Za više informacija posjetite ovaj vodič.

systeminfo.exe u procesu: od teksta do objekata

Najpraktičniji način korištenja systeminfo-a u PowerShellu je zatražiti CSV i pretvoriti ga u objekte sa ConvertFrom-CsvNa ovaj način možete odabrati i upravljati svojstvima bez regex-a ili ručnog izrezivanja.

$objetos = systeminfo.exe /FO CSV | ConvertFrom-Csv
$objetos.'Available Physical Memory'

Glavni problem su zaglavljaU drugim jezicima, svojstva će biti drugačija, što oštećuje skripte. Da biste to izbjegli, normalizuje zaglavlja i zamijenite ih fiksnim i stabilnim imenima.

$headers = 1..30 | ForEach-Object { "Property$_" }
$objetos = systeminfo.exe /FO CSV |
  Select-Object -Skip 1 |
  ConvertFrom-Csv -Header $headers

$objetos.Property23

Još elegantnija opcija je da od početka definišete vlastite nazive kolona. Na primjer, mapirajte sve kolone s jasnim nazivima kao što su Naziv hosta, Naziv OS-a, Verzija OS-a, Ukupna fizička memorija, Itd

$headers = 'HostName','OSName','OSVersion','OSManufacturer','OSConfiguration','OSBuildType',
  'RegisteredOwner','RegisteredOrganization','ProductID','OriginalInstallDate','SystemBootTime',
  'SystemManufacturer','SystemModel','SystemType','Processors','BIOSVersion','WindowsDirectory',
  'SystemDirectory','BootDevice','SystemLocale','InputLocale','TimeZone','TotalPhysicalMemory',
  'AvailablePhysicalMemory','VirtualMemoryMaxSize','VirtualMemoryAvailable','VirtualMemoryInUse',
  'PageFileLocations','Domain','LogonServer','Hotfix','NetworkCard','HyperVRequirements'

$objetos = systeminfo.exe /FO CSV |
  Select-Object -Skip 1 |
  ConvertFrom-Csv -Header $headers

$objetos.ProductID

Ova metoda eliminira jezičke probleme i čini vaš cjevovod robusnijim.Osim toga, možete izvesti u CSV, JSON ili manipulirati svakim svojstvom bez dvosmislenosti.

Get-ComputerInfo: Odabir svojstava i formatiranje

Detalj koji zbunjuje mnoge ljude je to da, kada se traži jedna nekretnina sa -Imovina, cmdlet vraća objekat sa tim svojstvom, a ne "gola" vrijednost. Razlog je konvencija: -Svojstvo je String[], i dizajniran je tako da, s nekoliko svojstava, dobijete objekt s njima. Za više informacija pogledajte Ovaj članak.

$info = Get-ComputerInfo -Property OSName, TimeZone, OSProductType
Write-Output $info

# En formato lista
$info | Format-List

Ako samo želite vrijednost nekretnine, morate izdvojiti člana, na primjer, (Get-ComputerInfo).OSName, ili koristite Select-Object-ExpandPropertyAli zapamtite da Traženje manjeg broja nekretnina ne ubrzava značajno proces.

  Visoka upotreba CPU-a uzrokovana sistemom ili svchost.exe – Detaljni tehnički vodič

Upiti sa džokerima: BIOS i više

Get-ComputerInfo je veoma koristan za filtriranje po obrascimaNa primjer, da biste vidjeli sve što je vezano za BIOS, koristite -Svojstvo *BIOS* i formatirani u listu radi jasnoće.

Get-ComputerInfo -Property *BIOS* | Format-List

Može se kombinovati i sa Invoke-Command za daljinsko ispitivanje podskupa svojstava i slanje rezultata u CSV ili formatiranu konzolu.

Performanse i dobre prakse

Get-ComputerInfo nudi mnogo sadržaja, ali nije najbržiIzvori se slažu da Ne preporučuje se pozivanje više puta za različita svojstva.: značit će ponavljanje rada. Najbolje je oporaviti cijeli objekt. samo jednom y odaberite svojstva nakonZa više informacija, pogledajte Ovaj članak.

ysteminfo.exe je veoma efikasan u CSV-u. i, kombinujući ga sa ConvertFrom-Csv i prilagođeni zaglavlja, mogu biti osnova za brzo izvještavanje u heterogenim okruženjima, gdje PowerShell udaljeno upravljanje nije uvijek omogućeno.

Daljinsko izvršavanje: Pristupi i primjeri

Sa systeminfo.exe datotekom Možete direktno upitati udaljene računare koristeći /S (naziv tima), /U (korisnik) i /P (lozinka). Korisno je kada WinRM nije konfiguriran ili su vam potrebni određeni rezultati.

systeminfo /S EQUIPO01 /U DOMINIO\usuario /P ContraseñaSegura
# Sin dominio, cuenta local
systeminfo /S EQUIPO01 /U .\Administrador /P ContraseñaSegura

Sa Get-ComputerInfo, ne postoji parametar -ComputerName. Za rad na daljinu, koristite Invoke-Command i blok od skriptaPrikupljanje se vrši na udaljenom hostu i vraćaju se kompletni objektiDa biste proširili svoje znanje, posjetite .

Invoke-Command -ComputerName 'DC1' -ScriptBlock {
  Get-ComputerInfo -Property *BIOS*
}

Praktičan primjer za inventar hitnih ispravkiproširili smo imanje OSHotFixes, sortiramo po imenu tima i izvozimo ako je potrebno.

Invoke-Command -ComputerName 'DC1','SRV01','Localhost' -ScriptBlock {
  Get-ComputerInfo | Select-Object -ExpandProperty OSHotFixes
} | Sort-Object PSComputerName | Export-Csv -NoTypeInformation SRV-Updates.csv

Tipične greške: akreditivi, varijable i sintaksa

1) „Jedno ili više imena računara nisu važeća“ u Invoke-CommandObično se to dešava zato što proslijediti nevažeće ili pogrešno napisano ime. Zapamtite: $CD3160-05 To nije naziv tima, to je izražavanje koja pokušava oduzeti 05 od varijable $CD3160 (koja najvjerovatnije ne postoji). Koristi navodnike i doslovni tekst: -Naziv računara 'CD3160-05'.

# Incorrecto (interpreta variable y resta)
Invoke-Command -ComputerName $CD3160-05 -ScriptBlock { Get-ComputerInfo }

# Correcto (literal)
Invoke-Command -ComputerName 'CD3160-05' -ScriptBlock { Get-ComputerInfo }

2) Zatvaranje zagrada i zaključavanje ScriptBlock-a. Obavezno pravilno otvaranje i zatvaranje { } i izbjegavajte miješanje interaktivne konzole unutar ScriptBlock-a. Napišite instrukciju koja će se izvršavati daljinski, bez upita ili "PS C:\>".

  Saznajte kako onemogućiti važna mjesta na vašem iPhoneu

3) Zahtjev za unos lozinke prilikom korištenja systeminfo /SAko udaljeni računar ne dijeli kontekst autentifikacije, Morate navesti /U i /PZa lokalne račune koristite .\KorisnikAko postoji domen, DOMENA\KorisnikAko ne znate domenu, provjerite na lokalnom računaru sa ko sam ja ili %USERDOMAIN%. Za više detalja, pogledajte .

4) WinRM i politikeZa Invoke-Command, WinRM mora biti omogućen i udaljeni računar mora prihvatati veze (zaštitni zid i pouzdane hostove). Pokrenite Enable -PSRemoting -Force na odredištu i provjerite pravila zaštitnog zida za WS-Upravljanje (HTTP 5985/HTTPS 5986)Da biste saznali više, posjetite.

Istraživanje službene pomoći za Get-ComputerInfo

Koristite Get-Help Get-ComputerInfo para consultar la sintaksa i svojstva. Parametar -Imovina prihvatiti String [], podržava džokere i vraća objekat Računarske informacijeMožete proslijediti stringove koji su nazivi svojstava i zapamtiti to radi samo na Windowsu.

Get-Help Get-ComputerInfo
# Sintaxis relevante
Get-ComputerInfo  <String[]>] 
# Alias: gin

Za pregled svih dostupnih nekretnina u vašem sistemu, kanališite do Pridruži se članuU Windowsu 10 prikazana su mnoga svojstva vezana za BIOS, OS, Hyper-V itd.

Get-ComputerInfo | Get-Member | more

Korisni primjeri i formatiranje

Navedi sve (ali može biti veoma dugačko; koristite više za paginaciju):

Get-ComputerInfo | more

Filtriraj po verziji korištenje džoker znakova:

Get-ComputerInfo -Property '*version'

Odaberite određene nekretnine i jasno ih prikažite:

$info = Get-ComputerInfo -Property OSName, TimeZone, OSProductType
$info | Format-List

Primjer sa systeminfo + CSV i prilagođenim zaglavljima za ujednačene rezultate na različitim jezicima:

$headers = 'HostName','OSName','OSVersion','OSManufacturer','OSConfiguration','OSBuildType',
  'RegisteredOwner','RegisteredOrganization','ProductID','OriginalInstallDate','SystemBootTime',
  'SystemManufacturer','SystemModel','SystemType','Processors','BIOSVersion','WindowsDirectory',
  'SystemDirectory','BootDevice','SystemLocale','InputLocale','TimeZone','TotalPhysicalMemory',
  'AvailablePhysicalMemory','VirtualMemoryMaxSize','VirtualMemoryAvailable','VirtualMemoryInUse',
  'PageFileLocations','Domain','LogonServer','Hotfix','NetworkCard','HyperVRequirements'

$objetos = systeminfo.exe /FO CSV |
  Select-Object -Skip 1 |
  ConvertFrom-Csv -Header $headers

$objetos | Select-Object HostName, OSName, OSVersion
msinfo32
Vezani članak:
Kako pregledati sistemske informacije i koristiti msinfo32 u Windowsu

Kompatibilnost, lokacije i povezani alati

systeminfo.exe je izvorni Windows binarni fajl. i njegov kod se može naći u projektima poput ReactOS-a. Njegova tipična lokacija u System32 i unutra sysWOW64 za x64 sisteme. Podržava izlazni format putem /FO (Tabela, Lista, CSV). Također možete pogledati kako održavati komponente pomoći ažurnima.

Funkcija Get-ComputerInfo je uvedena sa verzijom PowerShell 5.1., pokrivajući potrebu koju smo prethodno riješili pomoću Get-WmiObject / Get-CimInstanceJoš jedan srodni alat je msinfo32.exe, korisno za GUI dijagnostiku, iako manje prilagođeno protočnom radu.

PCL u odnosu na PostScript drajvere
Vezani članak:
PCL u odnosu na PostScript drajvere: Razlike i kako odabrati

Ostavite komentar