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

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

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 det, forteller deg alt du noen gang ønsket å vite om datasystemet ditt.

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? Her er noen måter du kan bruke Microsoft Office gratis! 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 burde ... Les mer og installert programvare.

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 du kan lage din egen enkle app med VBA Hvordan kan du lage din egen enkle app med VBA For de av dere som ville virkelig elske å kunne skrive din egen applikasjon, men har aldri skrevet en enkelt kodekode før, jeg kommer til å 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 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.

Deretter går du til Utvikler menyelement og under kontroller seksjon klikk Vis kode.

Hvis du ikke ser Utvikler-menyelementet, klikker du på Fil> Valg> Tilpass båndet, endre Velg kommandoer fra dropdown til Alle faner, å velge Utvikler og trykk på 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.

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 mappen Moduler, utvider du Sett inn fra menyen og velg modul.

Dette området er der alle delrutinene 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.

Offentlig oWMISrvEx Som Objekt 'SWbemServicesEx Offentlig oWMIObjSet Som Objekt' SWbemServicesObjectSet Offentlig oWMIObjEx Som Objekt 'SWbemObjectEx Offentlig oWMIProp Som Objekt' SWbemProperty Offentlig sWQL Som String 'WQL-setning Offentlig n 

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

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

Sub NetworkWMI () sWQL = "Velg * Fra Win32_NetworkAdapterConfiguration" Angi oWMISrvEx = GetObject ("winmgmts: root / CIMV2") Angi oWMIObjSet = oWMISrvEx.ExecQuery (sWQL) intRow = 2 strRow = Str (intRow) ThisWorkbook.Sheets ) .Range ("A1"). Verdi = "Navn" ThisWorkbook.Sheets ("Network") .celler (1, 1) .Font.Bold = True ThisWorkbook.Sheets ("Network"). .Value = "Verdi" ThisWorkbook.Sheets ("Network") .celler (1, 2) .Font.Bold = True For hver oWMIObjEx I oWMIObjSet For hver oWMIProp I oWMIObjEx.Properties_ Hvis ikke IsNull (oWMIProp.Value) Så hvis IsArray (oWMIProp.Value) Så For n = LBound (oWMIProp.Value) Til UBound (oWMIProp.Value) Debug.Print oWMIProp.Name & "(" & n & ")", oWMIProp.Value (n) ThisWorkbook.Sheets (" Nettverk "). Område (" A "& Trim (strRow)). Verdi = oWMIProp.Name ThisWorkbook.Sheets (" Network ") .Range (" B "& Trim (strRow)). Verdi = oWMIProp.Value ThisWorkbook.Sheets ("Network") .Range ("B" & Trim (strRow)). HorizontalAlignment = xlLeft intRow = intRow + 1 strRow = Str (intRow) Neste Else ThisW orkbook.Sheets ("Network") .Range ("A" & Trim (strRow)). Verdi = oWMIProp.Name ThisWorkbook.Sheets ("Network") .Range ("B" & Trim (strRow)). Verdi = oWMIProp .Value ThisWorkbook.Sheets ("Network") .Range ("B" & Trim (strRow)). HorizontalAlignment = xlLeft intRow = intRow + 1 strRow = Str (intRow) Slutt hvis slutt hvis neste 'Slutt hvis neste ende 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 det 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 = "Velg * Fra Win32_NetworkAdapterConfiguration" 

Til dette:

sWQL = "Velg * Fra Win32_LogicalDisk" 

Endre disse fire linjene:

ThisWorkbook.Sheets ("Network") .Range ("A1"). Verdi = "Navn" ThisWorkbook.Sheets ("Network") .celler (1, 1) .Font.Bold = True ThisWorkbookSheets ("Network") .Range ("B1"). Verdi = "Verdi" ThisWorkbook.Sheets ("Network") .celler (1, 2) .Font.Bold = True 

Til dette:

ThisWorkbook.Sheets ("LogicalDisk") .Range ("A1"). Verdi = "Navn" ThisWorkbook.Sheets ("LogicalDisk") .celler (1, 1) .Font.Bold = True ThisWorkbook.Sheets ("LogicalDisk") .Range ("B1"). Verdi = "Verdi" ThisWorkbook.Sheets ("LogicalDisk"). Celler (1, 2) .Font.Bold = True 

Endre disse to linjene:

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

Til dette:

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

Og disse tre linjene:

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

Til dette:

ThisWorkbook.Sheets ("LogicalDisk") .Range ("A" & Trim (strRow)). Verdi = oWMIProp.Name ThisWorkbook.Sheets ("LogicalDisk") .Range ("B" & Trim (strRow)). Verdi = 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” ark.
  • “PhysicalMemWMI ()” for “Fysisk hukommelse” ark.
  • “VideoControlWMI ()” for “Video Controller” ark.
  • “OnBoardWMI ()” for “OnBoardDevices” ark.
  • “PrinterWMI ()” for “Skriver” ark.
  • “OperatingWMI ()” for operativsystemarket.
  • “SoftwareWMI ()” for “programvare” ark.
  • “ServicesWMI ()” for “tjenester” ark.

Den spesielle “Win32_” Objekter 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 module1 område av koden. Når du er ferdig, gå videre til neste del av denne veiledningen.

Husk å lagre koden i VB-visningen! Hvis du opprinnelig 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 venstre objektbrowser, under Microsoft Excel-objekter, du bør se Thisworkbook. Dobbeltklikk på det objektet for å åpne det.

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

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

Her inne, skriv inn Følgende linjer med kode slik at funksjonen ser slik ut:

Private Sub Workbook_Open () NetworkWMI LogicalDiskWMI ProsessorWMI PhysicalMemWMI VideoControlWMI OnBoardWMI-skriverWMI 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 Google-regnearkets hovedklasse. 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 klar over at det er tilgjengelig om et datasystem, og du vil kunne gjøre det på en brøkdel av tiden som de samme ekspertene 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

Utforsk mer om: Datamaskinvedlikehold, Microsoft Excel, Visual Basic Programmering.