Antall prosesser som ikke blir brukt kan til slutt føre til minneproblemer i et system . Et vanlig problem når du arbeider med eksterne programmer er ikke i stand til å drepe en prosess helt. En prosess er i utgangspunktet et program som kjører. Du kan se kjørende prosesser ved hjelp av Windows Task Manager ved hjelp av kategorien Prosesser . Du kan avslutte en prosess manuelt , men i en sak der du har mange prosesser som kjører , er et bedre alternativ ending dem programmatisk ved hjelp av VBScript. WMI Tjenesten
Å drepe en prosess , må du ringe WMI ( Winmgmt ) tjenesten til å innhente informasjon som navnet på en prosess som kjører for øyeblikket . Denne tjenesten kjører under LocalSystem konto og kan kalles ved hjelp VBScript ved å gå til WMI Scripting API for WMI . I tillegg til å drepe prosesser , kan du også utføre andre handlinger som skaper prosesser ved hjelp av denne tjenesten .
WMI Security Settings
For å kommunisere til WMI -tjenesten , du trenger å angi sikkerheten komponenten . Det finnes ulike typer etterligning nivåer som anonym, identifisere, utgi , og delegat . Ifølge Microsoft, de anonyme " skjuler legitimasjon av den som ringer ", og identifisere " gjør objekter for å spørre legitimasjon av den som ringer. " Den mest brukte er den utgi nivå , som ifølge Microsoft , " gjør det mulig for objekter for å bruke legitimasjon av den som ringer. "er slutt representanten nivå i henhold til Microsoft det " gjør objekter for å tillate andre objekter for å bruke legitimasjon av den som ringer. "
Win32_Process Class
Wind32_Process WMI klassen tilsvarer en prosess som kjører i systemet. Denne klassen har metoder og egenskaper som du kan ringe for å få informasjon om en prosess. Du kan feilsøke en prosess ved å lansere " AttachDebugger "-metoden eller avslutte en prosess og alle dens tråder ved å bruke " Avslutt "-metoden . Bruk " Bildetekst " eiendom for å få en kort beskrivelse av en prosess eller " Utarbeidet " for å få datoen prosessen begynte gjennomføring .
VBScript Kill Excel Eksempel
det følgende er et enkelt eksempel i VBScript til å drepe alle aktive forekomster av Excel.exe bruker WMI API : en
SET WMIServicesObject = GetObject ( " winmgmts : " _ & " { impersonationLevel = utgi } ! \\ \\. \\ root \\ cimv2 ") SET qryProcesses = WMIServicesObject.ExecQuery _ ( " Select * fra Win32_Process Hvor Name = ' EXCEL.exe ' " ) xCntr = 0 ° C HVER xlProcess i qryProcesses xlProcess.Terminate ( ) xCntr = xCntr + 1NEXTwscript.echo " Drept " & xCntr & " prosesser av EXCEL.exe "