5 przydatnych skryptów VB Windows do automatyzacji korzystania z komputera

5 przydatnych skryptów VB Windows do automatyzacji korzystania z komputera

Niezależnie od tego, czy jesteś analitykiem IT, czy zwykłym użytkownikiem komputera, istnieje wiele zadań, które możesz często wykonywać na swoim komputerze. Skrypty VB są skalowanymi w dół programami Visual Basic, które służą jako skrypty Windows, które mogą robić wszystko, od pobierania ważnych informacji o sprzęcie komputera, po zatrzymywanie i uruchamianie usług lub resetowanie karty sieciowej.





Możliwe jest nauczenie się wykonywania wszystkich tych czynności w normalny sposób lub przy użyciu plików wsadowych. Ale Skrypty VB są lepsze niż skrypty wsadowe ponieważ są bardziej elastyczne. Jeśli przechowujesz poniższe skrypty we wspólnym miejscu, do którego możesz szybko dotrzeć w razie potrzeby, możesz wykonać te zadania w ułamku czasu. Wystarczy dwukrotnie kliknąć skrypt, odpowiedzieć na monit i zadanie jest wykonane.





Spójrz na następujące skrypty VB Windows, a jeśli zobaczysz jakiś, którego chcesz użyć, po prostu skopiuj i wklej skrypt do Notatnik lub inne narzędzie do tworzenia notatek i zapisz go jako plik WSF.





Przygotuj swoje skrypty Windows

Każdy z opisanych poniżej skryptów zostanie uruchomiony po dwukrotnym kliknięciu, o ile nazwałeś plik z rozszerzeniem .WSF, a kod na początku został również załączony:


I zamknij kod:



WScript.Quit

Gwarantuje to, że system Windows rozpozna język, w którym jest napisany skrypt, i przetworzy go poprawnie.

1. Użyj skryptów Windows do informacji o komputerze

System Windows oferuje coś, co nazywa się WMI lub Instrumentacją zarządzania Windows, która zapewnia skryptowi interfejs umożliwiający dostęp do składników systemu operacyjnego. W rzeczywistości można uruchamiać zapytania w usłudze WMI, aby uzyskać bieżące informacje o systemie. Microsoft oferuje pełną listę wszystkich kategorie zapytań możesz zrobić przeciwko systemowi.





Omówiliśmy, jak używać VBA do pobierania informacji o komputerze do programu Excel , ale możesz zrobić to samo, używając prostego skryptu VB poza programem Excel.

W tym przykładzie zapytamy system o informacje o procesorze (rodzina, producent i liczba rdzeni), informacje o baterii (opis i stan) oraz informacje o dysku logicznym (nazwa, pozostała ilość wolnego miejsca i całkowity rozmiar). Następnie wyślemy wszystkie te informacje do pliku CSV w celu łatwego przeglądania.





Pierwszym krokiem jest skonfigurowanie FileSystemObject, którego będziesz używać do wyprowadzania danych do pliku CSV, i utworzenie pliku:

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

Następnym krokiem jest skonfigurowanie zapytania WMI i wykonanie go:

spraw, aby Windows 10 był szybszy w grach
strQuery = 'SELECT Family,Manufacturer,NumberOfCores FROM Win32_Processor'
Set colResults = GetObject('winmgmts://./root/cimv2').ExecQuery( strQuery )

Na koniec posortuj wyniki i wyślij informacje do pliku CSV. Jeśli chcesz być fantazyjny, poprzedź to kilkoma linijkami, aby plik wyjściowy wyglądał lepiej:

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

Jeśli uruchomisz teraz swój kod, wynik będzie wyglądał tak:

W następnych dwóch sekcjach kodu po prostu powtórzysz i zmienisz zapytanie, aby wyszukać dodatkowe informacje. Oto zapytanie o informacje o baterii:

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

A oto następna sekcja dotycząca zapytania o dysk logiczny:

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

Na koniec pamiętaj, aby zamknąć kod, zamykając plik i ustawiając obiekty na „Nic”:

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

Umieść cały ten kod w swoim nowym pliku .WSF, uruchom go, a oto jak będzie wyglądał Twój wynik:

Po prostu zamień powyższe zapytania na dowolne inne urządzenia lub oprogramowanie komputerowe, o których chcesz uzyskać informacje, a możesz uzyskać pełny raport systemowy w dowolnym momencie za pomocą jednego kliknięcia myszą.

2. Zatrzymaj i uruchom usługi

Zdarzają się sytuacje, w których niektóre usługi będą miały problemy i wymagają tylko szybkiego ponownego uruchomienia, aby ponownie działały poprawnie. Jest to szczególnie prawda w IT kiedy jesteś zmuszony do uruchamiania oprogramowania serwerowego, które czasami jest trochę błędne.

Jeśli chcesz skrócić czas procesu ponownego uruchamiania usługi, po prostu zapisz poniższy skrypt w dogodnym miejscu. Poprosi cię o wpisanie nazwy usługi, którą chcesz ponownie uruchomić, a następnie zrobi dokładnie to.

Ponieważ zatrzymywanie i uruchamianie usług wymaga uprawnień administratora, musisz umieścić następujący kod na początku swojego skryptu, aby dać swój skrypt podwyższone przywileje :

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

Gdy to zrobisz, dodaj resztę kodu, aby uruchomić pole wprowadzania danych wejściowych użytkownika, uruchom okno poleceń i wyślij do niego polecenia „net stop” i „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}'

To wszystko. Nie musisz szukać narzędzia serwisowego. Po prostu uruchom ten skrypt i zatrzymaj i uruchom dowolną usługę w kilka sekund.

3. Zmień ustawienia rejestru, domyślne hasło administratora

W poniższym scenariuszu zabijemy dwie pieczenie na jednym ogniu. Ten skrypt pokaże Ci, jak: edytuj rejestr ze skryptem VB. Otrzymasz również skrypt, który pozwoli Ci ustawić domyślną nazwę użytkownika i hasło systemu Windows, edytując te ustawienia rejestru.

Oto jak to działa. Po pierwsze, ponieważ edytowanie rejestru wymaga uprawnień administratora, musisz skonfigurować podwyższone uprawnienia dla swojego skryptu:

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

Najpierw uruchom dwa pola wprowadzania, aby zapytać użytkownika, jakiej nazwy użytkownika i hasła użyć:

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

Następnie skonfiguruj obiekt powłoki i zapisz te wartości w odpowiednich kluczach rejestru:

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

I to wszystko. Metoda „RegWrite” umożliwia zapisanie dowolnej wartości do dowolnego klucza rejestru za pomocą skryptu VB Windows. Wszystko, co musisz wiedzieć, to odpowiednia ścieżka.

Uruchom skrypt i odpowiedz na monity.

Wprowadzone wartości zostaną wstawione bezpośrednio do ustawień rejestru skonfigurowanych w skrypcie.

Pobaw się skryptem i dostosuj go do swoich upodobań. Możesz edytować dowolne klucze rejestru, więc bądź kreatywny!

4. Zresetuj połączenie sieciowe

Resetowanie połączenia sieciowego za pomocą skryptów VB to coś, co omówiliśmy wcześniej w MakeUseOf. Poniższa wersja jest w rzeczywistości zmniejszona i znacznie prostsza do wdrożenia. Zamiast monitować o poszczególne karty sieciowe, resetuje wszystkie aktywne połączenia, które, miejmy nadzieję, rozwiążą wszelkie problemy z siecią.

Podobnie jak w przypadku innych skryptów, które wymagają uprawnień administratora, musisz dodać sekcję na początku, aby uzyskać podwyższone uprawnienia. Skopiuj ten kod z powyższego skryptu.

Następnie utwórz obiekt WMI i zapytaj go o listę włączonych kart sieciowych w twoim systemie:

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

Na koniec przeprowadź pętlę przez wszystkie włączone adaptery i zresetuj je:

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

Spowoduje to zresetowanie wszystkich Twoich aktywne karty sieciowe , co jest często najszybszym sposobem rozwiązywania irytujących problemów z siecią. Miej ten skrypt pod ręką i wypróbuj go najpierw za każdym razem, gdy masz wolną sieć lub inne dziwne problemy z siecią.

5. Pinguj urządzenia lub strony internetowe

Na koniec zachowałem mój ulubiony skrypt VB dla systemu Windows. Jest to zadanie, które ustawiłem jako zaplanowane zadanie na moim domowym komputerze i uruchamiam go kilka razy dziennie, aby sprawdzić, czy moja witryna jest aktywna. Mam skrypt na e-mail, jeśli witryna nie działa. Możesz użyć tego samego skryptu, aby monitorować ważne serwery lub komputery w Twojej sieci i wysyłać do siebie e-maile za każdym razem, gdy Twój skrypt nie może pingować urządzenia.

Najpierw skonfiguruj skrypt dla celu, który chcesz pingować, utwórz obiekt powłoki, a następnie uruchom polecenie ping.

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

Użyj instrukcji Select Case, aby przejrzeć wyniki polecenia ping i odpowiednio zareagować. Jeśli wyniki zwrócą się jako zero, oznacza to, że wiesz, że witryna (lub serwer) jest online i nie musisz nic robić. Jeśli zwróci „1”, oznacza to, że ping nie powiódł się i musisz coś zrobić. W moim przypadku wysyłam wiadomość e-mail za pomocą obiektu CDO systemu 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

Gdy skrypt zostanie uruchomiony i nie będzie mógł pingować urządzenia lub witryny , otrzymasz wiadomość błyskawiczną.

To szybkie i proste, a do tego skuteczne!

Używanie skryptów VB Windows do sterowania komputerem

To tylko kilka przykładów fajnych rzeczy, które możesz zrobić za pomocą skryptów VB, aby usprawnić korzystanie z komputera. Istnieje wiele innych rzeczy, które możesz zrobić, takich jak automatyczne tworzenie kopii zapasowych za pomocą VB i Synctoy, automatyzacja poleceń telnet, a nawet otwieranie i kontrolowanie okien aplikacji.

Jakie elementy zautomatyzowałeś na swoim komputerze za pomocą skryptu systemu Windows? Czy piszesz swoje za pomocą VB, czy używasz innego narzędzia? jak PowerShell ?

Udział Udział Ćwierkać E-mail Oto dlaczego FBI wydało ostrzeżenie dotyczące Hive Ransomware

FBI wydało ostrzeżenie o szczególnie paskudnym szczepie oprogramowania ransomware. Oto dlaczego należy szczególnie uważać na oprogramowanie ransomware Hive.

Czytaj dalej
Powiązane tematy
  • Programowanie
  • Automatyka komputerowa
  • Skrypty
O autorze Ryan Dube(942 opublikowane artykuły)

Ryan posiada tytuł licencjata w dziedzinie elektrotechniki. Pracował 13 lat w inżynierii automatyzacji, 5 lat w IT, a teraz jest inżynierem aplikacji. Były redaktor zarządzający MakeUseOf, przemawiał na krajowych konferencjach na temat wizualizacji danych i występował w krajowej telewizji i radiu.

Więcej od Ryana Dube

Zapisz się do naszego newslettera

Dołącz do naszego newslettera, aby otrzymywać porady techniczne, recenzje, bezpłatne e-booki i ekskluzywne oferty!

Kliknij tutaj, aby zasubskrybować