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

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

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

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

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

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

  

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

WScript.Quit

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

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

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

Мы рассмотрели, как использовать VBA для извлечения информации о компьютере в Excel, но вы можете сделать то же самое, используя простой сценарий VB вне Excel.

В этом примере мы собираемся запросить у системы информацию о процессоре (семейство, производитель и количество ядер), информацию о батарее (описание и статус) и информацию о логическом диске (имя, свободный оставшееся место и общий размер). Затем мы выведем всю эту информацию в файл CSV для удобного просмотра.

Первый шаг — настроить FileSystemObject, который вы будете использовать для вывода в файл CSV, и создать файл:

  Установить oFSO = CreateObject ("Scripting.FileSystemObject") 
sFile1 = "MyComputerInfo.csv"
Установить oFile1 = oFSO.CreateTextFile (sFile1, 1)

Следующим шагом является настройка запроса WMI и его выполнение:

  strQuery = "SELECT  Семейство, Производитель, NumberOfCores ОТ Win32_Processor "
Установить colResults = GetObject (" winmgmts://./root/cimv2 ") .ExecQuery (strQuery)

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

  oFile1.WriteLine «Информация о процессоре» 
oFile1 .WriteLine "------"
Для каждого objResult в colResults
strResults = "Family:," + CStr (objResult.Family)
oFile1.WriteLine strResults
strResults = "Производитель:" + CStr (objResult.Manufacturer)
oFile1.WriteLine strResults
strResults = "Количество ядер:," + CStr (objResult.NumberOfCores)
oFile1.WriteLine strResults
Далее

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

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

  oFile1.WriteLine "" 
strQuery = "SELECT Description, Status FROM Win32_Battery"
Set colResults = GetObject ( "winmgmts://./root/cimv2") .ExecQuery (strQuery)
oFile1.WriteLine "Информация о батарее"
oFile1.WriteLine "------"
Для каждого objResult в colResults
strResults = "Status:," + CStr (objResult.Description)
oFile1.WriteLine strResults
strResults = "Description:," + CStr (objResult. Статус)
oFile1.WriteLine strResults
Далее

А вот следующий раздел для запроса логического диска:

   oFile1.WriteLine "" 
strQuery = "Выбрать имя, свободное пространство, размер из Win32_LogicalDisk"
Установить colResults = GetObject ("winmgmts://./root/cimv2"). ExecQuery (strQuery)
oFile1.WriteLine "Информация о диске"
oFile1.WriteLine "------"
'Определение логического дискового пространства
для каждого objResult В colResults
strResults = "Имя:" + CStr (objResult.Name)
oFile1.Wr iteLine strResults
strResults = "Свободное пространство:" + CStr (objResult.FreeSpace)
oFile1. WriteLine strResults
strResults = "Размер диска:" + CStr (objResult.Size)
oFile1.WriteLine strResults
Далее

Наконец, не забудьте закрыть код, закрыв файл и установив для объектов значение «Ничего»:

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

Поместите весь этот код в ваш новый файл .WSF, запустите его, и вот как будет выглядеть ваш результат:

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

2. Остановка и запуск служб

Бывают случаи, когда у некоторых служб возникают проблемы, и для их нормальной работы требуется всего лишь быстрый перезапуск. Это особенно актуально для ИТ, когда вы вынуждены запускать серверное программное обеспечение, которое иногда немного глючит.

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

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

  Если не WScript.Arguments.Named.Exists ("повысить"), то 
CreateObject ("Shell.Application"). ShellExecute WScript.FullName _
, "" "" & WScript.ScriptFullName & "" "/elevate", "", "runas", 1
WScript.Quit
End If

Как только это будет сделано, добавьте остальную часть кода, чтобы запустить поле ввода для пользовательского ввода, запустить командное окно и отправить ему команды net stop и net start. «:

  Установить 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 "чистый старт" + strSer ViceName
cmdShell.SendKeys "{Enter}"
WScript.Sleep 1000
cmdShell.SendKeys "Exit"
cmdShell.SendKeys "{Enter}"

Вот и все. Не нужно искать сервисный инструмент. Просто запустите этот сценарий и остановите и запустите любую службу за секунды.

3. Изменить настройки реестра, пароль администратора по умолчанию

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

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

  Если не WScript.Arguments.Named.Exists ("elevate"  ) Затем 
CreateObject ("Shell.Application"). ShellExecute WScript.FullName _
, "" "" & WScript.ScriptFullName & "" "/elevate", "", "runas", 1
WScript.Quit
End If

Первый запуск два поля ввода, чтобы спросить пользователя, какое имя пользователя и пароль использовать:

  strUserName = Inputbox («Введите имя пользователя по умолчанию», «Требуется ввод») 
strPassword = Inputbox («Введите пароль по умолчанию», «Требуется ввод»)

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

  Установить wshShell = CreateObject ("WScript.Shell") 
wshShell.RegWrite "HKLM SOFTWARE Microsoft Windows NT CurrentVersion Winlogon DefaultUserName", strUserName, " REG_SZ "
wshShell.RegWrite" HKLM SOFTWA RE Microsoft Windows NT CurrentVersion Winlogon DefaultPassword ", strPassword," REG_SZ "
Установить wshShell = Nothing

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

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

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

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

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

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

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

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

  strComputer = "." 
Установить objWMIService = GetObject ("winmgmts: \" & strComputer & "oot CIMV2")
Установить colItems = objWMIService .ExecQuery (_
"SELECT * FROM Win32_NetworkAdapter Where NetEnabled = 'True'")

Наконец, переберите все включенные адаптеры и сбросьте их:

  Для каждого объекта objItem в colItems 
objItem.Disable
WScript.Sleep 1000
objItem.Enable
Далее

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

5. Проверка связи с устройствами или веб-сайтами

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

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

  strTarget = "topsecretwriters.com" 
Установить 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
Установить objMessage = CreateObject ("CDO.Message")
Установить objConfig = CreateObject ("CDO.Configuration")
objConfig.Load -1
Установить Flds = objConfig.Fields
С полями
.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
. Обновление
Заканчивается на
с objMessage
Установить. Configuration = objConfig
.Subject = "Ваш сайт не в сети"
.From = "me@mycomputer.com"
.To = "xxxxxx@gmail.com"
.TextBody = "Эй, ваш веб-сайт не в сети."
. Отправьте
в конец с помощью
End Select

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

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

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

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

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

Оцените статью
oilgasindustry.ru
Добавить комментарий