Slik ser du all din PC-informasjon ved hjelp av et enkelt Excel VBA-script

Excel og 10 minutter med arbeid gir deg mer detaljert informasjon om datamaskinen din enn du trodde var mulig. Høres for godt ut til å være sant? Det er Windows, hvis du vet hvordan du bruker det.

Excel og 10 minutter med arbeid gir deg mer detaljert informasjon om datamaskinen din enn du trodde var mulig.  Høres for godt ut til å være sant?  Det er Windows, hvis du vet hvordan du bruker det.
Annonse

Har du noen gang trengte å vite datamaskinens CPU eller minne detaljer, serienummer eller modellnummer eller installerte programvareversjoner, men var ikke sikker på hvor du skal se? Med bare litt enkel kode i Excel kan du trekke ut et helt bibliotek av Windows PC-informasjonen din. Har du fått PCen du bestilte? Finn ut av disse systeminformasjonverktøyene [Windows] Har du fått PCen du bestilte? Finn ut med disse systeminformasjonverktøyene [Windows] Har du nylig kjøpt en PC? Hvis ja, var det tilpasset? Ved tilpasset mener jeg samlet av en lokal datashop, eller til og med bare av noen du kjenner som bygger og selger datamaskiner. Hvis du ... Les mer.

Høres for godt ut til å være sant? Vel, det er Windows, hvis du vet hvordan du bruker det.

Du må kanskje få hendene litt skitne, men i denne artikkelen vil vi gi deg all koden du trenger, og hvordan du legger den inn i Excel og gjør den til å fungere. Når du er ferdig, har du et Excel-ark som hver gang du åpner den, forteller deg alt du noen gang ønsket å vite om datasystemet.

Legg merke til at dette bare vil fungere med desktopversjonen av Excel, som du kan få med en gratis prøveversjon av Office 6 måter du kan bruke Microsoft Office uten å betale for det. 6 måter du kan bruke Microsoft Office uten å betale for det. Trenger du Microsoft Office, men liker ikke prislappen? Vi viser deg gratis alternativer, inkludert gratisforsøk og lette eller mobile versjoner av Microsoft Office-pakken. Les mer .

The Magic of WMI

På hvilken som helst datamaskin som kjører et Microsoft-operativsystem, har du tilgang til et kraftig sett med utvidelser kalt Windows Management Instrumentation (WMI), som gir deg en svært kraftig og omfattende metode for å få tilgang til informasjon og spesifikasjoner om datamaskinen, operativsystemet 4 Easy Ways å vite om du har en 64-biters versjon av Windows 4 enkle måter å vite hvis du har en 64-biters versjon av Windows Bruker du en prosessor som støtter et 64-biters operativsystem og kjører 64 -bit operativsystem? Den gjennomsnittlige uten-PC-brukeren vet sannsynligvis ikke svarene på disse spørsmålene, selv om de skulle .... Les mer, og installert programvare.

wmiwindows

Best av alt, WMI er tilgjengelig Slik skriver du et Windows-skript for å endre nettverksinnstillinger på flyget Slik skriver du et Windows-skript for å endre nettverksinnstillinger på flyet I mange kontorer eller arbeidsmiljøer må du kanskje omdefinere nettverksinnstillingene til Koble til forskjellige nettverk. Jeg fant meg selv i denne situasjonen ofte nok og ble så lei av å surfe til ... Les mer fra programmeringsspråk som VBA Hvordan kan du lage din egen enkle app med VBA Hvordan kan du lage din egen enkle app med VBA For de av du som virkelig ville elske å kunne skrive din egen applikasjon, men aldri har tastet en enkelt kodekode før, jeg skal gå deg gjennom å lage din egen ... Les mer, tilgjengelig i nesten alle Microsoft Office-produkter.

Sette opp ditt automatiske regneark

Først opprett din nye Excel-arbeidsbok og ring den til noe som MyComputerInfo. xlsm (Makro aktivert). Åpne den, hopp over Ark1, og endre navn på de neste 11 arkene som følger:

  • Network
  • LogicalDisk
  • prosessor
  • Fysisk hukommelse
  • Video Controller
  • OnBoardDevices
  • Operativsystem
  • Skriver
  • programvare
  • kontoer
  • tjenester

Disse vil holde alle datamaskinens detaljer, og vil bli oppdatert hver gang du åpner dette Excel-regnearket.

wmi1

Deretter går du til Utvikler- menyelementet og under Kontroller- delen klikker du Vis kode .

wmi2

Hvis du ikke ser Utvikler-menyelementet, klikker du på Fil> Valg> Tilpass bånd, endrer Velg kommandoer fra rullegardinmenyen til Alle faner, velg Utvikler og trykk Legg til >> -knappen for å legge den til Tilpasset båndside. Sørg for at Utvikler-boksen på den siden er valgt når du har lagt den til.

wmi3

Når du er inne i VBA-kodeditoren, Overvåk Hvis VBA-programmene dine kjører med denne slanke skriptmåleren Hvis VBA-appene dine kjører med dette slick-skriptet Les mer, alt du trenger å gjøre er å legge til skriptene nedenfor til en modul. Disse skriptene vil gjøre alt tungt løft. Du trenger ikke å skrive denne koden selv, bare kopier og lim dem inn som vist nedenfor.

Når du er ferdig med å kopiere og lime inn koden i neste avsnitt, er alt du trenger å gjøre, legg til litt mer kode for å laste opp arkene dine, og du er ferdig.

Ok, klar til å kopiere og lime inn? La oss komme til det.

Bygg dine WMI-moduler

Inspirasjonen til denne koden kommer fra en fantastisk Google Sites-ressurs kalt Beyond Excel. Eksemplet som vises der er en subrutine kalt WMI (), som overfører all datamaskinens nettverksinformasjon til feilsøkingsområdet i Excel-programmeringsmiljøet.

Selvfølgelig gjør det oss ikke veldig bra der, så jeg har endret koden til å i stedet gi ut alle detaljene til et av arkene du opprettet i første trinn i denne håndboken.

I kodingsnavigasjonsområdet ser du også en seksjon som heter Moduler og en komponent under kalt Module1 . Dobbeltklikk på dette for å åpne det. Hvis du ikke ser modul- mappen, utvider du Sett inn fra menyen og velger Modul .

wmi5

Dette området er der alle delrutiner vil være som vil bruke WMI til å trekke all viktig informasjon om datamaskinen din, og laste den inn i arkene du opprettet.

Plasser følgende linjer øverst i kodevinduet helt av seg selv.

Public oWMISrvEx As Object 'SWbemServicesEx Public oWMIObjSet As Object 'SWbemServicesObjectSet Public oWMIObjEx As Object 'SWbemObjectEx Public oWMIProp As Object 'SWbemProperty Public sWQL As String 'WQL Statement Public n 

Det skal se slik ut når du er ferdig:

wmi5

Lim inn følgende kode i modul1 under linjene du nettopp opprettet:

 Sub NetworkWMI() sWQL = "Select * From Win32_NetworkAdapterConfiguration" Set oWMISrvEx = GetObject("winmgmts:root/CIMV2") Set oWMIObjSet = oWMISrvEx.ExecQuery(sWQL) intRow = 2 strRow = Str(intRow) ThisWorkbook.Sheets("Network").Range("A1").Value = "Name" ThisWorkbook.Sheets("Network").Cells(1, 1).Font.Bold = True ThisWorkbook.Sheets("Network").Range("B1").Value = "Value" ThisWorkbook.Sheets("Network").Cells(1, 2).Font.Bold = True For Each oWMIObjEx In oWMIObjSet For Each oWMIProp In oWMIObjEx.Properties_ If Not IsNull(oWMIProp.Value) Then If IsArray(oWMIProp.Value) Then For n = LBound(oWMIProp.Value) To UBound(oWMIProp.Value) Debug.Print oWMIProp.Name & "(" & n & ")", oWMIProp.Value(n) ThisWorkbook.Sheets("Network").Range("A" & Trim(strRow)).Value = oWMIProp.Name ThisWorkbook.Sheets("Network").Range("B" & Trim(strRow)).Value = oWMIProp.Value(n) ThisWorkbook.Sheets("Network").Range("B" & Trim(strRow)).HorizontalAlignment = xlLeft intRow = intRow + 1 strRow = Str(intRow) Next Else ThisWorkbook.Sheets("Network").Range("A" & Trim(strRow)).Value = oWMIProp.Name ThisWorkbook.Sheets("Network").Range("B" & Trim(strRow)).Value = oWMIProp.Value ThisWorkbook.Sheets("Network").Range("B" & Trim(strRow)).HorizontalAlignment = xlLeft intRow = intRow + 1 strRow = Str(intRow) End If End If Next 'End If Next End Sub 

Nå skal du lage en identisk funksjon for dette for hvert ark du opprettet i første del av denne veiledningen, med noen mindre forskjeller.

For eksempel, neste ville du kopiere den koden ovenfor for NetworkWMI (), lim den inn under slutten av koden, og erstatt deretter "NetworkWMI ()" med "LogicalDiskWMI ()"

Det er bare noen få seksjoner du må endre slik at denne koden fyller i riktig ark.

Endre dette:

 sWQL = "Select * From Win32_NetworkAdapterConfiguration" 

Til dette:

 sWQL = "Select * From Win32_LogicalDisk" 

Endre disse fire linjene:

 ThisWorkbook.Sheets("Network").Range("A1").Value = "Name" ThisWorkbook.Sheets("Network").Cells(1, 1).Font.Bold = True ThisWorkbook.Sheets("Network").Range("B1").Value = "Value" ThisWorkbook.Sheets("Network").Cells(1, 2).Font.Bold = True 

Til dette:

 ThisWorkbook.Sheets("LogicalDisk").Range("A1").Value = "Name" ThisWorkbook.Sheets("LogicalDisk").Cells(1, 1).Font.Bold = True ThisWorkbook.Sheets("LogicalDisk").Range("B1").Value = "Value" ThisWorkbook.Sheets("LogicalDisk").Cells(1, 2).Font.Bold = True 

Endre disse to linjene:

 ThisWorkbook.Sheets("Network").Range("A" & Trim(strRow)).Value = oWMIProp.Name ThisWorkbook.Sheets("Network").Range("B" & Trim(strRow)).Value = oWMIProp.Value(n) 

Til dette:

 ThisWorkbook.Sheets("LogicalDisk").Range("A" & Trim(strRow)).Value = oWMIProp.Name ThisWorkbook.Sheets("LogicalDisk").Range("B" & Trim(strRow)).Value = oWMIProp.Value(n) 

Og disse tre linjene:

 ThisWorkbook.Sheets("Network").Range("A" & Trim(strRow)).Value = oWMIProp.Name ThisWorkbook.Sheets("Network").Range("B" & Trim(strRow)).Value = oWMIProp.Value ThisWorkbook.Sheets("Network").Range("B" & Trim(strRow)).HorizontalAlignment = xlLeft 

Til dette:

 ThisWorkbook.Sheets("LogicalDisk").Range("A" & Trim(strRow)).Value = oWMIProp.Name ThisWorkbook.Sheets("LogicalDisk").Range("B" & Trim(strRow)).Value = oWMIProp.Value ThisWorkbook.Sheets("LogicalDisk").Range("B" & Trim(strRow)).HorizontalAlignment = xlLeft 

Nå er du nesten ferdig!

Gjenta ovenstående for hver fane i arbeidsboken din. Funksjonene vil være som følger:

  • "ProcessorWMI ()" for "Prosessor" -arket.
  • "PhysicalMemWMI ()" for "Physical Memory" -arket.
  • "VideoControlWMI ()" for "Video Controller" -arket.
  • "OnBoardWMI ()" for "OnBoardDevices" -arket.
  • "PrinterWMI ()" for "Skriver" -arket.
  • "OperatingWMI ()" for operativsystemarket.
  • "SoftwareWMI ()" for "Programvare" -arket.
  • "ServicesWMI ()" for "Services" -arket.

De spesielle "Win32_" -objektene du må bruke for å få tilgang til denne informasjonen om datamaskinen, er som følger:

  • Win32_NetworkAdapterConfiguration - Alle nettverkskonfigurasjonsinnstillingene
  • Win32_LogicalDisk - Disker med kapasitet og ledig plass.
  • Win32_Processor - CPU-spesifikasjoner
  • Win32_PhysicalMemoryArray - RAM / installert minne størrelse
  • Win32_VideoController - Grafikkadapter og innstillinger
  • Win32_OnBoardDevice - Hovedkort enheter
  • Win32_OperatingSystem - Hvilken versjon av Windows med serienummer
  • WIn32_Printer - Installerte skrivere
  • Win32_Product - Installert programvare
  • Win32_BaseService - Liste tjenester som kjører (eller stoppes) på en hvilken som helst PC sammen med tjenestens sti og filnavn.

Fullfør kopiering / liming og justering av hver av funksjonene i modul 1- området av koden. Når du er ferdig, gå videre til neste del av denne veiledningen.

Husk å lagre koden i VB-visningen! Hvis du først lagret arbeidsboken med .xls filtype, vil Excel nå be deg om å bruke en Macro-aktivert filtype, for eksempel .xlsm .

Laster automatisk arbeidsboken

Nå som du har alle de kraftige funksjonene opprettet, er alt som er igjen å kjøre dem hver gang arbeidsboken åpnes. Å gjøre dette er veldig enkelt.

I den venstre objektbrowseren, under Microsoft Excel Objects, bør du se ThisWorkbook . Dobbeltklikk på det objektet for å åpne det.

wmi6

Øverst i kodeområdet er det to dropdown-bokser, endre den venstre til arbeidsboken og den rette til Åpen .

wmi7

Du får se en funksjon som automatisk genereres for deg som heter Private Sub Workbook_Open () .

Inne her skriver du følgende linjer med kode slik at funksjonen ser slik ut:

 Private Sub Workbook_Open() NetworkWMI LogicalDiskWMI ProcessorWMI PhysicalMemWMI VideoControlWMI OnBoardWMI PrinterWMI SoftwareWMI OperatingWMI ServicesWMI End Sub 

Nå, hver gang du åpner arbeidsboken, vil hver av de nyopprettede funksjonene bli kalt, trekke alle data Visualisere dataene dine og lage regnearkene dine Brukervennlige med et Excel Dashboard Visualiser dataene dine og gjør regnearkene dine brukervennlige med et Excel Dashboard Noen ganger, et enkelt regnearkformat er ikke engasjerende nok til å gjøre dataene dine tilgjengelige. Et dashbord lar deg presentere dine viktigste data i et lett å fordøye format. Les mer fra datamaskinen, og legg den inn i riktig ark.

For å se det i aksjon, lagre koden, lukk kodvinduet, lagre arbeidsboken og lukk det også. Åpne filen du nettopp har lukket, og du vil oppdage at hvert ark inneholder datamengder om datamaskinen.

Siden arbeidsboken inneholder makroer, som kan deaktiveres av sikkerhetshensyn, må du kanskje klikke Aktiver innhold øverst på arket for data som skal samles inn.

Advarsel - det samler mye data, så forvent å vente et par minutter for at det skal lastes når du først åpner filen.

Samle inn datamaskininformasjon

Det fantastiske ved å bruke WMI for dette er at dataene ovenfor bare er toppen av isfjellet. Det finnes hundrevis flere WMI-klasser tilgjengelig som inneholder informasjon om alle aspekter av datasystemet.

Hvis du var eventyrlystne og ønsket å ta dette et skritt videre, kan du slå det første arket i arbeidsboken til et dashbord. Bygg ditt eget værpanel i denne klassen for Google Regneark. Bygg ditt eget værpanel i denne klassen for Google Regneark. Vil du ha det å konvertere Google Drive-kontoen til et intelligent væranalysesystem, og utøve en Star Trek-fantasi? Ok! Les mer, og bruk dataene fra de andre arkene for å mate det dashbordet.

Bunnlinjen er at ved hjelp av dette nye verktøyet, kan du samle og vise mer informasjon enn de fleste IT-eksperter. IT Knowledge Exchange - En gratis versjon av Eksperter Exchange! IT Knowledge Exchange - En gratis versjon av Eksperter Exchange! Les mer selv er klar over et datasystem, og du vil kunne gjøre det på en brøkdel av tiden som de samme eksperter bruker til å grave gjennom kontrollpanelet og administrative områder som søker etter disse detaljene.

Ser du deg selv å bygge og bruke et verktøy som dette? Er du en VBA-programmerer 4 Gode nettsteder for å gjøre deg til en visuell grunnleggende guru 4 Gode nettsteder for å gjøre deg til en visuell grunnleggende guru Ønsker du å lære Visual Basic? Her er noen gode ressurser for å komme i gang. Les mer og har du noen gang brukt WMI-klasser? Del dine egne erfaringer og ideer i kommentarfeltet nedenfor!

Image Credits: Adriano Castelli via Shutterstock.com, Mclek via Shutterstock

In this article