Get-ComputerInfo proti SystemInfo: resnične razlike, uporaba in triki

Zadnja posodobitev: 14/08/2025
Avtor: Isaac
  • Get-ComputerInfo vrne skladne objekte; systeminfo zahteva CSV + ConvertFrom-Csv.
  • systeminfo je hiter in oddaljen z /S /U /P; Get-ComputerInfo potrebuje Invoke-Command.
  • Lokalizacija vpliva na sistemske informacije; normalizira glave za robustne skripte.

Primerjava Get-ComputerInfo in systeminfo v sistemu Windows

Primerjava Get-ComputerInfo in systeminfo.exe je ponavljajoča se poizvedba med administratorji, ki iščejo najučinkovitejši in »čist« način popisa opreme WindowsČeprav oba vrneta sistemske podatke, Ne obnašajo se enako, ne delujejo enako in ne ponujajo enake vrste rezultatov., kar ima neposredne posledice za avtomatizacijo, poročanje in oddaljeno izvajanje.

V tem članku boste našli obsežen vodnik ki združuje resnične prakse, nianse delovanja, Tricks s cevovodom PowerShell in manj očitne podrobnosti, kot so Iskanje glav v sistemskih informacijah ali zakaj Lastnost -Get-ComputerInfo vrne objekte Tudi če zahtevate samo eno polje. Vse je razloženo v španščini, z jasnimi primeri in rešitvami za pogoste napake pri izvajanju na oddaljenih računalnikih.

Kaj je systeminfo.exe

systeminfo

systeminfo.exe je klasični pripomoček ukazne vrstice ukazi profiliranje računalnika z operacijskim sistemom WindowsNa voljo je od starejših različic (Windows XP Professional) do Windows 11in se nahaja v %windir%\system32\systeminfo.exe (in tudi na 64-bitnih sistemih) %windir%\SysWOW64\systeminfo.exe). Prikaže nastavitve operacijskega sistema, varnostne informacije, ID izdelka in lastnosti strojna oprema kot RAM, prostor na disku ali omrežne kartice.

Velika prednost je njegova vseprisotnostPrisoten je v praktično vsakem operacijskem sistemu Windows. Vendar ima eno veliko omejitev: izhod se nahajaTo pomeni, da se imena lastnosti, kot je »Available Physical Memory« v angleščini, lahko v drugih jezikih prikažejo drugače, kar otežuje avtomatizacijo, ki se zanaša na te glave.

Čeprav je "staro" orodje, je presenetljivo prilagodljivoPodpira izhodne formate s stikalom /FO (Tabela, Seznam, CSV) in lahko dostopa do oddaljenih računalnikov uporabo /S za ekipo, /U za uporabnika in /P za geslo. Zaradi tega je uporaben za hiter popis, ko ne želite nastaviti oddaljenih sej PowerShell.

Kaj je Get-ComputerInfo

get-computerinfo

Get-ComputerInfo je vgrajen ukaz »cmdlet« od različice Windows PowerShell 5.1 naprej. (na voljo v sistemih Windows 10 in Windows Server 2016), ki združuje lastnosti sistema in operacijskega sistema v en sam objekt. Tole na voljo samo v sistemu Windows in vrne primerke tipa Microsoft.PowerShell.Management.ComputerInfo s stotinami nepremičnin na seznamu.

Njegova velika prednost je, da je izhod že od prve minute objektno usmerjen.: besedila ni treba razčlenjevatiLahko ga usmerite v cevovod, formatu, filtrirajte in izvozite naravno z ukazi »cmdlets«, kot je Izberite-Predmet, Seznam formatov, Razvrsti-predmet o Izvozi-CSV. Več podrobnosti v tem priročniku.

  To napako lahko odpravite na 5 načinov: Semafor je potekel

Parameter -Property sprejme polje nizov (String[]) in podpira nadomestne znake. To vam omogoča, da izberete določene nabore lastnosti (na primer vse lastnosti, povezane z BIOS z *BIOS*) ali majhen seznam, kot je Ime operacijskega sistema, časovni pas, vrsta izdelka operacijskega sistema. Pomembno: Vzdevek za Get-ComputerInfo je gin, če naletite na skrajšane skripte.

Ključne razlike in kdaj jih uporabiti

Izhod in podatkovni tip: systeminfo.exe ustvari besedilo (čeprav je lahko v obliki CSV), kar zahteva pretvorbo v objekte za udobno delovanje v PowerShellu; Get-ComputerInfo vrne bogati predmeti pripravljen za cevovod. Ta vir pomaga bolje razumeti postopek.

UspešnostViri se strinjajo, da Get-ComputerInfo je relativno počasenZahtevajte manj nepremičnin z - Lastnina ne pomeni bistvenega izboljšanja, saj tako ali tako zbira veliko informacij. Systeminfo.exe je običajno precej hitro, še posebej pri CSV-ju.

Oddaljeni: systeminfo.exe ponuja /S, /U, /P za oddaljene poizvedbe; Get-ComputerInfo nima -ComputerName ali -CimSession, zato morate uporabiti Invoke-Command ali oddaljene seje PowerShell (WinRM). Za več informacij obiščite ta vodnik.

systeminfo.exe v cevovodu: od besedila do objektov

Najbolj praktičen način uporabe sistemskih informacij v PowerShellu je zahtevati CSV in ga pretvoriti v objekte z PretvoriIz-CSVNa ta način lahko izberete in upravljate lastnosti brez regularnih izrazov ali ročnega obrezovanja.

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

Glavna težava so nasloviV drugih jezikih bodo lastnosti drugačne, kar pokvari delovanje skriptov. Da bi se temu izognili, normalizira glave in jih nadomestite s stalnimi in stabilnimi imeni.

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

$objetos.Property23

Še bolj elegantna možnost je, da že od začetka definirate lastna imena stolpcev. Na primer, vse stolpce preslikajte z jasnimi imeni, kot je Ime gostitelja, ime operacijskega sistema, različica operacijskega sistema, skupni fizični pomnilnik, 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

Ta metoda odpravlja jezikovne težave in naredi vaš cevovod bolj robusten.Poleg tega lahko izvozite v CSV, JSON ali pa vsako lastnost spreminjate brez dvoumnosti.

Get-ComputerInfo: Izbira lastnosti in oblikovanje

Podrobnosti, ki marsikoga zmedejo je to, da pri zahtevi za eno samo nepremičnino z - Lastnina, ukaz »cmdlet« vrne predmet s to lastnostjo, ne pa »gole« vrednosti. Razlog je konvencija: -Lastnost je niz[]in zasnovan je tako, da z več lastnostmi dobite objekt z njimi. Za več informacij glejte Ta članek.

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

# En formato lista
$info | Format-List

Če želite le vrednost nepremičnine, morate na primer izvleči člana (Get-ComputerInfo).OSNameali uporabite Izberi-Predmet-RazširiLastnostAmpak ne pozabite, da Zahteva po manjšem številu nepremičnin ne pospeši bistveno postopka.

  Visoke konice uporabe procesorja zaradi sistema ali svchost.exe – tehnični vodnik po korakih

Nadomestne poizvedbe: BIOS in drugo

Get-ComputerInfo je zelo uporaben za filtriranje po vzorcihNa primer, če si želite ogledati vse, kar je povezano z BIOS-om, uporabite -Lastnost *BIOS* in zaradi jasnosti oblikovane v seznam.

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

Lahko se kombinira tudi z Invoke-Command za oddaljeno poizvedbo po podmnožici lastnosti in posredovanje rezultatov v CSV ali oblikovano konzolo.

Uspešnost in dobre prakse

Get-ComputerInfo ponuja veliko vsebine, vendar ni najhitrejšiViri se strinjajo, da Večkratno klicanje za različne lastnosti ni priporočljivo.: pomenilo bo ponovitev dela. Najbolje je, da se obnovi celoten predmet. samo enkrat y izberite lastnosti poZa več informacij si oglejte Ta članek.

Datoteka ysteminfo.exe je zelo učinkovita v CSV-ju. in ga kombiniramo z PretvoriIz-CSV in glave po meri so lahko osnova za hitro poročanje v heterogenih okoljih, kjer oddaljeno delovanje PowerShell ni vedno omogočeno.

Oddaljeno izvajanje: pristopi in primeri

Z datoteko systeminfo.exe Oddaljene računalnike lahko poizvedujete neposredno z uporabo /S (ime ekipe), /U (uporabnik) in /P (geslo). Uporabno je, kadar WinRM ni konfiguriran ali pa potrebujete specifične rezultate.

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

Z ukazom Get-ComputerInfo, ni parametra -ComputerName. Za delo na daljavo uporabite Invoke-Command in blok scriptZbiranje se izvaja na oddaljenem gostitelju in vrnejo se celotni objektiČe želite razširiti svoje znanje, obiščite .

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

Praktičen primer za popis popravkovrazširili smo nepremičnino Popravki za OS, razvrščamo po imenu ekipe in po potrebi izvozimo.

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

Tipične napake: poverilnice, spremenljivke in sintaksa

1) »Eno ali več imen računalnikov ni veljavnih« v Invoke-CommandObičajno se to zgodi, ker posredujte neveljavno ali napačno črkovano ime. Zapomni si: $CD3160-05 To ni ime ekipe, ampak izraz ki poskuša odšteti 05 od spremenljivke $CD3160 (ki najverjetneje ne obstaja). Uporablja narekovaje in dobesedno besedilo: -Ime računalnika '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) Zapiranje oklepajev in zaklepanje ScriptBlocka. Bodi prepričan pravilno odpiranje in zapiranje { } in se izogibajte mešanju interaktivne konzole znotraj ScriptBlocka. Napišite ukaz, ki se bo izvajal na daljavo, brez pozivov ali »PS C:\>«.

  Ugotovite, kako onemogočiti pomembna mesta na vašem iPhoneu

3) Poziv k vnosu gesla pri uporabi systeminfo /SČe oddaljeni računalnik ne deli konteksta preverjanja pristnosti, Navesti morate /U in /PZa lokalne račune uporabite .\UporabnikČe obstaja domena, DOMENA\UporabnikČe domene ne poznate, jo preverite v lokalnem računalniku z Kdosem ali %USERDOMAIN%. Za več podrobnosti glejte .

4) WinRM in pravilnikiZa ukaz Invoke-Command, WinRM mora biti omogočen in oddaljeni računalnik mora sprejemati povezave (požarni zid in zaupanja vredne gostitelje). Zaženite Enable -PSRemoting -Force na cilju in preverite pravila požarnega zidu za Upravljanje WS (HTTP 5985/HTTPS 5986)Če želite izvedeti več, obiščite.

Raziskovanje uradne pomoči za Get-ComputerInfo

Uporabite Get-Help Get-ComputerInfo za svetovalca la sintaksa in lastnosti. Parameter - Lastnina sprejeti Vrvica[], podpira nadomestne znake in vrne objekt Računalniške informacijeNize, ki so imena lastnosti, lahko povežete s pipo in si to zapomnite. deluje samo v sistemu Windows.

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

Za ogled vseh razpoložljivih nepremičnin v vašem sistemu, kanalizirajte do Pridobi članaV sistemu Windows 10 je prikazanih veliko lastnosti, povezanih z BIOS-om, operacijskim sistemom, Hyper-V itd.

Get-ComputerInfo | Get-Member | more

Koristni primeri in oblikovanje

Seznam vseh (vendar je lahko zelo dolg; uporabite več za oštevilčenje strani):

Get-ComputerInfo | more

Filtriraj po različici z uporabo nadomestnih znakov:

Get-ComputerInfo -Property '*version'

Izberite določene lastnosti in jih jasno prikažite:

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

Primer s sistemskimi informacijami + CSV in glavami po meri za enotne rezultate v različnih jezikih:

$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
Povezani članek:
Kako si ogledati sistemske informacije in uporabljati msinfo32 v sistemu Windows

Združljivost, lokacije in sorodna orodja

systeminfo.exe je izvorna binarna datoteka sistema Windows in njegovo kodo je mogoče najti v projektih, kot je ReactOS. Njena tipična lokacija v System32 in SysWOW64 za sisteme x64. Podpira izhodno obliko prek /FO (Tabela, Seznam, CSV). Ogledate si lahko tudi kako posodabljati komponente pomoči.

Get-ComputerInfo je bil uveden s PowerShellom 5.1., ki pokriva potrebo, ki smo jo prej rešili z Get-WmiObject / Get-CimInstanceDrugo povezano orodje je msinfo32.exe, uporaben za diagnostiko grafičnega uporabniškega vmesnika, čeprav manj prijazen do cevovodov.

Gonilniki PCL v primerjavi s PostScript
Povezani članek:
Gonilniki PCL v primerjavi s PostScript: razlike in kako izbrati

Pustite komentar