5 สคริปต์ VB Windows ที่มีประโยชน์เพื่อทำให้การใช้คอมพิวเตอร์ของคุณเป็นไปโดยอัตโนมัติ

5 สคริปต์ VB Windows ที่มีประโยชน์เพื่อทำให้การใช้คอมพิวเตอร์ของคุณเป็นไปโดยอัตโนมัติ

ไม่ว่าคุณจะเป็นนักวิเคราะห์ไอทีหรือผู้ใช้คอมพิวเตอร์ทั่วไป มีหลายงานที่คุณอาจต้องทำบ่อยๆ บนพีซีของคุณ สคริปต์ VB ถูกย่อขนาดลงโปรแกรม Visual Basic ที่ทำหน้าที่เป็นสคริปต์ Windows ที่สามารถทำทุกอย่างได้ตั้งแต่ดึงข้อมูลสำคัญเกี่ยวกับฮาร์ดแวร์คอมพิวเตอร์ของคุณ ไปจนถึงการหยุดและเริ่มต้นบริการ หรือรีเซ็ตการ์ดเครือข่ายของคุณ





เป็นไปได้ที่จะเรียนรู้วิธีการทำสิ่งเหล่านั้นทั้งหมดด้วยวิธีปกติ หรือทำโดยใช้แบตช์ไฟล์ แต่ สคริปต์ VB ดีกว่าสคริปต์แบทช์ เพราะมีความยืดหยุ่นมากกว่า หากคุณจัดเก็บสคริปต์ต่อไปนี้ในที่ทั่วไปซึ่งเข้าถึงได้อย่างรวดเร็วเมื่อคุณต้องการ คุณสามารถทำงานเหล่านี้ให้สำเร็จได้ในเวลาเพียงเสี้ยววินาที คุณเพียงแค่ดับเบิลคลิกที่สคริปต์ ตอบรับพร้อมท์ และงานก็เสร็จสิ้น





ดูสคริปต์ VB Windows ต่อไปนี้ และหากคุณเห็นสคริปต์ใดที่คุณต้องการใช้ ให้คัดลอกและวางสคริปต์ลงใน แผ่นจดบันทึกหรือเครื่องมือบันทึกการเข้ารหัสอื่น ๆ และบันทึกเป็นไฟล์ WSF





เตรียม Windows Scripts ของคุณ

สคริปต์แต่ละรายการที่มีรายละเอียดด้านล่างจะทำงานด้วยการดับเบิลคลิกตราบใดที่คุณตั้งชื่อไฟล์ด้วยนามสกุล .WSF และคุณได้ปิดโค้ดไว้ตอนต้นด้วย:


และปิดรหัสด้วย:



WScript.Quit

เพื่อให้แน่ใจว่า Windows จะรู้จักภาษาที่สคริปต์ของคุณเขียน และดำเนินการอย่างถูกต้อง

1. ใช้ Windows Scripts สำหรับข้อมูลคอมพิวเตอร์

Windows เสนอสิ่งที่เรียกว่า WMI หรือ Windows Management Instrumentation ซึ่งให้สคริปต์ของคุณพร้อมอินเทอร์เฟซเพื่อเข้าถึงส่วนประกอบของระบบปฏิบัติการ คุณสามารถเรียกใช้แบบสอบถามกับ WMI เพื่อรับข้อมูลปัจจุบันเกี่ยวกับระบบของคุณ Microsoft ขอเสนอรายการทั้งหมดของ หมวดหมู่ของแบบสอบถาม คุณสามารถต่อต้านระบบได้





เราได้กล่าวถึงวิธีการใช้ VBA เพื่อดึงข้อมูลคอมพิวเตอร์ลงใน Excel แล้ว แต่คุณสามารถทำสิ่งเดียวกันนี้ได้โดยใช้สคริปต์ VB ธรรมดานอก Excel

ในตัวอย่างนี้ เราจะค้นหาระบบสำหรับข้อมูลโปรเซสเซอร์ (ตระกูล ผู้ผลิต และจำนวนคอร์) ข้อมูลแบตเตอรี่ (คำอธิบายและสถานะ) และข้อมูลดิสก์เชิงตรรกะ (ชื่อ พื้นที่ว่างที่เหลืออยู่ และขนาดโดยรวม) จากนั้นเราจะส่งออกข้อมูลทั้งหมดนี้เป็นไฟล์ CSV เพื่อให้ดูได้ง่าย





ขั้นตอนแรกคือการตั้งค่า FileSystemObject ที่คุณจะใช้เพื่อส่งออกไปยังไฟล์ CSV และสร้างไฟล์:

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

ขั้นตอนต่อไปคือการตั้งค่าการสืบค้น WMI และดำเนินการ:

สิ่งที่ต้องทำเมื่อคุณเบื่อออนไลน์
strQuery = 'SELECT Family,Manufacturer,NumberOfCores FROM Win32_Processor'
Set colResults = GetObject('winmgmts://./root/cimv2').ExecQuery( strQuery )

สุดท้าย เรียงลำดับผลลัพธ์และส่งออกข้อมูลไปยังไฟล์ CSV หากคุณต้องการเป็นแฟนซี ให้นำหน้าด้วยสองสามบรรทัดเพื่อช่วยให้ไฟล์เอาต์พุตของคุณดูดีขึ้น:

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

หากคุณรันโค้ดของคุณตอนนี้ ผลลัพธ์ของคุณจะเป็นดังนี้:

สำหรับสองส่วนถัดไปของโค้ด คุณจะต้องทำซ้ำและเปลี่ยนการสืบค้นเพื่อค้นหาข้อมูลเพิ่มเติม นี่คือแบบสอบถามข้อมูลแบตเตอรี่:

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

และนี่คือส่วนถัดไปสำหรับการสืบค้นดิสก์แบบลอจิคัล:

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

สุดท้าย อย่าลืมปิดโค้ดโดยปิดไฟล์และตั้งค่าวัตถุเป็น 'Nothing':

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

ใส่รหัสทั้งหมดนั้นลงในไฟล์ .WSF ใหม่ของคุณ รันมัน และนี่คือสิ่งที่ผลลัพธ์ของคุณจะออกมา:

เพียงสลับข้อความค้นหาด้านบนสำหรับอุปกรณ์คอมพิวเตอร์หรือซอฟต์แวร์อื่นๆ ที่คุณต้องการรับข้อมูล และคุณสามารถรับรายงานระบบฉบับสมบูรณ์ได้ทุกเมื่อที่ต้องการเพียงแค่คลิกเมาส์

2. หยุดและเริ่มบริการ

จะมีบางครั้งที่บริการบางอย่างมีปัญหา และจำเป็นต้องรีสตาร์ทอย่างรวดเร็วเพื่อให้ทำงานได้อย่างถูกต้องอีกครั้ง โดยเฉพาะอย่างยิ่ง จริงในไอที เมื่อคุณถูกบังคับให้เรียกใช้ซอฟต์แวร์เซิร์ฟเวอร์ที่บางครั้งมีปัญหาเล็กน้อย

ถ้าคุณต้องการโกนนาทีหรือดังนั้นออกจากกระบวนการเริ่มบริการใหม่ เพียงเก็บสคริปต์ต่อไปนี้ในที่ที่สะดวก ระบบจะแจ้งให้คุณพิมพ์ชื่อบริการที่คุณต้องการเริ่มต้นใหม่ จากนั้นจึงดำเนินการตามนั้น

เนื่องจากบริการหยุดและเริ่มต้นต้องใช้สิทธิ์ของผู้ดูแลระบบ คุณจึงต้องวางรหัสต่อไปนี้ที่จุดเริ่มต้นของสคริปต์เพื่อให้สคริปต์ของคุณ สิทธิพิเศษสูง :

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

เมื่อเสร็จแล้ว ให้เพิ่มโค้ดที่เหลือเพื่อเรียกใช้กล่องอินพุตสำหรับการป้อนข้อมูลของผู้ใช้ เปิดหน้าต่างคำสั่ง และส่ง 'net stop' และ 'net start commands':

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

นั่นคือทั้งหมดที่มีให้ ไม่จำเป็นต้องตามล่าหาเครื่องมือบริการ เพียงเรียกใช้สคริปต์นี้และหยุดและเริ่มบริการใด ๆ ในไม่กี่วินาที

3. เปลี่ยนการตั้งค่ารีจิสทรี รหัสผ่านผู้ดูแลระบบเริ่มต้น

ด้วยสคริปต์ต่อไปนี้ เราจะฆ่านกสองตัวด้วยหินก้อนเดียว สคริปต์นี้จะแสดงวิธีการ แก้ไขรีจิสทรี ด้วยสคริปต์ VB นอกจากนี้ยังให้สคริปต์ที่จะช่วยให้คุณตั้งค่าชื่อผู้ใช้และรหัสผ่าน Windows เริ่มต้นโดยแก้ไขการตั้งค่ารีจิสทรีเหล่านั้น

นี่คือวิธีการทำงาน ขั้นแรก เนื่องจากการแก้ไขรีจิสทรีต้องใช้สิทธิ์ของผู้ดูแลระบบ คุณจะต้องตั้งค่าสิทธิ์ระดับสูงสำหรับสคริปต์ของคุณ:

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

ขั้นแรกให้เรียกใช้กล่องอินพุตสองกล่องเพื่อถามผู้ใช้ว่าจะใช้ชื่อผู้ใช้และรหัสผ่านอะไร:

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

ถัดไป ตั้งค่าเชลล์อ็อบเจ็กต์ และเขียนค่าเหล่านั้นลงในรีจิสตรีคีย์ที่เหมาะสม:

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

และนั่นคือทั้งหมดที่มีให้ วิธี 'RegWrite' ให้คุณเขียนค่าใดๆ ลงในรีจิสตรีคีย์โดยใช้สคริปต์ VB Windows สิ่งที่คุณต้องรู้คือเส้นทางที่เหมาะสม

เรียกใช้สคริปต์และตอบข้อความแจ้ง

ค่าที่คุณป้อนจะถูกแทรกลงในการตั้งค่ารีจิสทรีที่คุณตั้งค่าไว้ในสคริปต์

เล่นกับสคริปต์และปรับแต่งตามที่คุณต้องการ คุณสามารถแก้ไขรีจิสตรีคีย์ที่คุณชอบได้ ดังนั้นจงสร้างสรรค์!

4. รีเซ็ตการเชื่อมต่อเครือข่ายของคุณ

การรีเซ็ตการเชื่อมต่อเครือข่ายของคุณโดยใช้สคริปต์ VB เป็นสิ่งที่เราได้กล่าวถึงก่อนหน้านี้ที่ MakeUseOf เวอร์ชันต่อไปนี้ถูกลดขนาดลงจริงและนำไปใช้ได้ง่ายกว่ามาก แทนที่จะถามหาการ์ดเครือข่ายแต่ละรายการ ระบบจะรีเซ็ตการเชื่อมต่อที่ใช้งานอยู่ทั้งหมดของคุณ ซึ่งหวังว่าจะสามารถแก้ไขปัญหาเครือข่ายใดๆ ที่คุณอาจมีได้

เช่นเดียวกับสคริปต์อื่นๆ ที่ต้องการสิทธิ์ของผู้ดูแลระบบ คุณจะต้องเพิ่มส่วนนี้ในตอนเริ่มต้นเพื่อยกระดับสิทธิ์ คัดลอกโค้ดนั้นจากสคริปต์ด้านบน

ถัดไป สร้างอ็อบเจ็กต์ WMI และค้นหาอ็อบเจ็กต์สำหรับรายการอะแดปเตอร์เครือข่ายที่เปิดใช้งานบนระบบของคุณ:

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

สุดท้าย วนรอบอแด็ปเตอร์ที่เปิดใช้งานทั้งหมดแล้วรีเซ็ต:

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

การดำเนินการนี้จะรีเซ็ต . ของคุณทั้งหมด อะแดปเตอร์เครือข่ายที่ใช้งานอยู่ ซึ่งมักจะเป็นวิธีที่เร็วที่สุดในการแก้ไขปัญหาเครือข่ายที่น่ารำคาญ เก็บสคริปต์นี้ไว้ใกล้มือและลองใช้ก่อนทุกครั้งที่คุณมีเครือข่ายที่ช้าหรือปัญหาเครือข่ายแปลกๆ อื่นๆ

5. อุปกรณ์ปิงหรือเว็บไซต์

ฉันได้บันทึกสคริปต์ VB windows ที่ฉันโปรดปรานไว้เป็นครั้งสุดท้าย นี่เป็นงานที่ฉันตั้งค่าเป็นงานตามกำหนดเวลาในคอมพิวเตอร์ที่บ้านของฉัน และให้ทำงานหลายครั้งต่อวันเพื่อตรวจสอบว่าเว็บไซต์ของฉันทำงานอยู่หรือไม่ ฉันมีสคริปต์ส่งอีเมลถึงฉันหากไซต์ไม่ทำงาน คุณสามารถใช้สคริปต์เดียวกันนี้เพื่อตรวจสอบเซิร์ฟเวอร์หรือคอมพิวเตอร์ที่สำคัญในเครือข่ายของคุณและส่งอีเมลถึงตัวเองได้ทุกเมื่อที่สคริปต์ของคุณไม่สามารถ ping อุปกรณ์ได้

ขั้นแรก ตั้งค่าสคริปต์สำหรับเป้าหมายที่คุณต้องการ ping สร้างเชลล์อ็อบเจ็กต์ จากนั้นรันคำสั่ง ping

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

ใช้คำสั่ง Select Case เพื่อรันผ่านผลลัพธ์ Ping และตอบสนองตามนั้น หากผลลัพธ์กลับมาเป็นศูนย์ แสดงว่าคุณรู้ว่าไซต์ (หรือเซิร์ฟเวอร์) ออนไลน์อยู่ และคุณไม่จำเป็นต้องดำเนินการใดๆ หากส่งคืน '1' แสดงว่า ping ล้มเหลวและคุณต้องทำบางอย่าง ในกรณีของฉัน ฉันส่งอีเมลโดยใช้วัตถุ 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

เมื่อสคริปต์ทำงานและไม่สามารถ ping อุปกรณ์หรือเว็บไซต์ได้ คุณจะได้รับข้อความโต้ตอบแบบทันที

ง่ายและรวดเร็วและมีประสิทธิภาพทุกอย่าง!

การใช้สคริปต์ Windows VB เพื่อควบคุมคอมพิวเตอร์ของคุณ

นี่เป็นเพียงตัวอย่างเล็กๆ น้อยๆ ของสิ่งดีๆ บางอย่างที่คุณสามารถทำได้ด้วยการเขียนสคริปต์ VB เพื่อปรับปรุงการใช้งานคอมพิวเตอร์ของคุณ มีหลายอย่างที่คุณทำได้ เช่น การสำรองข้อมูลอัตโนมัติด้วย VB และ Synctoy คำสั่ง telnet อัตโนมัติ หรือแม้แต่เปิดและควบคุมหน้าต่างแอปพลิเคชัน

สิ่งที่คุณทำให้คอมพิวเตอร์ของคุณทำงานโดยอัตโนมัติด้วยสคริปต์ Windows มีอะไรบ้าง คุณเขียนของคุณโดยใช้ VB หรือใช้เครื่องมืออื่น ๆ เช่น PowerShell ?

แบ่งปัน แบ่งปัน ทวีต อีเมล นี่คือเหตุผลที่ FBI ออกคำเตือนสำหรับ Hive Ransomware

FBI ได้ออกคำเตือนเกี่ยวกับ ransomware ที่น่ารังเกียจโดยเฉพาะ นี่คือเหตุผลที่คุณต้องระวัง Hive ransomware เป็นพิเศษ

อ่านต่อไป
หัวข้อที่เกี่ยวข้อง
  • การเขียนโปรแกรม
  • ระบบอัตโนมัติของคอมพิวเตอร์
  • การเขียนสคริปต์
เกี่ยวกับผู้เขียน Ryan Dube(เผยแพร่บทความ 942 ฉบับ)

Ryan สำเร็จการศึกษาระดับปริญญาตรีสาขาวิศวกรรมไฟฟ้า เขาทำงาน 13 ปีในด้านวิศวกรรมระบบอัตโนมัติ 5 ปีในด้านไอที และปัจจุบันเป็นวิศวกรด้านแอป อดีตผู้จัดการบรรณาธิการของ MakeUseOf เขาพูดในการประชุมระดับชาติเรื่อง Data Visualization และได้รับการนำเสนอในโทรทัศน์และวิทยุแห่งชาติ

เพิ่มเติมจาก Ryan Dube

สมัครรับจดหมายข่าวของเรา

เข้าร่วมจดหมายข่าวของเราสำหรับเคล็ดลับทางเทคนิค บทวิจารณ์ eBook ฟรี และดีลพิเศษ!

คลิกที่นี่เพื่อสมัครสมาชิก