Get-ComputerInfo vs. SystemInfo: Virkelige forskelle, anvendelser og tricks

Sidste ændring: 14/08/2025
Forfatter: Isaac
  • Get-ComputerInfo returnerer konsistente objekter; systeminfo kræver CSV + ConvertFrom-Csv.
  • systeminfo er hurtig og fjernstyret med /S /U /P; Get-ComputerInfo kræver Invoke-Command.
  • Lokalisering påvirker systeminfo; normaliserer headere for robuste scripts.

Sammenligning af Get-ComputerInfo og systeminfo på Windows

Sammenligning af Get-ComputerInfo og systeminfo.exe er en tilbagevendende forespørgsel blandt administratorer, der leder efter den mest effektive og "rene" måde at oplagre udstyr på WindowsSelvom begge returnerer systemoplysninger, De opfører sig ikke ens, de præsterer ikke det samme, og de tilbyder ikke den samme type output., hvilket har direkte konsekvenser for automatisering, rapportering og fjernudførelse.

I denne artikel finder du en omfattende guide som integrerer reelle praksisser, præstationsnuancer, Tricks med rørledningen af PowerShell og mindre åbenlyse detaljer som f.eks. Finde headere i systeminfo eller hvorfor -Get-ComputerInfo-egenskaben returnerer objekter Selv når du anmoder om et enkelt felt. Alt forklares på spansk, med klare eksempler og løsninger på almindelige fejl, når du kører mod eksterne computere.

Hvad er systeminfo.exe

SystemInfo

systeminfo.exe er det klassiske kommandolinjeværktøj kommandoer at profilere en Windows-computerDen er tilgængelig fra ældre versioner (Windows XP Professional) til Windows 11, og er placeret i %windir%\system32\systeminfo.exe (og også på 64-bit systemer) %windir%\SysWOW64\systeminfo.exeViser operativsystemindstillinger, sikkerhedsoplysninger, produkt-ID og egenskaber for hardware som RAM, diskplads eller netværkskort.

En kæmpe fordel er dens allestedsnærværelseDen findes i stort set alle Windows-operativsystemer. Men den har én væsentlig begrænsning: udgangen er placeretDet betyder, at egenskabsnavne som "Available Physical Memory" på engelsk kan se anderledes ud på andre sprog, hvilket komplicerer automatisering, der er afhængig af disse headere.

Selvom det er et "gammelt" værktøj, er det overraskende fleksibeltUnderstøtter outputformater med kontakten /FO (Tabel, Liste, CSV) og kan konsultere fjerncomputere hjælp /S for holdet, /U for brugeren og /P for adgangskoden. Dette gør den nyttig til hurtige opgørelser, når du ikke vil konfigurere eksterne PowerShell-sessioner.

Hvad er Get-ComputerInfo

get-computerinfo

Get-ComputerInfo er en indbygget cmdlet siden Windows PowerShell 5.1 (tilgængelig på Windows 10 og Windows Server 2016) der samler system- og OS-egenskaber i et enkelt objekt. Dette kun tilgængelig på Windows og returnerer instanser af typen Microsoft.PowerShell.Management.ComputerInfo med hundredvis af ejendomme udbudt.

Dens store fordel er, at outputtet er objektorienteret fra første minut.: du behøver ikke at analysere tekstDu kan kanalisere det til pipelinen, format, filtrer og eksporter naturligt med cmdlets som Vælg-Objekt, Format-liste, Sorter-objekt o Eksport-Csv. Flere detaljer i denne vejledning.

  Ingen hovedtelefoner eller højttalere tilsluttet[Complete Fix Guide]

Parameteren -Property accepterer et array af strenge (String[]) og understøtter jokertegn. Dette giver dig mulighed for at vælge specifikke sæt af egenskaber (f.eks. alle egenskaber relateret til BIOS med *BIOS*) eller en lille liste som f.eks. OSnavn, tidszone, OS-produkttype. Vigtig: Aliaset for Get-ComputerInfo er gin, hvis du støder på forkortede manuskripter.

Vigtigste forskelle og hvornår man skal bruge hver enkelt

Output og datatype: systeminfo.exe producerer tekst (selvom det kan være CSV), hvilket kræver konvertering til objekter for at fungere problemfrit i PowerShell; Get-ComputerInfo returnerer rige genstande klar til rørledningen. Denne ressource hjælper med bedre at forstå processen.

YdelseKilder er enige om, at Get-ComputerInfo er relativt langsomBed om færre ejendomme med -Ejendom ikke resulterer i en væsentlig forbedring, da den indsamler mange af oplysningerne alligevel. Systeminfo.exe er normalt temmelig hurtigt, især med CSV.

Fjernsysteminfo.exe tilbyder ikke /S, /U, /P til fjernforespørgsler; Get-ComputerInfo har ikke -ComputerName eller -CimSession, så du skal bruge Invoke-Command eller eksterne PowerShell-sessioner (WinRM). For mere information, besøg denne vejledning.

systeminfo.exe i pipelinen: fra tekst til objekter

Den mest praktiske måde at bruge systeminfo i PowerShell er at anmode om CSV og konvertere til objekter med KonverterFra-CsvPå denne måde kan du vælge og arbejde med egenskaber uden regex eller manuel beskæring.

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

Hovedproblemet er overskrifterneI andre sprog vil egenskaberne være anderledes, hvilket afbryder scripts. For at undgå dette, normaliserer overskrifter og erstatte dem med faste og stabile navne.

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

$objetos.Property23

En endnu mere elegant mulighed er at definere dine egne kolonnenavne fra starten. For eksempel, tilknyt alle kolonner med tydelige navne som Værtsnavn, OS-navn, OS-version, samlet fysisk hukommelseOsv

$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

Denne metode eliminerer sprogproblemer og gør din pipeline mere robust.Derudover kan du eksportere til CSV, JSON eller manipulere hver egenskab uden tvetydighed.

Get-ComputerInfo: Valg af egenskaber og formatering

En detalje, der forvirrer mange mennesker er det, når man anmoder om en enkelt ejendom med -Ejendom, cmdlet'en returnerer et objekt med den egenskab, ikke den "nøgne" værdi. Årsagen er konventionen: -Egenskaben er en streng[], og den er designet således, at du med flere egenskaber får et objekt med dem. For mere information, se denne artikel.

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

# En formato lista
$info | Format-List

Hvis du bare vil have værdien af en ejendom, skal du udtrække medlemmet, for eksempel, (Hent-ComputerInfo).OSName, eller brug Vælg-Objekt-UdvidEgenskabMen husk det At bede om færre ejendomme fremskynder ikke processen væsentligt.

  Hvad er den bedste måde at finde et navn med et mobiltelefonnummer?

Wildcard-forespørgsler: BIOS og mere

Get-ComputerInfo er meget nyttig til filtrering efter mønstreFor eksempel, for at se alt relateret til BIOS, brug -Egenskab *BIOS* og formateret i en liste for overskuelighedens skyld.

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

Kan også kombineres med Invoke-Command at eksternt forespørge på et delmængde af egenskaber og sende resultaterne til en CSV-fil eller en formateret konsol.

Ydeevne og god praksis

Get-ComputerInfo tilbyder en masse indhold, men er ikke den hurtigsteKilder er enige om, at Det anbefales ikke at kalde den flere gange for forskellige egenskaber.: vil betyde at gentage arbejdet. Det er bedst at gendanne hele objektet. kun én gang y vælg egenskaberne efterFor mere information, tjek ud denne artikel.

ysteminfo.exe er meget effektiv i CSV og kombinerer det med KonverterFra-Csv og brugerdefinerede headers, kan danne grundlag for hurtig rapportering i heterogene miljøer, hvor PowerShell-fjernstyring ikke altid er aktiveret.

Fjernudførelse: Tilgange og eksempler

Med systeminfo.exe Du kan forespørge fjerncomputere direkte ved hjælp af /S (holdnavn), /U (bruger) og /P (adgangskode). Det er nyttigt, når WinRM er ikke konfigureret eller du har brug for specifikke resultater.

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

Med Get-ComputerInfo, der er ingen -ComputerName parameter. Brug til fjernarbejde Invoke-Command og en blok af scriptIndsamlingen udføres på den eksterne vært, og komplette objekter returneresFor at udvide din viden, besøg .

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

Praktisk eksempel på hotfix-lagerVi udvidede ejendommen OSHotFixes, vi sorterer efter holdnavn og eksporterer om nødvendigt.

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

Typiske fejl: legitimationsoplysninger, variabler og syntaks

1) “Et eller flere computernavne er ikke gyldige” i Invoke-CommandDet sker normalt fordi angive et ugyldigt eller stavet navn. Husk: $CD3160-05 Det er ikke et holdnavn, det er en ekspression som forsøger at trække 05 fra en variabel $CD3160 (som højst sandsynligt ikke findes). Den bruger anførselstegn og bogstavelig tekst: -Computernavn '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) Lukning af parenteser og låsning af ScriptBlock. Vær sikker på åbne og lukke korrekt {} og undgå at blande den interaktive konsol i ScriptBlock. Skriv den instruktion, der skal udføres eksternt, uden prompter eller "PS C:\>".

  Sådan installerer du mods i Minecraft på pc, Mac, Android og iPhone

3) Adgangskodeprompt ved brug af systeminfo /SHvis den eksterne computer ikke deler godkendelseskontekst, Du skal angive /U og /PFor lokale konti, brug .\BrugerHvis der er et domæne, DOMÆNE\BrugerHvis du ikke kender domænet, så tjek på den lokale computer med whoami eller %USERDOMAIN%. For yderligere oplysninger, se .

4) WinRM og politikkerFor Invoke-Command, WinRM skal være aktiveret og den eksterne computer skal acceptere forbindelser (firewall og TrustedHosts). Kør Aktiver-PSRemoting-Force på destinationen og tjek firewallreglerne for WS-administration (HTTP 5985/HTTPS 5986)For at få mere at vide, besøg .

Udforsk Get-ComputerInfos officielle hjælp

Brug Get-Help Get-ComputerInfo at konsultere syntaks og egenskaber. Parameter -Ejendom accepterer Snor[], understøtter jokertegn og returnerer et objekt ComputerinfoDu kan overføre strenge, der er egenskabsnavne, og huske at virker kun på Windows.

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

At inspicere alle tilgængelige ejendomme i dit system, kanal til Hent medlemI Windows 10 vises mange egenskaber relateret til BIOS, OS, Hyper-V osv.

Get-ComputerInfo | Get-Member | more

Nyttige eksempler og formatering

Liste over alle (men den kan være meget lang; brug mere til at paginere):

Get-ComputerInfo | more

Filtrer efter version ved hjælp af jokertegn:

Get-ComputerInfo -Property '*version'

Vælg specifikke egenskaber og vis dem tydeligt:

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

Eksempel med systeminfo + CSV og brugerdefinerede headere for ensartede resultater på forskellige sprog:

$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
Relateret artikel:
Sådan får du vist systemoplysninger og bruger msinfo32 i Windows

Kompatibilitet, placeringer og relaterede værktøjer

systeminfo.exe er en indbygget Windows-binærfil og dens kode kan findes i projekter som ReactOS. Dens typiske placering i System32 og SysWOW64 til x64-systemer. Understøtter outputformat via /FO (Tabel, Liste, CSV). Du kan også se hvordan man holder hjælpekomponenter opdaterede.

Get-ComputerInfo blev introduceret med PowerShell 5.1, der dækker et behov, som vi tidligere har løst med Get-WmiObject / Get-CimInstanceEt andet relateret værktøj er msinfo32.exe, nyttig til GUI-diagnostik, omend mindre pipeline-venlig.

PCL- vs. PostScript-drivere
Relateret artikel:
PCL vs. PostScript-drivere: Forskelle og hvordan man vælger