Скрипты для автоматизации windows

Автоматизация работы с использованием Windows Scripting Host

Помните ВАТ-файлы DOS? Это было прекрасное средство автоматизации повторяющихся задач. Windows, увы, не предложила эквивалентной замены, а средства сторонних разработчиков не прижились по различным причинам. Но положение, похоже, может исправиться. Windows Scripting Host (WSH) — новый, независимый от языка скрипт-хост для Win9x и NT, позволяет строить аналоги ВАТ-файлов на Visual Basic Scripting Edition, JScript и других скриптовых языках, например, Active Perl или Python.

Здесь мы обсудим некоторые преимущества Windows Scripting Host.

Преимущества Windows Scripting Host

Раньше единственным поддерживаемым Windows скриптовым языком был командный язык DOS. Но его возможности довольно бедны по сравнению с VBScript и JScript. Хотя командный язык DOS по прежнему поддерживается, современные ActiveX-скрипты позволяют решать более сложные задачи.

Cкрипт может принимать решения на основе использования полноценных операторов If/Else. Сценарий может выполнять один набор команд, если данное условие истинно, или другой набор, если условие ложно. Кроме того, JScript и VBScript хороши при выполнении математических операций, включая общие тригонометрические функции.

Другое свойство Windows Scripting Host заключается в том, что скрипты могут исполняться вне браузера. Достаточно кликнуть по файлу с текстом скрипта или ввести его название в командной строке,чтобы запустить его на исполнение. Windows Scripting Host не требователен к памяти и прекрасно годится для автоматизации Windows.

Хост и скриптовые машины

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

Чтобы справиться с такими задачами, можно воспользоваться дополнительными COM-объектами. Ряд таких объектов входит в поставку WSH, а один из них, WScript, даже уже имеет созданный экземпляр, и им можно пользоваться непосредственно, без предварительного создания. Остальные создаются с помощью синтаксиса, соответствующего конкретному языку или функции WScript.CreateObject.

Объекты WSH

В поставку Windows Scripting Host входят 4 объекта: Wscript, WshShell, WshNetwork, и FileSystemObject.

Каждый объект, естественно, имеет набор собственных методов и свойств.

Объект Wscript позволяет скриптам «познать самих себя». Вдобавок этот объект позволяет скриптам запускать приложения и управлять ими. Основные свойства и методы этого объекта перечислены в таблице 1.

Свойство Описание
Arguments Возвращает указатель на список аргументов командной строки
FullName Возвращает имя исполняемого файла хоста и полный путь к нему (например, C:\Windows\wscript.exe)
Name Выводит замечательную надпись Windows Scripting Host
Path Определяет каталог и путь, содержащие wscript.exe или cscript.exe
ScriptFullName Возвращает полный путь и имя исполняемого в данный момент скрипта
ScriptName То же, что и ScriptFullName, но без пути
Version Возвращает версию установленного Windows Scripting Host
Метод Описание
CreateObject Создает объект по его ProgID
ConnectObject Позволяет подключиться к событиям объекта. В качестве параметра принимает объект, к которому надо подключиться и префикс соответствующих событиям процедур, реализованных в скрипте
DisconnectObject Отключает от объекта, подключенного предыдущим методом
Echo Выводит текстовую строку (в cscript — в StdOut, в Wscript — в виде диалогового окна.
GetObject Позволяет получить указатель на объект из файла или объекта, указанного в параметре strProgID.
Quit Завершает скрипт
Sleep Переводит скрипт в неактивное состояние на время, указанное в миллисекундах

Таблица 1. Методы и свойства объекта WScript

Объект WshShell позволяет скриптам устанавливать и конфигурировать другие приложения. Он также дает возможность общаться с пользователем, изменять Реестр и находить папки. Некоторые его свойства и методы перечислены в таблице 2.

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

Возвращает полный путь к специальным папкам типа меню Пуск.

Вот список доступных папок: AllUsersDesktop, AllUsersStartMenu, AllUsersPrograms, AllUsersStartup, Desktop, Favorites, Fonts, MyDocuments, NetHood, PrintHood, Programs, Recent, SendTo, StartMenu, Startup, Templates.

Свойство Описание
Environment
Метод Описание
Run Запускает приложение. strCommand — исполняемая команда, параметр intWindowStyle позволяет управлять положением и поведением окон, а bWaitOnReturn позволяет указать объекту WshShell, надо ли ожидать окончания выполнения запущенного приложения.
Popup Ещё один способ вывести текст в окне
CreateShortcut Создает ярлыки файлов или URL
RegRead Возвращает значение ключа или записи реестра по его имени
RegWrite Создает новые ключ или запись Реестра или записывает новое значение существующих.
RegDelete Удаляет ключ или запись реестра
LogEvent Позволяет записать сообщение в event log Windows NT или W2K или файл WSH.log в случае Windows 9х
ExpandEnvironmentStrings Позволяет раскрыть строку, содержащую переменные среды
SendKeys Позволяет эмулировать клавиатурный ввод
Читайте также:  Расширения для uc browser windows

Таблица 2. Свойства и методы объекта WshShell

Объект WshNetwork используется при создании скриптов, модифицирующих конфигурацию сети. Это включает задачи типа подключения к сети, инсталляцию принтеров, назначение буквенных обозначений сетевым дискам и так далее. Основные свойства и методы WshNetwork перечислены в таблице 3.

Свойства Описание
ComputerName Возвращает имя компьютера
UserDomain Возвращает имя домена, в котором зарегистрирован пользователь
UserName Возвращает догадаетесь что!
Метод Описание
MapNetworkDrive Присваивает назначенную пользователем букву сетевому диску
EnumNetworkDrives Возвращает список подключенных сетевых дисков
RemoveNetworkDrive Отключает сетевой диск
AddWindowsPrinterConnection Позволяет установить новый принтер в Windows, то есть указать путь к принтеру и инициировать установку драйверов.
AddPrinterConnection Подключает сетевой принтер
RemovePrinterConnection Отключает сетевой принтер
SetDefaultPrinter Задает принтер по умолчанию
EnumPrinterConnections Возвращает список подключенных принтеров

Таблица 3. Свойства и методы объекта WshNetwork

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

FileSystemObject имеет методы BuildPath, CopyFile, CopyFolder, CreateFolder, CreateTextFile, DeleteFile, DeleteFolder, DriveExists, FileExists, FolderExists, GetAbsolutePathName, GetBaseName, GetDrive, GetDriveName, GetExtensionName, GetFile, GetFileName, GetFolder, GetParentFolderName, GetSpecialFolder, GetTempName, MoveFile, MoveFolder, OpenTextFile. Их названия в отдельном объяснении не нуждаются. Его единственное свойство Drives возвращает список дисков, доступных на данной машине, включая сетевые.

Что вам нужно для начала

Первое, что надо сделать — убедиться, что Windows Scripting Host у вас есть. В состав W2K он входит изначально. Если вы используете Windows 98 или Internet Information Server 4.0, или если вы устанавливали Option Pack для Windows NT 4 и для Windows 95, он у вас точно есть. В случае Windows 95 все усложняется, и Windows Scripting Host придется скачивать с сайта Microsoft (msdn.microsoft. com/ scripting). Напишите в командной строке wscript. Если появилось диалоговое окно с надписью, отличной от «File not found», все в порядке.

Microsoft не поставляет визуального редактора скриптов WSH. Но Notepad вполне годится.

Создание и запуск скриптов

По сравнению с различными программистскими изысками писать скрипты для Windows Scripting Host относительно просто. В Notepad вы пишете свой скрипт с использованием упомянутых объектов. Потом сохраняете файл с расширением .vbs для VBScript или .js для JScript.

Запуск скриптов — тоже несложная задача. Есть несколько способов. Самый простой — командная строка DOS и аналогичная версия Windows Scripting Host, CSCRIPT.ЕXE. Эта версия позволяет контролировать исполнение скрипта с помощью параметров командной строки.

Параметры хоста включают или отключают различные опции Windows Scripting Host и всегда предваряются двумя слэшами (//). Имя скрипта — это всегда имя файла, а параметры скрипта — параметры, передаваемые скрипту. Эти параметры всегда предваряются одним слэшем (/). Таблица 4 содержит некоторые параметры CSCRIPT.EXE.

Включает гордую надпись (увы, используется по умолчанию)

Параметр Описание
//B Включает пакетный режим
//T Задает таймаут в секундах
//I Выключает пакетный режим (используется по умолчанию)
//logo
//nologo Выключает эту гордую надпись.
//H:Cscript or Wscript Делает CSCRIPT.EXE или WSCRIPT.EXE хостом по умолчанию, т.е. ассоциирует их с расширениями скриптов.
//S Сохраняет установки командной строки для текущего пользователя

Таблица 4. Параметры командной строки CSCRIPT.EXE

Если вы не желаете видеть окошек с кнопкой ОК, используйте cscript.exe, а для вывода сообщений пользуйтесь методом WScript.Echo.

Для запуска скриптов с помощью wscript.exe имеются три пути.

Один из них — просто дважды щелкнуть по файлу или иконке. Другой — выбрать Выполнить. из меню Пуск и написать полное имя файла в текстовом поле Открыть. Наконец, можно запустить сам WSCRIPT.EXE из того же Выполнить. добавив к нему имя скрипта и любой из возможных параметров.

Пример скрипта

Попробуем написать какой-нибудь скрипт на VBScript. Конкретный пример, приведенный в Листинге 1, предоставлен Microsoft и может быть получен (как и несколько других) с их WWW-сайта: msdn.microsoft.com/scripting/windowshost/download/default.htm.

Листинг 1

Этот скрипт создает на рабочем столе ярлык для Notepad. Замечу, что сейчас в наши задачи не входит обучение пользователя программированию на VB или Java. Тем не менее, этот пример даст вам представление о том, что Windows Scripting Host может делать при наличии некоторых базовых навыков программирования.

Теперь пора перейти к более существенным применениям WSH. Наверное, больше всего WSH пригодится администраторам, осатаневшим от регулярного повторения одних и тех же действий. Администраторы Windows NT не располагали возможностями UNIX-администраторов, использовавших скрипты испокон веков. С появлением WSH ситуация изменилась, тем более, что WSH позволяет воспользоваться внешними по отношению к скриптовым языкам технологиям, таким, как Windows Management Instrumentation (WMI) и Active Directory Services Interface (ADSI).

WMI и ADSI мы будем использовать, я предполагаю, что у вас есть по крайней мере общее понимание этих технологий. Больше информации о них вы можете получить по адресам http://msdn.microsoft.com/developer/sdk/wmisdk/default.asp и http://www.microsoft.com//adsi/

В этих примерах предполагается, что вы используете W2K, для других платформ, вам, вероятно, придется установить WMI и ADSI.

Использование WSH и WMI для создания Logon-скриптов

Как вы знаете, такие скрипты подразумевают запуск в момент старта. В Листинге 2 приведен загрузочный скрипт, который определяет тип входящего в систему пользователя и выполняет задачи, основываясь на этой информации.

Читайте также:  Версия этого файла несовместима с используемой версией windows у меня 32

Листинг 2

Первое, скрипт создает некоторые общие объекты которые вам придется использовать, например, объекты WScript.Network и WScript.Shell. Дальше он использует эти объекты для определения имени пользователя и доменной информации. Наконец, используя ADSI скрипт возвращает информацию содержащую группу пользователя. Эта информация используется для определения подходящей подпрограммы, вызываемой для каждой из пользовательских групп. Это выполняет оператор Select Case.

Загрузочный скрипт для пользователей создаваемой нами группы Windows NT (под именем YourNewGroup) использует сетевые возможности WSH. Он проверяет, используется ли буква Z. Если она свободна, диском Z назначается \\yourserver\NETLOGON используя формат \\server\share.

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

Как автоматизировать рутинные задачи обслуживания в Windows 10

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

Для начала мы рассмотрим несколько встроенных средств Windows, которые помогают автоматизировать определенные задачи, а затем приведем примеры такой автоматизации.

Используемые инструменты

Скорее всего, вы уже сталкивались с такими инструментами, как Командная строка, PowerShell и Планировщик заданий. Если вы — новичок, то ознакомьтесь с описанием данных встроенных средств Windows.

Командная строка и пакетные файлы .BAT

Командная строка в Windows 10 является преемником командной строки MS-DOS и представляет собой программу-интерпретатор командной строки. Файл, который содержит несколько команд или инструкций называется «пакетным файлом» и обычно имеет расширение .bat. Он может использоваться для автоматизации рутинных задач, например, для резервного копирования файлов и папок на переносной диск. Чтобы найти командную строку введите cmd или Командная строка в меню «Пуск» и выберите предложенный вариант.

Вам нужно лишь собрать необходимые команды в текстовом файле с расширением «.bat» или «.cmd». Вы можете просто открыть файл для его выполнения — Windows 10 выполнит команды в файле последовательно или в соответствии с запрограммированным порядком.

Полный список команд с описанием доступен на сайте Microsoft.

Скрипты PowerShell

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

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

Чтобы получить доступ к Windows PowerShell, введите PowerShell в поисковой строке меню Пуск. Вы увидите две программы — «PowerShell» и «PowerShell ISE». PowerShell представляет собой интерпретатор командной строки, а PowerShell ISE применяется для написания скриптов (с расширением «.ps1»), которые содержат группу команд, также, как и пакетные файлы .bat.

Полный список команд Powershell с описанием доступен на сайте Microsoft.

Планировщик заданий

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

Чтобы запустить планировщик, введите фразу Планировщик заданий в поисковой строке меню Пуск. Обратите внимание, что некоторые программы Windows и некоторые сторонние приложения (например, Google Chrome) создают запланированные задачи для нужд обслуживания, поэтому не стоит редактировать или отключать уже имеющиеся задачи.

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

Приступим к автоматизации

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

Запуск нескольких приложений

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

Например, вы можете создать пакетный файл для открытия папки Документы, браузера Google Chrome, документа Word с помощью кода, указанного ниже. Обратите внимание, что переменная «%USERPROFILE%» соответствует вашей пользовательской директории в Windows.

Запуск приложений от имени администратора

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

Читайте также:  Amd radeon hd 6700m series driver windows 10

С этой проблемой нам поможет справиться Планировщик заданий. Только данный встроенный инструмент позволяет запускать программу с правами администратора без участия пользователя. Вы можете запустить приложение или несколько приложений (с помощью пакетного скрипта), используя Планировщик заданий. Разберем, как это сделать:

  • Откройте Планировщик заданий. Выберите Действие > Создать задачу в верхнем меню или одноименную функцию на панели «Действия» справа.
  • На вкладке «Общие» укажите название, например «Задача администратора», и отметьте галочку «Выполнить с наивысшими правами».

  • На вкладке «Триггеры» нажмите «Создать..» и поле «Начать задачу:» укажите вариант «При запуске».
  • На вкладке «Действия» также нажмите «Создать..».
  • В открывшемся окне выберите действие «Запуск программы», в поле «Программа / Сценарий» укажите ваш исполняемый или пакетный файл и нажмите ОК.

  • Теперь убедитесь, что на вкладке «Параметры» отмечена опция «Выполнять задачу по требованию» и нажмите ОК для добавления задачи.
  • Все готово. Теперь указанная программа будет запускаться автоматически с правами администратора сразу после запуска системы.

Удаление старых файлов

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

Аналогичным образом вы можете создать .bat файл для удаления старых файлов определенного расширения или файлов в определенных директориях или вложенных папках, возраст которых превышает заданный предел. Приведенный ниже код удаляет документы .docx в папке Документы возрастом более 20 дней (вы можете указать своё число дней, изменив значение, следующее за аргументом /d).

Вы также можете изменить путь, изменив значение, следующие за аргументом /p на свою папку, файлы в которой нужно удалить. Опять же, переменная «%USERPROFILE%» соответствует вашей пользовательской директории в Windows.

Очистка корзины

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

  • Откройте Планировщик заданий.
  • Откройте Библиотека планировщика заданий и в меню «Действие» выберите пункт «Создать папку» и назовите ее «Мои задачи».
  • Выберите папку «Мои задач» и в меню «Действие» выберите «Создать задачу».
  • В окне создания задачи на вкладке «Общие» укажите название «Очистка корзины».
  • На вкладке «Триггеры» нажмите кнопку «Создать. » и в поле «Начать задачу:» в открывшемся окне выберите «По расписанию».
  • Выберите опцию «Еженедельно или ежемесячно» в зависимости от ваших предпочтений и нажмите ОК.

  • На вкладке «Действия» выберите «Создать. » и в поле «Программа / Сценарий» введите «PowerShell.exe»
  • В том же окне в поле «Добавить аргументы (необязательно)» введите следующий запрос -NoProfile -Command «Clear-RecycleBin -Force» и нажмите ОК.

  • На этом все. Просто сохраните задание, и корзина будет очищаться регулярно автоматически.

Отключение компьютера

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

Приведенный ниже скрипт покажет сообщение в 11 вечера и выключить компьютер спустя 120 секунд (2 минуты). Вы можете указать другое время, изменив значение переменной %time%

Примечание: чтобы сохранить прогресс работы у вас будет целых 120 секунд, вместо 30 секунд по умолчанию. Вы можете остановить процесс отключения компьютера, нажав Win + R , введя команду shutdown -a и нажав Enter . Очень просто, не правда ли?

Резервное копирование файлов и папок

Конечно, существует много сторонних решений для резервного копирования файлов, в том числе облачные сервисы Dropbox или Backup and Sync от Google. Однако, если вы хотите иметь полный контроль над своими конфиденциальными файлами и не хотите «светить» их на облачных серверах, тогда можно настроить автоматическое резервное копирование на переносной жесткий диск или флешку. Нам снова поможет пакетный скрипт. Ничего не нужно скачивать, все делается очень просто.

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

Некоторые замечания

Скорее всего, вам понравится заниматься автоматизацией задач. Однако для удобства, вместо приложения Блокнот лучше воспользоваться более продвинутым редактором кода, например Notepad++. Так например, вы сможете без лишних трудностей добавлять сообщения на русском языке, используя меню Notepad++ «Кодировки» -> «Кодировки» -> «Кириллица» -> «OEM 866».

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

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

Оцените статью