5 полезных сценариев VB Windows для автоматизации использования компьютера

Независимо от того, являетесь ли вы ИТ-аналитиком или обычным пользователем компьютера, на вашем компьютере может потребоваться много задач. Сценарии VB — это уменьшенные программы Visual Basic, которые служат в качестве сценариев Windows и могут выполнять любые действия: от получения важной информации об оборудовании вашего компьютера до остановки и запуска служб или сброса сетевой карты.

Можно научиться делать все эти отдельные вещи обычным способом или делать их с помощью командных файлов. Но сценарии VB лучше, чем пакетные сценарии

потому что они более гибкие. Если вы храните следующие сценарии в едином месте, к которому можно быстро добраться, когда вам это нужно, вы можете выполнить эти задачи за короткое время. Вы просто дважды щелкните сценарий, ответите на приглашение, и задача будет выполнена.

Посмотрите на следующие скрипты VB для Windows, и если вы видите те, которые хотите использовать, просто скопируйте и вставьте скрипт в Блокнот или другой инструмент для создания заметок.

и сохраните его как файл WSF.

Подготовьте свои сценарии Windows

Каждый из сценариев, подробно описанных ниже, будет запускаться с помощью двойного щелчка, если вы назвали файл с расширением .WSF, а также в начале кода добавили:


И закройте код с помощью:

WScript.Quit

Это гарантирует, что Windows распознает язык, на котором написан ваш скрипт, и правильно его обработает.

1. Используйте Windows Scripts для получения информации о компьютере

Windows предлагает что-то под названием WMI или инструментарий управления Windows, который предоставляет вашему сценарию интерфейс для доступа к компонентам операционной системы. На самом деле вы можете запускать запросы к 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

Если вы запустите свой код сейчас, это будет выглядеть так:

компьютерная информация скрипта Windows

В следующих двух разделах вашего кода вы просто повторите и измените запрос, чтобы найти дополнительную информацию. Вот запрос информации о батарее:

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, запустите его, и вот как будет выглядеть ваш вывод:

5 полезных скриптов VB для Windows для автоматизации вашего компьютера.

Просто поменяйте местами приведенные выше запросы для любых других компьютерных устройств или программ, о которых вы хотите получить информацию, и вы сможете получить полный системный отчет

в любое время, когда вы захотите, просто щелкнув мышью.

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»:

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 "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\DefaultUserName", strUserName, "REG_SZ"
wshShell.RegWrite "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\DefaultPassword", strPassword, "REG_SZ"
Set wshShell = Nothing

И это все, что нужно сделать. Метод «RegWrite» позволяет записать любое значение в любой раздел реестра с помощью сценария VB Windows. Все, что вам нужно знать, это соответствующий путь.

Запустите скрипт и ответьте на запросы.

5 полезных скриптов VB Windows для автоматизации вашего компьютера.

Введенные вами значения будут вставлены прямо в настройки реестра, которые вы установили в скрипте.

5 полезных сценариев VB Windows для автоматизации вашего компьютера Используйте записи реестра

Поиграйте со сценарием и настройте его по своему вкусу. Вы можете редактировать любые ключи реестра, которые вам нравятся, так что будьте изобретательны!

4. Сбросить ваше сетевое соединение

Сброс вашего сетевого подключения с использованием сценариев VB

это то, о чем мы уже говорили в MakeUseOf. Следующая версия на самом деле сокращена и намного проще в реализации. Вместо того, чтобы запрашивать отдельные сетевые карты, он сбрасывает все ваши активные подключения, что, мы надеемся, решит любые проблемы с сетью, которые могут у вас возникнуть.

Как и в случае с другими сценариями, для которых требуются права администратора, вам нужно добавить раздел в начале для повышенных привилегий. Скопируйте этот код из сценария выше.

Затем создайте объект WMI и запросите его для получения списка включенных сетевых адаптеров в вашей системе:

strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
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 или сайты

Я сохранил мой любимый скрипт VB для Windows. Это то, что я на самом деле настроил в качестве запланированной задачи на своем домашнем компьютере и запускаю несколько раз в день, чтобы проверить, активен ли мой веб-сайт.

, У меня есть скрипт, напишите мне, если сайт не работает. Вы можете использовать этот же сценарий для наблюдения за важными серверами или компьютерами в сети и отправлять электронное письмо себе в любое время, когда ваш сценарий не может пропинговать устройство.

Сначала настройте скрипт для цели, которую вы хотите пропинговать, создайте объект оболочки, а затем запустите команду ping.

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

Используйте оператор Select Case, чтобы просмотреть результаты Ping и ответить соответствующим образом. Если результаты возвращаются к нулю, значит, вы знаете, что сайт (или сервер) подключен к сети, и вам не нужно ничего делать. Если он возвращает «1», то проверка связи не удалась, и вам нужно что-то сделать. В моем случае я отправляю электронное письмо, используя объект 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

Когда скрипт запускается и не может пропинговать устройство или веб-сайт, вы получаете мгновенное сообщение.

5 полезных сценариев VB Windows для автоматизации вашего компьютера.

Это быстро, легко и эффективно!

Использование VB Windows Scripts для управления вашим компьютером

Это всего лишь несколько примеров некоторых интересных вещей, которые вы можете сделать с помощью сценариев VB для оптимизации использования вашего компьютера. Есть много других вещей, которые вы можете сделать, как автоматическое резервное копирование с VB и Synctoy

, автоматизация команд telnet

или даже открывать и контролировать окна приложений

,

Что вы автоматизировали на своем компьютере с помощью сценария Windows? Вы пишете свои, используя VB, или используете какой-то другой инструмент, например PowerShell?

?

Ссылка на основную публикацию
Adblock
detector