5 Hasznos VB Windows -parancsfájlok a számítógép használatának automatizálásához

5 Hasznos VB Windows -parancsfájlok a számítógép használatának automatizálásához

Akár informatikai elemző, akár rendszeres számítógép -felhasználó, sok feladatot kell gyakran elvégeznie a számítógépen. A VB parancsfájlok kicsinyített Visual Basic programok, amelyek Windows szkriptekként szolgálnak, és bármit megtehetnek a számítógép hardverével kapcsolatos fontos információk összegyűjtésétől a szolgáltatások leállításáig és indításáig, illetve a hálózati kártya alaphelyzetbe állításáig.





Lehetséges megtanulni, hogyan kell ezeket az egyes dolgokat a szokásos módon, vagy kötegelt fájlok segítségével elvégezni. De A VB szkriptek jobbak, mint a kötegelt szkriptek mert rugalmasabbak. Ha az alábbi parancsfájlokat olyan helyen tárolja, amelyre gyorsan eljut, amikor szüksége van rá, akkor az idő töredékében elvégezheti ezeket a feladatokat. Csak kattintson duplán a parancsfájlra, válaszoljon egy kérdésre, és a feladat kész.





Vessen egy pillantást a következő VB Windows szkriptekre, és ha lát olyanokat, amelyeket használni szeretne, egyszerűen másolja ki és illessze be a szkriptet Jegyzettömb vagy más kódoló megjegyzések eszköz és mentse el WSF fájlként.





Készítse elő a Windows szkripteket

Az alábbiakban részletezett szkriptek mindegyike csak dupla kattintással fog futni, amíg a .WSF kiterjesztéssel nevezte el a fájlt, és az elején a kódot is mellékelte:


És zárja be a kódot:



WScript.Quit

Ez biztosítja, hogy a Windows felismerje a szkript nyelvét, és megfelelően feldolgozza.

1. Használja a Windows parancsfájlokat a számítógépes információkhoz

A Windows WMI -t vagy Windows Management Instrumentation -t kínál, amely a parancsfájlhoz interfészt biztosít az operációs rendszer összetevőinek eléréséhez. Valójában lekérdezéseket futtathat a WMI ellen, hogy aktuális élő információkat kapjon a rendszeréről. A Microsoft a teljes listát kínálja lekérdezések kategóriái tehet a rendszer ellen.





Bemutattuk, hogyan lehet a VBA segítségével számítógépes információkat bevinni az Excelbe, de ugyanezt megteheti egy egyszerű VB -parancsfájl használatával az Excel -en kívül.

Ebben a példában a rendszerrel kapcsolatban lekérdezzük a processzor adatait (család, gyártó és magok száma), az akkumulátor adatait (leírás és állapot) és a logikai lemezadatokat (név, szabad hely és teljes méret). Ezután az összes információt egy CSV -fájlba továbbítjuk a könnyű megtekintés érdekében.





Az első lépés a FileSystemObject beállítása, amelyet a CSV -fájlba történő kimenethez használ, és a fájl létrehozása:

Set oFSO = CreateObject('Scripting.FileSystemObject')
sFile1 = 'MyComputerInfo.csv'
Set oFile1 = oFSO.CreateTextFile(sFile1, 1)

A következő lépés a WMI lekérdezés beállítása és végrehajtása:

szoftverletöltő webhelyek ingyenes teljes verzió
strQuery = 'SELECT Family,Manufacturer,NumberOfCores FROM Win32_Processor'
Set colResults = GetObject('winmgmts://./root/cimv2').ExecQuery( strQuery )

Végül rendezze át az eredményeket, és adja ki az információkat a CSV -fájlba. Ha divatos akarsz lenni, akkor ezt előzetesen írd be pár sorral, hogy a kimeneti fájl jobban nézzen ki:

oFile1.WriteLine 'Processor Information'
oFile1.WriteLine '------'
For Each objResult In colResults
strResults = 'Family:,'+CStr(objResult.Family)
oFile1.WriteLine strResults
strResults = 'Manufacturer:,'+CStr(objResult.Manufacturer)
oFile1.WriteLine strResults
strResults = 'Number of Cores:,'+CStr(objResult.NumberOfCores)
oFile1.WriteLine strResults
Next

Ha most futtatja a kódot, így fog kinézni a kimenete:

A kód következő két szakaszában csak meg kell ismételnie és módosítania kell a lekérdezést, hogy további információkat keressen. Itt az akkumulátor információ lekérdezés:

oFile1.WriteLine ''
strQuery = 'SELECT Description,Status FROM Win32_Battery'
Set colResults = GetObject('winmgmts://./root/cimv2').ExecQuery( strQuery )
oFile1.WriteLine 'Battery Information'
oFile1.WriteLine '------'
For Each objResult In colResults
strResults = 'Status:,'+CStr(objResult.Description)
oFile1.WriteLine strResults
strResults = 'Description:,'+CStr(objResult.Status)
oFile1.WriteLine strResults
Next

És itt van a logikai lemez lekérdezés következő része:

oFile1.WriteLine ''
strQuery = 'Select Name, FreeSpace, Size from Win32_LogicalDisk'
Set colResults = GetObject('winmgmts://./root/cimv2').ExecQuery( strQuery )
oFile1.WriteLine 'Disk Information'
oFile1.WriteLine '------'
'Identify the Logical Disk Space
For Each objResult In colResults
strResults = 'Name:,'+CStr(objResult.Name)
oFile1.WriteLine strResults
strResults = 'Free Space:,'+CStr(objResult.FreeSpace)
oFile1.WriteLine strResults
strResults = 'Disk Size:,'+CStr(objResult.Size)
oFile1.WriteLine strResults
Next

Végül ne felejtse el bezárni a kódot a fájl bezárásával és az objektumok „Semmi” értékre állításával:

oFile1.Close
Set oFile1 = Nothing
set colResults = Nothing
strResults = ''

Tegye be ezt a kódot az új .WSF fájlba, futtassa, és így fog kinézni a kimenet:

Cserélje le a fenti lekérdezéseket bármely más számítógépes eszközre vagy szoftverre, amelyről információt szeretne kapni, és bármikor teljes egérkattintással kaphat teljes rendszerjelentést.

2. A szolgáltatások leállítása és indítása

Előfordul, hogy bizonyos szolgáltatások problémákat okoznak, és csak egy gyors újraindítást igényelnek, hogy ismét megfelelően működjenek. Ez különösen igaz igaz az informatikában amikor kénytelen olyan szerver szoftvert futtatni, amely néha kissé hibás.

Ha le akar borotválkozni egy percet a szolgáltatás újraindítási folyamatától, akkor csak tárolja a következő szkriptet egy kényelmes helyen. Megkéri, hogy írja be az újraindítani kívánt szolgáltatás nevét, majd pontosan ezt fogja tenni.

Mivel a szolgáltatások leállítása és indítása adminisztrátori jogosultságokat igényel, a szkript elején a következő kódot kell elhelyezni a szkript elején kiemelt kiváltságokat :

If Not WScript.Arguments.Named.Exists('elevate') Then
CreateObject('Shell.Application').ShellExecute WScript.FullName _
, '''' & WScript.ScriptFullName & ''' /elevate', '', 'runas', 1
WScript.Quit
End If

Ha ez megtörtént, adja hozzá a kód többi részét a felhasználói bevitel mezőjének futtatásához, indítsa el a parancsablakot, és küldje el a „net stop” és a „net start commands” parancsot:

Set cmdShell = CreateObject('WScript.Shell')
strServiceName=Inputbox('Inter Service to Stop','Input Required')
cmdShell.Run 'cmd.exe'
WScript.Sleep 1000
cmdShell.SendKeys 'net stop '+strServiceName
cmdShell.SendKeys '{Enter}'
WScript.Sleep 1000
cmdShell.SendKeys 'net start '+strServiceName
cmdShell.SendKeys '{Enter}'
WScript.Sleep 1000
cmdShell.SendKeys 'Exit'
cmdShell.SendKeys '{Enter}'

Ennyi az egész. Nem kell vadászni a szolgáltatások eszközére. Csak futtassa ezt a szkriptet, és állítsa le, és indítsa el a szolgáltatást másodpercek alatt.

3. Módosítsa a beállításjegyzék beállításait, az alapértelmezett rendszergazdai jelszót

A következő forgatókönyvvel két legyet fogunk megölni egy csapásra. Ez a szkript megmutatja, hogyan kell szerkessze a nyilvántartást VB scripttel. Ez egy olyan szkriptet is ad, amely lehetővé teszi az alapértelmezett Windows felhasználónév és jelszó beállítását a beállításjegyzék beállításainak szerkesztésével.

Így működik. Először is, mivel a rendszerleíró adatbázis szerkesztéséhez rendszergazdai jogosultságokra van szükség, magasabb szintű jogosultságokat kell beállítania a szkripthez:

If Not WScript.Arguments.Named.Exists('elevate') Then
CreateObject('Shell.Application').ShellExecute WScript.FullName _
, '''' & WScript.ScriptFullName & ''' /elevate', '', 'runas', 1
WScript.Quit
End If

Először futtasson két beviteli mezőt, és kérdezze meg a felhasználótól, hogy milyen felhasználónevet és jelszót használjon:

strUserName=Inputbox('Enter the default User Name','Input Required')
strPassword=Inputbox('Enter the default Password','Input Required')

Ezután állítsa be a shell objektumot, és írja be ezeket az értékeket a megfelelő rendszerleíró kulcsokba:

Set wshShell = CreateObject( 'WScript.Shell' )
wshShell.RegWrite 'HKLMSOFTWAREMicrosoftWindows NTCurrentVersionWinlogonDefaultUserName', strUserName, 'REG_SZ'
wshShell.RegWrite 'HKLMSOFTWAREMicrosoftWindows NTCurrentVersionWinlogonDefaultPassword', strPassword, 'REG_SZ'
Set wshShell = Nothing

És ez minden. A 'RegWrite' módszer lehetővé teszi, hogy bármilyen értéket írjon bármely rendszerleíró kulcsra VB Windows parancsfájl használatával. Csak a megfelelő utat kell tudnia.

Futtassa a szkriptet, és válaszoljon az utasításokra.

A megadott értékek közvetlenül bekerülnek a parancsfájlban beállított beállításjegyzékbeállításokba.

Játsszon a forgatókönyvvel, és módosítsa tetszése szerint. Bármilyen rendszerleíró kulcsot szerkeszthet, ezért legyen kreatív!

4. Állítsa vissza a hálózati kapcsolatot

A hálózati kapcsolat visszaállítása VB szkripteléssel már korábban is itt foglalkozott a MakeUseOf webhelyen. Ennek következő változata valójában kicsinyítve van, és sokkal egyszerűbben kivitelezhető. Ahelyett, hogy egyedi hálózati kártyákat kérne, visszaállítja az összes aktív kapcsolatot, amely remélhetőleg megoldja az esetleges hálózati problémákat.

A többi rendszergazdai jogosultságokat igénylő szkripthez hasonlóan az elején hozzá kell adni a szakaszt a magasabb jogosultságokhoz. Másolja ezt a kódot a fenti szkriptből.

Ezután hozza létre a WMI objektumot, és kérdezze le a rendszeren engedélyezett hálózati adapterek listájáról:

strComputer = '.'
Set objWMIService = GetObject('winmgmts:\' & strComputer & 'ootCIMV2')
Set colItems = objWMIService.ExecQuery( _
'SELECT * FROM Win32_NetworkAdapter Where NetEnabled = 'True'')

Végül lapozza át az összes engedélyezett adaptert, és állítsa vissza őket:

For Each objItem in colItems
objItem.Disable
WScript.Sleep 1000
objItem.Enable
Next

Ezzel mindenét visszaállítja aktív hálózati adapterek , amely gyakran a leggyorsabb módja a bosszantó hálózati problémák megoldásának. Tartsa kéznél ezt a szkriptet, és próbálja ki először, amikor lassú hálózat vagy egyéb furcsa hálózati probléma merül fel.

5. Ping eszközök vagy webhelyek

A kedvenc VB windows szkriptemet mentettem utoljára. Ez az, amit valójában ütemezett feladatként állítottam be az otthoni számítógépen, és futtassam naponta többször, csak hogy ellenőrizzem, aktív -e a webhelyem. A szkript e -mailt küld nekem, ha a webhely nem működik. Ugyanezzel a parancsfájllal figyelheti a hálózat fontos kiszolgálóit vagy számítógépeit, és bármikor e -mailt küldhet magának, amikor a szkript nem tudja pingelni az eszközt.

Először állítsa be a szkriptet a pingelni kívánt célhoz, hozza létre a shell objektumot, majd futtassa a ping parancsot.

strTarget = 'topsecretwriters.com'
Set WshShell = WScript.CreateObject('WScript.Shell')
Ping = WshShell.Run('ping -n 1 ' & strTarget, 0, True)

Használja a Kiválasztott eset utasítást a Ping eredmények futtatásához, és ennek megfelelően válaszoljon. Ha az eredmény nulla, akkor tudja, hogy a webhely (vagy szerver) online van, és nem kell semmit tennie. Ha 1 -et ad vissza, akkor a ping meghiúsult, és valamit tennie kell. Esetemben e -mailt küldök a Windows CDO objektum használatával:

Select Case Ping
Case 0
Case 1
Set objMessage = CreateObject('CDO.Message')
Set objConfig = CreateObject('CDO.Configuration')
objConfig.Load -1
Set Flds = objConfig.Fields
With Flds
.Item ('http://schemas.microsoft.com/cdo/configuration/smtpusessl') = True
.Item ('http://schemas.microsoft.com/cdo/configuration/smtpauthenticate')=1
.Item ('http://schemas.microsoft.com/cdo/configuration/sendusername')='xxxxxx@gmail.com'
.Item ('http://schemas.microsoft.com/cdo/configuration/sendpassword')='xxxxxxxxxxxxxxxxx'
.Item ('http://schemas.microsoft.com/cdo/configuration/smtpserver')='smtp.gmail.com'
.Item ('http://schemas.microsoft.com/cdo/configuration/sendusing')=2
.Item ('http://schemas.microsoft.com/cdo/configuration/smtpserverport')=465
.Update
End With
With objMessage
Set .Configuration = objConfig
.Subject = 'Your site is offline'
.From = 'me@mycomputer.com'
.To = 'xxxxxx@gmail.com'
.TextBody = 'Hey, your website is offline.'
.Send
End With
End Select

Amint a szkript fut, és nem tudja pingelni az eszközt vagy a webhelyet, azonnali üzenetet kap.

Gyors és egyszerű, és minden hatékony!

VB Windows parancsfájlok használata a számítógép vezérléséhez

Ez csak néhány példa néhány jó dologra, amelyeket a VB szkripteléssel tehet a számítógép használatának egyszerűsítése érdekében. Sok más dolgot is megtehet, mint például a VB és a Synctoy automatikus biztonsági mentése, a telnet parancsok automatizálása, vagy akár az alkalmazásablakok megnyitása és vezérlése.

Melyek azok a dolgok, amelyeket automatizált a számítógépen egy Windows szkripttel? A sajátját VB -vel írja, vagy más eszközt használ mint a PowerShell ?

Részvény Részvény Csipog Email Ezért adott ki figyelmeztetést az FBI a Hive Ransomware -re

Az FBI figyelmeztetést adott ki egy különösen csúnya ransomware -törzs miatt. Ezért kell különösen óvatosnak lennie a Hive ransomware -el szemben.

Olvassa tovább
Kapcsolódó témák
  • Programozás
  • Számítógépes automatizálás
  • Forgatókönyvírás
A szerzőről Ryan Dube(942 megjelent cikk)

Ryan villamosmérnöki diplomát szerzett. 13 évet dolgozott az automatizálási mérnöki területen, 5 évet az IT -n, most pedig alkalmazásmérnök. A MakeUseOf korábbi ügyvezető szerkesztője, felszólalt az adatok vizualizálásával foglalkozó országos konferenciákon, és szerepelt a nemzeti tévében és rádióban.

Továbbiak Ryan Dube -tól

Iratkozzon fel hírlevelünkre

Csatlakozz hírlevelünkhöz, ahol technikai tippeket, véleményeket, ingyenes e -könyveket és exkluzív ajánlatokat találsz!

Feliratkozáshoz kattintson ide