5 Χρήσιμα σενάρια VB Windows για αυτοματοποίηση της χρήσης του υπολογιστή σας

5 Χρήσιμα σενάρια VB Windows για αυτοματοποίηση της χρήσης του υπολογιστή σας

Είτε είστε αναλυτής πληροφορικής είτε τακτικός χρήστης υπολογιστή, υπάρχουν πολλές εργασίες που μπορεί να χρειαστεί να κάνετε συχνά στον υπολογιστή σας. Τα VB Scripts μειώνουν τα προγράμματα της Visual Basic που λειτουργούν ως δέσμες ενεργειών των Windows που μπορούν να κάνουν οτιδήποτε, από την αναζήτηση σημαντικών πληροφοριών σχετικά με το υλικό του υπολογιστή σας, τη διακοπή και την εκκίνηση υπηρεσιών ή την επαναφορά της κάρτας δικτύου σας.





Είναι δυνατόν να μάθετε πώς να κάνετε όλα αυτά τα μεμονωμένα πράγματα με τον συνηθισμένο τρόπο ή να τα κάνετε χρησιμοποιώντας αρχεία δέσμης. Αλλά Τα σενάρια VB είναι καλύτερα από τα σενάρια δέσμης γιατί είναι πιο ευέλικτα. Εάν αποθηκεύσετε τα ακόλουθα σενάρια σε ένα κοινό μέρος που φτάνει γρήγορα όταν το χρειάζεστε, μπορείτε να ολοκληρώσετε αυτές τις εργασίες σε ένα κλάσμα του χρόνου. Απλώς κάνετε διπλό κλικ στο σενάριο, απαντάτε σε μια ερώτηση και η εργασία ολοκληρώνεται.





Ρίξτε μια ματιά στα ακόλουθα σενάρια VB Windows και αν δείτε κάποια που θέλετε να χρησιμοποιήσετε, απλώς αντιγράψτε και επικολλήστε το σενάριο Σημειωματάριο ή άλλο εργαλείο σημειώσεων κωδικοποίησης και αποθηκεύστε το ως αρχείο WSF.





Προετοιμάστε τα σενάρια των Windows σας

Κάθε ένα από τα σενάρια που περιγράφονται παρακάτω θα εκτελεστεί με ένα διπλό κλικ, αρκεί να έχετε ονομάσει το αρχείο με την επέκταση .WSF, και επίσης να έχετε κλείσει τον κώδικα στην αρχή με:


Και κλείστε τον κωδικό με:



WScript.Quit

Αυτό διασφαλίζει ότι τα Windows θα αναγνωρίσουν τη γλώσσα στην οποία είναι γραμμένο το σενάριό σας και θα την επεξεργαστούν σωστά.

1. Χρησιμοποιήστε σενάρια Windows για πληροφορίες υπολογιστή

Τα 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

Τέλος, θυμηθείτε να κλείσετε τον κώδικα κλείνοντας το αρχείο και ορίζοντας τα αντικείμενα σε 'Τίποτα':

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. Συσκευές ή ιστότοποι Ping

Έχω αποθηκεύσει το αγαπημένο μου σενάριο των Windows VB για το τέλος. Αυτό είναι αυτό που έστησα στην πραγματικότητα ως προγραμματισμένη εργασία στον υπολογιστή του σπιτιού μου και το έβαλα αρκετές φορές την ημέρα μόνο για να ελέγξω αν ο ιστότοπός μου είναι ενεργός. Έχω το σενάριο να μου στείλετε μήνυμα ηλεκτρονικού ταχυδρομείου εάν ο ιστότοπος είναι εκτός λειτουργίας. Μπορείτε να χρησιμοποιήσετε αυτό το ίδιο σενάριο για να παρακολουθείτε σημαντικούς διακομιστές ή υπολογιστές στο δίκτυό σας και να στείλετε email μόνοι σας κάθε φορά που το σενάριό σας δεν μπορεί να κάνει ping στη συσκευή.

Αρχικά, ρυθμίστε το σενάριο για τον στόχο που θέλετε να κάνετε ping, δημιουργήστε το αντικείμενο κελύφους και, στη συνέχεια, εκτελέστε την εντολή ping.

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

Χρησιμοποιήστε μια πρόταση Επιλογή περίπτωσης για να εκτελέσετε τα αποτελέσματα του Ping και να απαντήσετε ανάλογα. Εάν τα αποτελέσματα επιστρέψουν στο μηδέν, τότε γνωρίζετε ότι ο ιστότοπος (ή ο διακομιστής) είναι συνδεδεμένος και δεν χρειάζεται να κάνετε τίποτα. Αν επιστρέψει το '1' τότε το ping απέτυχε και πρέπει να κάνετε κάτι. Στην περίπτωσή μου, στέλνω ένα email χρησιμοποιώντας το αντικείμενο CDO των Windows:

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 στη συσκευή ή στον ιστότοπο, λαμβάνετε ένα άμεσο μήνυμα.

Είναι γρήγορο και εύκολο, και κάθε αποτελεσματικό!

Χρήση σεναρίων VB Windows για τον έλεγχο του υπολογιστή σας

Αυτά είναι μόνο μερικά παραδείγματα από μερικά από τα πιο ωραία πράγματα που μπορείτε να κάνετε με τη δέσμη ενεργειών VB για τον εξορθολογισμό της χρήσης του υπολογιστή σας. Υπάρχουν πολλά άλλα πράγματα που μπορείτε να κάνετε, όπως αυτοματοποιημένα αντίγραφα ασφαλείας με VB και Synctoy, αυτοματοποίηση εντολών telnet ή ακόμη και άνοιγμα και έλεγχο παραθύρων εφαρμογών.

Ποια είναι μερικά από τα πράγματα που έχετε αυτοματοποιήσει στον υπολογιστή σας με ένα σενάριο Windows; Γράφετε τα δικά σας χρησιμοποιώντας VB ή χρησιμοποιείτε κάποιο άλλο εργαλείο όπως το PowerShell ;

Μερίδιο Μερίδιο Τιτίβισμα ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ Να γιατί το FBI εξέδωσε προειδοποίηση για ransomware Hive

Το FBI εξέδωσε προειδοποίηση για ένα ιδιαίτερα δυσάρεστο είδος ransomware. Να γιατί πρέπει να είστε ιδιαίτερα επιφυλακτικοί με το ransomware της Hive.

Διαβάστε Επόμενο
Σχετικά θέματα
  • Προγραμματισμός
  • Αυτοματισμός υπολογιστών
  • Scripting
Σχετικά με τον Συγγραφέα Ράιαν Ντούμπε(942 δημοσιευμένα άρθρα)

Ο Ryan έχει πτυχίο Ηλεκτρολόγων Μηχανικών. Εργάστηκε 13 χρόνια στη μηχανική αυτοματισμού, 5 χρόνια στην πληροφορική και τώρα είναι Μηχανικός Εφαρμογών. Πρώην Διευθύνων Σύμβουλος του MakeUseOf, μίλησε σε εθνικά συνέδρια για την απεικόνιση δεδομένων και συμμετείχε στην εθνική τηλεόραση και ραδιόφωνο.

Περισσότερα από τον Ryan Dube

Εγγραφείτε στο newsletter μας

Εγγραφείτε στο ενημερωτικό μας δελτίο για τεχνικές συμβουλές, κριτικές, δωρεάν ebooks και αποκλειστικές προσφορές!

Κάντε κλικ εδώ για εγγραφή