5 VB Windows Scripts hữu ích để tự động hóa việc sử dụng máy tính của bạn

5 VB Windows Scripts hữu ích để tự động hóa việc sử dụng máy tính của bạn

Cho dù bạn là một nhà phân tích CNTT hay một người dùng máy tính thông thường, có rất nhiều tác vụ bạn có thể cần phải thực hiện thường xuyên trên PC của mình. VB Scripts được thu nhỏ các chương trình Visual Basic đóng vai trò là tập lệnh Windows có thể thực hiện bất cứ điều gì từ việc thu thập thông tin quan trọng về phần cứng máy tính của bạn, đến việc dừng và khởi động các dịch vụ hoặc đặt lại card mạng của bạn.





Có thể học cách thực hiện tất cả những việc riêng lẻ đó theo cách bình thường hoặc thực hiện chúng bằng cách sử dụng các tệp hàng loạt. Nhưng Tập lệnh VB tốt hơn tập lệnh hàng loạt vì chúng linh hoạt hơn. Nếu bạn lưu trữ các tập lệnh sau ở một nơi phổ biến để nhanh chóng sử dụng khi bạn cần, bạn có thể hoàn thành các tác vụ này trong một khoảng thời gian ngắn. Bạn chỉ cần nhấp đúp vào tập lệnh, trả lời một lời nhắc và nhiệm vụ đã hoàn thành.





Hãy xem các tập lệnh VB Windows sau đây và nếu bạn thấy bất kỳ tập lệnh nào bạn muốn sử dụng, chỉ cần sao chép và dán tập lệnh vào Notepad hoặc công cụ ghi chú mã hóa khác và lưu nó dưới dạng tệp WSF.





Chuẩn bị tập lệnh Windows của bạn

Mỗi tập lệnh trong số các tập lệnh được trình bày chi tiết bên dưới sẽ chạy chỉ với một cú nhấp đúp miễn là bạn đã đặt tên tệp bằng phần mở rộng .WSF và bạn cũng đã đính kèm mã ở đầu bằng:


Và đóng mã bằng:



WScript.Quit

Điều này đảm bảo rằng Windows sẽ nhận ra ngôn ngữ mà tập lệnh của bạn được viết và xử lý nó đúng cách.

1. Sử dụng Tập lệnh Windows cho Thông tin Máy tính

Windows cung cấp một thứ gọi là WMI, hoặc Windows Management Instrumentation, cung cấp cho tập lệnh của bạn một giao diện để truy cập các thành phần của hệ điều hành. Bạn thực sự có thể chạy các truy vấn đối với WMI để nhận thông tin trực tiếp hiện tại về hệ thống của bạn. Microsoft cung cấp danh sách đầy đủ tất cả các danh mục truy vấn bạn có thể thực hiện chống lại hệ thống.





Chúng tôi đã trình bày cách sử dụng VBA để kéo thông tin máy tính vào Excel, nhưng bạn có thể thực hiện điều này tương tự bằng cách sử dụng tập lệnh VB đơn giản bên ngoài Excel.

Trong ví dụ này, chúng ta sẽ truy vấn hệ thống để biết thông tin về bộ xử lý (họ, nhà sản xuất và số lõi), thông tin về pin (mô tả và trạng thái) và thông tin logic của đĩa (tên, dung lượng trống còn lại và kích thước tổng thể). Sau đó, chúng tôi sẽ xuất tất cả thông tin này ra tệp CSV để dễ dàng xem.





Bước đầu tiên là thiết lập FileSystemObject mà bạn sẽ sử dụng để xuất ra tệp CSV và tạo tệp:

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

Bước tiếp theo là thiết lập truy vấn WMI và thực thi nó:

cách đặt iso trên usb
strQuery = 'SELECT Family,Manufacturer,NumberOfCores FROM Win32_Processor'
Set colResults = GetObject('winmgmts://./root/cimv2').ExecQuery( strQuery )

Cuối cùng, sắp xếp thông qua các kết quả và xuất thông tin ra tệp CSV. Nếu bạn muốn lạ mắt, hãy mở đầu phần này bằng một vài dòng để giúp làm cho tệp đầu ra của bạn trông đẹp hơn:

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

Nếu bạn chạy mã của mình ngay bây giờ, đây là kết quả đầu ra của bạn sẽ như thế nào:

Đối với hai phần tiếp theo của mã, bạn chỉ cần lặp lại và thay đổi truy vấn để tìm kiếm thông tin bổ sung. Đây là câu hỏi về thông tin pin:

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

Và đây là phần tiếp theo cho truy vấn đĩa logic:

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

Cuối cùng, hãy nhớ đóng mã bằng cách đóng tệp và đặt các đối tượng thành 'Không có gì':

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

Đặt tất cả mã đó vào tệp .WSF mới của bạn, chạy nó và đây là kết quả đầu ra của bạn sẽ như thế nào:

Chỉ cần hoán đổi các truy vấn ở trên cho bất kỳ thiết bị máy tính hoặc phần mềm nào khác mà bạn muốn lấy thông tin và bạn có thể nhận được báo cáo hệ thống đầy đủ bất kỳ lúc nào bạn muốn chỉ với một cú nhấp chuột.

2. Dừng và Bắt đầu Dịch vụ

Sẽ có lúc một số dịch vụ nhất định gặp sự cố và chỉ cần khởi động lại nhanh chóng để chạy lại bình thường. Điều này đặc biệt đúng trong CNTT khi bạn buộc phải chạy phần mềm máy chủ mà đôi khi có một chút lỗi.

Nếu bạn muốn bỏ qua một phút hoặc lâu hơn quá trình khởi động lại dịch vụ, chỉ cần lưu tập lệnh sau ở một nơi thuận tiện. Nó sẽ nhắc bạn nhập tên của dịch vụ bạn muốn khởi động lại và sau đó nó sẽ thực hiện chính xác điều đó.

Vì việc dừng và bắt đầu dịch vụ yêu cầu đặc quyền quản trị, bạn cần đặt mã sau ở đầu tập lệnh để cung cấp cho tập lệnh của bạn đặc quyền nâng cao :

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

Khi điều này được thực hiện xong, hãy thêm phần còn lại của mã để chạy hộp nhập cho người dùng nhập, khởi chạy cửa sổ lệnh và gửi cho nó 'lệnh dừng thực' và 'lệnh bắt đầu thực':

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

Thats tất cả để có nó. Không cần phải tìm kiếm công cụ dịch vụ. Chỉ cần chạy tập lệnh này và dừng và bắt đầu bất kỳ dịch vụ nào trong vài giây.

3. Thay đổi cài đặt đăng ký, mật khẩu quản trị mặc định

Với kịch bản sau, chúng ta sẽ giết hai con chim bằng một viên đá. Tập lệnh này sẽ chỉ cho bạn cách chỉnh sửa sổ đăng ký với một tập lệnh VB. Nó cũng sẽ cung cấp cho bạn một tập lệnh cho phép bạn đặt tên người dùng và mật khẩu mặc định của Windows bằng cách chỉnh sửa các cài đặt đăng ký đó.

Đây là cách nó hoạt động. Đầu tiên, vì việc chỉnh sửa sổ đăng ký yêu cầu quyền quản trị, bạn sẽ cần thiết lập các đặc quyền nâng cao cho tập lệnh của mình:

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

Đầu tiên, hãy chạy hai hộp nhập liệu để hỏi người dùng sử dụng tên người dùng và mật khẩu nào:

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

Tiếp theo, thiết lập đối tượng shell và ghi các giá trị đó vào các khóa đăng ký thích hợp:

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

Và đó là tất cả những gì cần làm. Phương thức 'RegWrite' cho phép bạn ghi bất kỳ giá trị nào vào bất kỳ khóa đăng ký nào bằng tập lệnh VB Windows. Tất cả những gì bạn phải biết là con đường thích hợp.

Chạy script và trả lời lời nhắc.

Các giá trị bạn nhập sẽ được chèn ngay vào cài đặt đăng ký mà bạn đã thiết lập trong tập lệnh.

Chơi xung quanh với kịch bản và chỉnh sửa nó theo ý thích của bạn. Bạn có thể chỉnh sửa bất kỳ khóa đăng ký nào bạn thích, vì vậy hãy sáng tạo!

4. Đặt lại kết nối mạng của bạn

Đặt lại kết nối mạng của bạn bằng cách sử dụng VB scripting là điều mà chúng tôi đã đề cập trước đây tại MakeUseOf. Phiên bản sau của điều này thực sự được thu nhỏ và thực hiện đơn giản hơn nhiều. Thay vì nhắc nhở các card mạng riêng lẻ, nó sẽ đặt lại tất cả các kết nối đang hoạt động của bạn, hy vọng sẽ giải quyết được bất kỳ sự cố mạng nào mà bạn có thể gặp phải.

Giống như các tập lệnh khác cần quyền quản trị, bạn sẽ cần thêm phần này vào đầu để có các đặc quyền nâng cao. Sao chép mã đó từ tập lệnh ở trên.

Tiếp theo, tạo đối tượng WMI và truy vấn nó để biết danh sách các bộ điều hợp mạng đã bật trên hệ thống của bạn:

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

Cuối cùng, lặp qua tất cả các bộ điều hợp đã bật và đặt lại chúng:

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

Điều này sẽ đặt lại tất cả bộ điều hợp mạng hoạt động , đây thường là cách nhanh nhất để giải quyết các sự cố mạng gây phiền nhiễu. Hãy giữ tập lệnh này sẵn sàng và thử nó trước bất cứ khi nào bạn gặp sự cố mạng chậm hoặc các sự cố mạng lạ khác.

5. Thiết bị Ping hoặc Trang web

Tôi đã lưu tập lệnh cửa sổ VB yêu thích của mình cho lần cuối cùng. Đây là một công việc mà tôi thực sự đã thiết lập như một tác vụ đã lên lịch trên máy tính ở nhà của mình và cho nó chạy nhiều lần trong ngày chỉ để kiểm tra xem trang web của tôi có đang hoạt động hay không. Tôi có kịch bản cho tôi qua email nếu trang web không hoạt động. Bạn có thể sử dụng cùng một tập lệnh này để giám sát các máy chủ hoặc máy tính quan trọng trong mạng của mình và gửi email cho chính mình bất kỳ lúc nào tập lệnh của bạn không thể ping thiết bị.

Đầu tiên, thiết lập tập lệnh cho mục tiêu bạn muốn ping, tạo đối tượng shell, sau đó chạy lệnh ping.

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

Sử dụng câu lệnh Chọn trường hợp để chạy qua các kết quả Ping và trả lời tương ứng. Nếu kết quả trả về bằng 0, thì bạn biết rằng trang web (hoặc máy chủ) đang trực tuyến và bạn không phải làm gì cả. Nếu nó trả về '1' thì ping không thành công và bạn cần phải làm gì đó. Trong trường hợp của tôi, tôi gửi email bằng đối tượng 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

Khi tập lệnh chạy và không thể ping thiết bị hoặc trang web, bạn sẽ nhận được một tin nhắn tức thì.

Thật nhanh chóng và dễ dàng, và mọi thứ đều hiệu quả!

Sử dụng VB Windows Scripts để điều khiển máy tính của bạn

Đây chỉ là một vài ví dụ về một số điều thú vị mà bạn có thể làm với tập lệnh VB để hợp lý hóa việc sử dụng máy tính của bạn. Có rất nhiều thứ khác mà bạn có thể làm như sao lưu tự động với VB và Synctoy, tự động hóa các lệnh telnet, hoặc thậm chí mở và điều khiển các cửa sổ ứng dụng.

Một số thứ bạn đã tự động hóa trên máy tính của mình bằng tập lệnh Windows là gì? Bạn có viết bằng VB của mình không, hay sử dụng một số công cụ khác như PowerShell ?

Đăng lại Đăng lại tiếng riu ríu E-mail Đây là lý do tại sao FBI ban hành cảnh báo cho Hive Ransomware

FBI đã đưa ra cảnh báo về một loại ransomware đặc biệt khó chịu. Đây là lý do tại sao bạn cần phải đặc biệt cảnh giác với ransomware Hive.

Đọc tiếp
Chủ đề liên quan
  • Lập trình
  • Máy tính tự động hóa
  • Viết kịch bản
Giới thiệu về tác giả Ryan Dube(Đã xuất bản 942 bài báo)

Ryan có bằng Cử nhân Kỹ thuật Điện. Anh ấy đã làm việc 13 năm trong lĩnh vực kỹ thuật tự động hóa, 5 năm trong lĩnh vực CNTT và hiện là Kỹ sư ứng dụng. Từng là Biên tập viên quản lý của MakeUseOf, ông đã phát biểu tại các hội nghị quốc gia về Trực quan hóa Dữ liệu và đã được giới thiệu trên đài truyền hình và đài phát thanh quốc gia.

Xem thêm từ Ryan Dube

Theo dõi bản tin của chúng tôi

Tham gia bản tin của chúng tôi để biết các mẹo công nghệ, đánh giá, sách điện tử miễn phí và các ưu đãi độc quyền!

Bấm vào đây để đăng ký