Köra processer som inte används kan i slutändan orsaka minnesproblem i ett system . Ett vanligt problem när man arbetar med externa program är att inte kunna avsluta en process helt. En process är i grunden ett program som för tillfället körs . Du kan se processer som körs med Windows Task Manager med fliken Processer . Du kan avsluta en process manuellt , men i ett fall där du har många processer igång , är ett bättre alternativ slutar dem programmatiskt använda VBScript . WMI service
att döda en process , måste du ringa WMI ( winmgmt ) tjänst för att få information , t.ex. namnet på en process som körs . Tjänsten körs under kontot LocalSystem och kan anropas med VBScript genom att gå till WMI Scripting API för WMI . Förutom att döda processer , kan du utföra även andra åtgärder såsom att skapa processer med hjälp av den här tjänsten . Addera WMI Security Settings
För att meddela WMI tjänsten , måste du ange säkerhetskomponent. Det finns olika typer av personifiering nivåer såsom anonymt, identifiera, imitera , och delegera . Enligt Microsoft , de anonyma " döljer bevis för den som ringer , " och identiteten " möjliggör objekt för att söka bevis för den som ringer . " Den vanligaste är den imitera nivå , som enligt Microsoft , " gör det möjligt för objekt att använda bevis för den som ringer . " är slutligen delegaten nivå enligt Microsoft den " möjliggör objekt för att tillåta andra objekt för att använda bevis för den som ringer . "
Win32_Process Class
Wind32_Process WMI klassen motsvarar en process som körs i ditt system . Denna klass har metoder och egenskaper som du kan ringa för att få information om en process . Du kan felsöka en process genom att lansera " AttachDebugger " metoden eller avsluta en process och alla dess trådar genom att använda " Avsluta " metoden . Använd " Caption " egendom för att få en kort beskrivning av en process eller " CreationDate " för att erhålla datum processen började köra . Addera VBScript Kill Excel Exempel
följande är ett enkelt exempel i VBScript för att döda alla aktiva instanser av Excel.exe använder WMI API :
SET WMIServicesObject = GetObject ( " winmgmts : " _ & " { impersonationLevel = imitera } ! \\ \\ . \\ root \\ cimv2 " ) SET qryProcesses = WMIServicesObject.ExecQuery _ ( " SELECT * FROM Win32_Process där namn = ' EXCEL.exe ' " ) xCntr = 0FOR VARJE xlProcess i qryProcesses xlProcess.Terminate ( ) xCntr = xCntr + 1NEXTwscript.echo " Killed " & xCntr & " processer av EXCEL.exe " Addera