5 nützliche VB-Windows-Skripte zur Automatisierung der Computernutzung

5 nützliche VB-Windows-Skripte zur Automatisierung der Computernutzung

Egal, ob Sie ein IT-Analyst oder ein normaler Computerbenutzer sind, es gibt viele Aufgaben, die Sie möglicherweise häufig auf Ihrem PC ausführen müssen. VB-Skripte sind verkleinerte Visual Basic-Programme, die als Windows-Skripte dienen, die alles tun können, vom Abrufen wichtiger Informationen über Ihre Computerhardware bis hin zum Beenden und Starten von Diensten oder zum Zurücksetzen Ihrer Netzwerkkarte.





Es ist möglich zu lernen, wie man all diese einzelnen Dinge auf normale Weise oder mit Batch-Dateien macht. Aber VB-Skripte sind besser als Batch-Skripte weil sie flexibler sind. Wenn Sie die folgenden Skripts an einem gemeinsamen Ort speichern, auf den Sie bei Bedarf schnell zugreifen können, können Sie diese Aufgaben in einem Bruchteil der Zeit erledigen. Sie doppelklicken einfach auf das Skript, beantworten eine Eingabeaufforderung und die Aufgabe ist erledigt.





Sehen Sie sich die folgenden VB-Windows-Skripte an und wenn Sie eines sehen, das Sie verwenden möchten, kopieren Sie das Skript einfach und fügen Sie es ein Notepad oder ein anderes Tool für Codierungsnotizen und speichern Sie es als WSF-Datei.





Bereiten Sie Ihre Windows-Skripte vor

Jedes der unten aufgeführten Skripte wird mit nur einem Doppelklick ausgeführt, solange Sie die Datei mit der Erweiterung .WSF benannt und den Code am Anfang mit eingeschlossen haben:


Und schließen Sie den Code ab mit:



WScript.Quit

Dadurch wird sichergestellt, dass Windows die Sprache erkennt, in der Ihr Skript geschrieben ist, und es ordnungsgemäß verarbeitet.

1. Verwenden Sie Windows-Skripte für Computerinformationen

Windows bietet etwas namens WMI oder Windows Management Instrumentation, das Ihrem Skript eine Schnittstelle für den Zugriff auf Komponenten des Betriebssystems bietet. Sie können tatsächlich Abfragen gegen WMI ausführen, um aktuelle Live-Informationen über Ihr System zu erhalten. Microsoft bietet eine vollständige Liste aller Kategorien von Anfragen Sie können gegen das System machen.





Wir haben behandelt, wie Sie VBA verwenden, um Computerinformationen in Excel zu übertragen, aber Sie können dasselbe mit einem einfachen VB-Skript außerhalb von Excel tun.

In diesem Beispiel fragen wir das System nach Prozessorinformationen (Familie, Hersteller und Anzahl der Kerne), Batterieinformationen (Beschreibung und Status) und Informationen zur logischen Festplatte (Name, verbleibender freier Speicherplatz und Gesamtgröße) ab. Anschließend geben wir alle diese Informationen zur einfachen Anzeige in eine CSV-Datei aus.





Der erste Schritt besteht darin, das FileSystemObject einzurichten, das Sie für die Ausgabe in die CSV-Datei verwenden, und die Datei zu erstellen:

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

Der nächste Schritt besteht darin, die WMI-Abfrage einzurichten und auszuführen:

Funktionieren Apple Airpods mit Android?
strQuery = 'SELECT Family,Manufacturer,NumberOfCores FROM Win32_Processor'
Set colResults = GetObject('winmgmts://./root/cimv2').ExecQuery( strQuery )

Sortieren Sie abschließend die Ergebnisse und geben Sie die Informationen in die CSV-Datei aus. Wenn Sie ausgefallen sein möchten, stellen Sie dies mit ein paar Zeilen voran, damit Ihre Ausgabedatei besser aussieht:

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

Wenn Sie Ihren Code jetzt ausführen, sieht Ihre Ausgabe folgendermaßen aus:

Für die nächsten beiden Abschnitte Ihres Codes wiederholen und ändern Sie einfach die Abfrage, um nach zusätzlichen Informationen zu suchen. Hier ist die Batterieinfo-Abfrage:

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

Und hier ist der nächste Abschnitt für die Abfrage des logischen Datenträgers:

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

Denken Sie abschließend daran, den Code zu schließen, indem Sie die Datei schließen und die Objekte auf 'Nichts' setzen:

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

Fügen Sie den gesamten Code in Ihre neue .WSF-Datei ein, führen Sie sie aus, und so sieht Ihre Ausgabe aus:

Tauschen Sie einfach die obigen Abfragen gegen andere Computergeräte oder Software aus, über die Sie Informationen erhalten möchten, und Sie können jederzeit mit nur einem Mausklick einen vollständigen Systembericht erhalten.

2. Dienste anhalten und starten

Es kann vorkommen, dass bei bestimmten Diensten Probleme auftreten und nur ein schneller Neustart erforderlich ist, um wieder ordnungsgemäß ausgeführt zu werden. Das ist besonders wahr in IT wenn Sie gezwungen sind, Serversoftware auszuführen, die manchmal ein bisschen fehlerhaft ist.

Wenn Sie den Neustart des Dienstes etwa eine Minute verkürzen möchten, speichern Sie einfach das folgende Skript an einem geeigneten Ort. Sie werden aufgefordert, den Namen des Dienstes einzugeben, den Sie neu starten möchten, und genau das wird dann ausgeführt.

Da das Beenden und Starten von Diensten Administratorrechte erfordert, müssen Sie den folgenden Code am Anfang Ihres Skripts platzieren, um Ihrem Skript höhere Privilegien :

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

Sobald dies erledigt ist, fügen Sie den Rest des Codes hinzu, um das Eingabefeld für die Benutzereingabe auszuführen, starten Sie das Befehlsfenster und senden Sie ihm die Befehle 'net stop' und 'net start':

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

Das ist alles dazu. Sie müssen nicht nach dem Service-Tool suchen. Führen Sie einfach dieses Skript aus und stoppen und starten Sie jeden Dienst in Sekunden.

3. Ändern Sie die Registrierungseinstellungen, das Standard-Admin-Passwort

Mit dem folgenden Skript schlagen wir zwei Fliegen mit einer Klappe. Dieses Skript zeigt Ihnen, wie es geht Bearbeiten Sie die Registrierung mit einem VB-Skript. Außerdem erhalten Sie ein Skript, mit dem Sie den standardmäßigen Windows-Benutzernamen und das Standardkennwort festlegen können, indem Sie diese Registrierungseinstellungen bearbeiten.

So funktioniert das. Da das Bearbeiten der Registrierung Administratorrechte erfordert, müssen Sie zunächst erhöhte Berechtigungen für Ihr Skript einrichten:

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

Führen Sie zuerst zwei Eingabefelder aus, um den Benutzer zu fragen, welchen Benutzernamen und welches Passwort er verwenden soll:

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

Richten Sie als Nächstes das Shell-Objekt ein und schreiben Sie diese Werte in die entsprechenden Registrierungsschlüssel:

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

Und das ist alles. Mit der Methode 'RegWrite' können Sie mithilfe eines VB-Windows-Skripts einen beliebigen Wert in einen beliebigen Registrierungsschlüssel schreiben. Sie müssen nur den passenden Pfad kennen.

Führen Sie das Skript aus und beantworten Sie die Eingabeaufforderungen.

Die von Ihnen eingegebenen Werte werden direkt in die Registrierungseinstellungen eingefügt, die Sie im Skript eingerichtet haben.

Spielen Sie mit dem Skript herum und optimieren Sie es nach Ihren Wünschen. Sie können beliebige Registrierungsschlüssel bearbeiten, seien Sie also kreativ!

4. Setzen Sie Ihre Netzwerkverbindung zurück

Das Zurücksetzen Ihrer Netzwerkverbindung mit VB-Skripting ist etwas, das wir hier bei MakeUseOf bereits behandelt haben. Die folgende Version davon ist tatsächlich verkleinert und viel einfacher zu implementieren. Anstatt nach einzelnen Netzwerkkarten aufzufordern, werden alle Ihre aktiven Verbindungen zurückgesetzt, wodurch hoffentlich alle Netzwerkprobleme behoben werden, die Sie möglicherweise haben.

Wie bei anderen Skripten, die Administratorrechte benötigen, müssen Sie den Abschnitt am Anfang für erhöhte Berechtigungen hinzufügen. Kopieren Sie diesen Code aus dem obigen Skript.

Erstellen Sie als Nächstes das WMI-Objekt und fragen Sie es nach einer Liste der aktivierten Netzwerkadapter auf Ihrem System ab:

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

Schleifen Sie schließlich alle aktivierten Adapter durch und setzen Sie sie zurück:

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

Dadurch werden alle deine aktive Netzwerkadapter , was oft der schnellste Weg ist, um lästige Netzwerkprobleme zu beheben. Halten Sie dieses Skript griffbereit und versuchen Sie es zuerst, wenn Sie ein langsames Netzwerk oder andere seltsame Netzwerkprobleme haben.

5. Ping-Geräte oder Websites

Ich habe mein Lieblings-VB-Windows-Skript zum Schluss gespeichert. Dies ist eine, die ich tatsächlich als geplante Aufgabe auf meinem Heimcomputer einrichte und mehrmals täglich ausführen lasse, nur um zu überprüfen, ob meine Website aktiv ist. Ich habe das Skript per E-Mail erhalten, wenn die Site ausgefallen ist. Sie können dasselbe Skript verwenden, um wichtige Server oder Computer in Ihrem Netzwerk zu überwachen und sich jederzeit per E-Mail zu senden, wenn Ihr Skript das Gerät nicht anpingen kann.

Richten Sie zuerst das Skript für das Ziel ein, das Sie pingen möchten, erstellen Sie das Shell-Objekt und führen Sie dann den Ping-Befehl aus.

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

Verwenden Sie eine Select Case-Anweisung, um die Ping-Ergebnisse durchzugehen und entsprechend zu reagieren. Wenn die Ergebnisse null sind, wissen Sie, dass die Site (oder der Server) online ist und Sie nichts tun müssen. Wenn es eine '1' zurückgibt, ist der Ping fehlgeschlagen und Sie müssen etwas tun. In meinem Fall sende ich eine E-Mail mit dem Windows CDO-Objekt:

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

Sobald das Skript ausgeführt wird und das Gerät oder die Website nicht angepingt werden kann , erhalten Sie eine Sofortnachricht.

Es ist schnell und einfach und jedes effizient!

Verwenden von VB Windows-Skripten zur Steuerung Ihres Computers

Dies sind nur einige Beispiele für einige der coolen Dinge, die Sie mit VB-Skripting tun können, um Ihre Computernutzung zu optimieren. Es gibt viele andere Dinge, die Sie tun können, wie automatische Backups mit VB und Synctoy, die Automatisierung von Telnet-Befehlen oder sogar das Öffnen und Steuern von Anwendungsfenstern.

Was sind einige der Dinge, die Sie auf Ihrem Computer mit einem Windows-Skript automatisiert haben? Schreiben Sie Ihre mit VB oder verwenden Sie ein anderes Tool? wie PowerShell ?

Teilen Teilen Tweet Email Hier ist der Grund, warum das FBI eine Warnung vor Hive Ransomware herausgegeben hat

Das FBI warnte vor einem besonders bösartigen Ransomware-Stamm. Aus diesem Grund müssen Sie bei Hive-Ransomware besonders vorsichtig sein.

Weiter lesen
Verwandte Themen
  • Programmierung
  • Computerautomatisierung
  • Skripting
Über den Autor Ryan Dube(942 veröffentlichte Artikel)

Ryan hat einen BSc-Abschluss in Elektrotechnik. Er hat 13 Jahre in der Automatisierungstechnik, 5 Jahre in der IT gearbeitet und ist jetzt Apps Engineer. Als ehemaliger Chefredakteur von MakeUseOf hat er auf nationalen Konferenzen zur Datenvisualisierung gesprochen und wurde im nationalen Fernsehen und Radio vorgestellt.

Mehr von Ryan Dube

Abonniere unseren Newsletter

Abonnieren Sie unseren Newsletter für technische Tipps, Rezensionen, kostenlose E-Books und exklusive Angebote!

Klicken Sie hier, um zu abonnieren