5 Skrip Windows VB yang Berguna untuk Mengautomasikan Penggunaan Komputer Anda

5 Skrip Windows VB yang Berguna untuk Mengautomasikan Penggunaan Komputer Anda

Sama ada anda seorang penganalisis IT atau pengguna komputer biasa, terdapat banyak tugas yang mungkin perlu anda lakukan dengan kerap di PC anda. Skrip VB diperkecilkan program Visual Basic yang berfungsi sebagai skrip Windows yang dapat melakukan apa saja dari mengumpulkan maklumat penting mengenai perkakasan komputer anda, hingga menghentikan dan memulakan perkhidmatan atau menetapkan semula kad rangkaian anda.





Anda boleh belajar bagaimana melakukan semua perkara itu dengan cara biasa, atau melakukannya dengan menggunakan fail kumpulan. Tetapi Skrip VB lebih baik daripada skrip kumpulan kerana mereka lebih fleksibel. Sekiranya anda menyimpan skrip berikut di tempat umum yang mudah dicapai apabila memerlukannya, anda dapat menyelesaikan tugas-tugas ini dalam masa yang singkat. Anda hanya mengklik dua kali skrip, menjawab permintaan, dan tugasnya selesai.





Lihat skrip Windows VB berikut dan jika anda melihat mana-mana yang ingin anda gunakan, salin dan tampal skrip tersebut ke Notepad atau alat nota pengekodan lain dan simpan sebagai fail WSF.





Sediakan Skrip Windows Anda

Setiap skrip yang diperincikan di bawah akan berjalan dengan hanya dua kali klik selagi anda menamakan fail dengan sambungan .WSF, dan anda juga melampirkan kod pada awal dengan:


Dan tutup kodnya dengan:



WScript.Quit

Ini memastikan bahawa Windows akan mengenali bahasa yang ditulis oleh skrip anda, dan memprosesnya dengan betul.

1. Gunakan Skrip Windows untuk Maklumat Komputer

Windows menawarkan sesuatu yang disebut WMI, atau Instrumentasi Pengurusan Windows, yang menyediakan skrip anda dengan antara muka untuk mengakses komponen sistem operasi. Anda sebenarnya boleh menjalankan pertanyaan terhadap WMI untuk mendapatkan maklumat langsung terkini mengenai sistem anda. Microsoft menawarkan senarai lengkap semua kategori pertanyaan anda boleh membuat menentang sistem.





Kami telah membahas bagaimana menggunakan VBA untuk menarik maklumat komputer ke Excel, tetapi anda boleh melakukan perkara yang sama dengan menggunakan skrip VB ringkas di luar Excel.

Dalam contoh ini, kita akan menanyakan sistem untuk maklumat pemproses (keluarga, pengeluar, dan bilangan teras), maklumat bateri (keterangan dan status), dan maklumat cakera logik (nama, ruang kosong yang tinggal, dan ukuran keseluruhan). Kemudian kami akan mengeluarkan semua maklumat ini ke fail CSV untuk dilihat dengan mudah.





Langkah pertama adalah menyediakan FileSystemObject yang akan anda gunakan untuk mengeluarkan ke fail CSV, dan membuat fail:

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

Langkah seterusnya adalah menyiapkan pertanyaan WMI dan melaksanakannya:

cara membuat kulit rainmeter
strQuery = 'SELECT Family,Manufacturer,NumberOfCores FROM Win32_Processor'
Set colResults = GetObject('winmgmts://./root/cimv2').ExecQuery( strQuery )

Akhirnya, susun hasilnya dan keluarkan maklumat ke fail CSV. Sekiranya anda ingin menjadi mewah, awalkan ini dengan beberapa baris untuk membantu menjadikan fail output anda kelihatan lebih baik:

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

Sekiranya anda menjalankan kod anda sekarang, ini adalah seperti apa output anda:

Untuk dua bahagian kod anda yang seterusnya, anda hanya akan mengulang dan menukar pertanyaan untuk mencari maklumat tambahan. Inilah pertanyaan maklumat bateri:

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

Dan inilah bahagian seterusnya untuk pertanyaan cakera logik:

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

Akhirnya, ingat untuk menutup kod dengan menutup fail dan menetapkan objek ke 'Tidak Ada':

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

Masukkan semua kod itu ke dalam fail .WSF baru anda, jalankan dan inilah output anda akan kelihatan seperti:

Cukup tukar pertanyaan di atas untuk mana-mana peranti komputer atau perisian lain yang ingin anda dapatkan maklumatnya, dan anda boleh mendapatkan laporan sistem penuh bila-bila masa yang anda mahukan hanya dengan satu klik tetikus.

2. Berhenti dan Mulakan Perkhidmatan

Akan ada ketikanya perkhidmatan tertentu mempunyai masalah, dan hanya memerlukan restart cepat untuk dapat berjalan dengan baik lagi. Ini terutamanya benar dalam IT apabila anda terpaksa menjalankan perisian pelayan yang kadang-kadang sedikit buggy.

Sekiranya anda ingin mencukur satu minit atau lebih dari proses memulakan semula perkhidmatan, simpan skrip berikut di tempat yang sesuai. Ini akan meminta anda untuk menaip nama perkhidmatan yang ingin anda mulakan semula, dan kemudian ia akan melakukannya dengan betul.

Oleh kerana menghentikan dan memulakan perkhidmatan memerlukan hak istimewa pentadbiran, anda perlu meletakkan kod berikut pada permulaan skrip anda untuk memberikan skrip anda hak istimewa yang tinggi :

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

Setelah ini selesai, tambahkan selebihnya kod untuk menjalankan kotak input untuk input pengguna, lancarkan tetingkap perintah, dan kirimkan 'net stop' dan 'net start command':

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}'

Itu sahaja yang ada. Tidak perlu mencari alat perkhidmatan. Jalankan skrip ini dan hentikan dan mulakan perkhidmatan dalam beberapa saat.

3. Ubah Tetapan Pendaftaran, Kata Laluan Pentadbiran Lalai

Dengan skrip berikut, kita akan membunuh dua burung dengan satu batu. Skrip ini akan menunjukkan kepada anda bagaimana edit pendaftaran dengan skrip VB. Ini juga akan memberi anda skrip yang akan membolehkan anda menetapkan nama pengguna dan kata laluan Windows lalai dengan mengedit tetapan pendaftaran tersebut.

Inilah cara ia berfungsi. Pertama, kerana mengedit pendaftaran memerlukan hak pentadbir, anda perlu menyediakan hak istimewa yang tinggi untuk skrip anda:

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

Pertama, jalankan dua kotak input untuk bertanya kepada pengguna apa nama pengguna dan kata laluan yang akan digunakan:

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

Seterusnya, sediakan objek shell, dan tulis nilai-nilai tersebut ke kunci pendaftaran yang sesuai:

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

Dan hanya itu sahaja. Kaedah 'RegWrite' membolehkan anda menulis nilai apa pun ke kunci pendaftaran menggunakan skrip Windows VB. Yang mesti anda ketahui adalah jalan yang sesuai.

Jalankan skrip dan jawab arahannya.

Nilai yang anda masukkan akan dimasukkan terus ke tetapan pendaftaran yang telah anda tetapkan dalam skrip.

Main-main dengan skrip dan ubah mengikut keinginan anda. Anda boleh mengedit kunci pendaftaran yang anda suka, jadi kreatif!

4. Tetapkan semula Sambungan Rangkaian Anda

Menetapkan semula sambungan rangkaian anda menggunakan skrip VB adalah sesuatu yang telah kami bahas sebelum ini di MakeUseOf. Versi berikut ini sebenarnya diperkecil dan lebih mudah dilaksanakan. Daripada meminta kad rangkaian individu, ia menetapkan semula semua sambungan aktif anda yang diharapkan dapat menyelesaikan masalah rangkaian yang mungkin anda hadapi.

Seperti skrip lain yang memerlukan hak pentadbir, anda perlu menambahkan bahagian pada permulaan untuk mendapatkan hak istimewa yang lebih tinggi. Salin kod itu dari skrip di atas.

Seterusnya, buat objek WMI dan tanya untuk senarai penyesuai rangkaian yang diaktifkan pada sistem anda:

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

Akhirnya, gelung semua penyesuai yang diaktifkan dan tetapkan semula:

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

Ini akan menetapkan semula semua anda penyesuai rangkaian aktif , yang selalunya merupakan kaedah terpantas untuk menyelesaikan masalah rangkaian yang menjengkelkan. Pastikan skrip ini berguna dan cuba terlebih dahulu bila-bila masa anda mempunyai rangkaian perlahan atau masalah rangkaian pelik yang lain.

5. Peranti Ping atau Laman Web

Saya telah menyimpan skrip windows VB kegemaran saya buat kali terakhir. Inilah yang sebenarnya saya atur sebagai tugas berjadual di komputer rumah saya dan menjalankannya beberapa kali sehari hanya untuk memeriksa sama ada laman web saya aktif. Saya mempunyai skrip e-mel kepada saya jika laman web ini tidak berfungsi. Anda boleh menggunakan skrip yang sama untuk memantau pelayan atau komputer penting di rangkaian anda dan menghantar e-mel kepada diri anda setiap kali skrip anda tidak dapat melakukan ping pada peranti.

Pertama, sediakan skrip untuk sasaran yang ingin anda ping, buat objek shell, dan kemudian jalankan perintah ping.

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

Gunakan pernyataan Select Case untuk menjalankan keputusan Ping dan bertindak balas dengan sewajarnya. Sekiranya keputusan kembali menjadi sifar, maka anda tahu laman web (atau pelayan) dalam talian dan anda tidak perlu melakukan apa-apa. Sekiranya mengembalikan '1' maka ping gagal dan anda perlu melakukan sesuatu. Dalam kes saya, saya menghantar e-mel menggunakan objek Windows CDO:

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

Setelah skrip berjalan dan tidak dapat melakukan ping pada peranti atau laman web, anda akan mendapat mesej segera.

Ia cepat dan mudah, dan setiap yang cekap!

Menggunakan Skrip Windows VB untuk Mengawal Komputer Anda

Ini hanyalah beberapa contoh beberapa perkara menarik yang dapat anda lakukan dengan skrip VB untuk melancarkan penggunaan komputer anda. Terdapat banyak perkara lain yang boleh anda lakukan seperti sandaran automatik dengan VB dan Synctoy, automatik perintah telnet, atau bahkan membuka dan mengawal tingkap aplikasi.

Apakah beberapa perkara yang anda automatikkan pada komputer anda dengan skrip Windows? Adakah anda menulis sendiri menggunakan VB, atau menggunakan alat lain seperti PowerShell ?

Berkongsi Berkongsi Tweet E-mel Inilah Sebabnya FBI Mengeluarkan Amaran untuk Hive Ransomware

FBI mengeluarkan amaran mengenai jenis ransomware yang sangat jahat. Inilah sebabnya mengapa anda perlu berhati-hati terhadap Hive ransomware.

Baca Seterusnya
Topik-topik yang berkaitan
  • Pengaturcaraan
  • Automasi Komputer
  • Skrip
Mengenai Pengarang Ryan Dube(942 Artikel Diterbitkan)

Ryan mempunyai ijazah BSc dalam Kejuruteraan Elektrik. Dia bekerja 13 tahun dalam kejuruteraan automasi, 5 tahun dalam bidang IT, dan sekarang adalah Jurutera Aplikasi. Bekas Editor Urusan MakeUseOf, dia bercakap di persidangan nasional mengenai Visualisasi Data dan telah dipaparkan di TV nasional dan radio.

Lagi Dari Ryan Dube

Langgan buletin kami

Sertailah buletin kami untuk mendapatkan petua, ulasan, ebook percuma, dan tawaran eksklusif!

Klik di sini untuk melanggan