Администрирование Windows Инструменты командной строки и автоматизации Tue, December 12 2017  

Поделиться

нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.


Инструменты командной строки и автоматизации Печать
Добавил(а) microsin   

Несмотря на простоту использования графического интерфейса пользователя Windows (GUI), интерфейс командной строки остается полезным способом выполнить многие задачи обслуживания, конфигурации и диагностики. Многие наиболее важные инструменты диагностики, такие как ping, tracert и nslookup доступны только из командной строки, если конечно Вы не купили сторонние графические оболочки для выполнения тех же самых функций. И хотя термин "bat-файл" может вернуть воспоминания о не комфортной старой рабочей среде MS-DOS, bat-файлы и программные скрипты остаются мощными инструментами, предоставляющий полезный способ инкапсулировать в себе общие функции управления. Утилиты командной строки, bat-файлы и скрипты, основанные на WSH (Windows Script Host) совместно предоставляют полный набор строительных блоков, из которых Вы можете создать высокоуровневые утилиты для выполнения сложных задач.

Примечание: это перевод части книжки "Microsoft® Windows 7 In Depth" [1], авторы Brian Knittel, Robert Cowart, касающейся настройки и конфигурирования рабочей среды с командной строкой. Более полное руководство с примерами можно получить в книге "Windows 7 and Vista Guide to Scripting, Automation, and Command Line Tools", автор Brian Knittel.

[Командная строка Windows 7]

Открыть окно приглашения командной строки (Command Prompt), где Вы сможете вводить команды и получать от них сообщения о результатах работы, кликните на кнопку Start (Пуск) -> All Programs (Все программы) -> Accessories (Стандартные) -> Command Prompt (Командная строка). Есть альтернативный способ - кликните Start и в поле Search (поиск) введите cmd. Посте того, как будет найден файл cmd.exe, нажмите клавишу Enter.

Примечание: похожим образом запускается интерпретатор команд и на Windows XP, только cmd нужно вводить в приглашении "Выполнить...", после чего нажать на OK.

После этой операции откроется окно Command Prompt, как это показано на рис. 29.1.

command line and automation tools fig29 1

Рис. 29.1. Окно командной строки - ворота в мир инструментов мощной системы управления Windows.

Главное отличие стандартного приложения Windows с графическим интерфейсом и программой командной строки (по терминологии Windows последняя называется консольной программой) — программа командной строки не использует графический вывод информации или выпадающие меню. Вместо этого Вы вводите команды в окне консоли Command Prompt, чтобы указать системе Windows что-нибудь сделать, и программы в ответ возвращают Вам некую информацию в текстовом, удобочитаемом для человека виде. Каждая командная строка начинается с имени программы, которую Вы хотите запустить, за которой идет дополнительная информация, которая называется аргументами. Аргументы говорят программе, что конкретно нужно сделать (уточняют действие и дают некие входные данные).

Совет: если Вы планируете регулярно использовать окно Command Prompt, то для быстрого доступа к нему прикрепите его к панели задач. Для этого сделайте правый клик на иконку Command Prompt в панели задач, и выберите "Pin This Program to Taskbar" (прикрепить эту программу к Панели Задач). Также можно перетащить ярлычок окна Command Prompt на Рабочий Стол Windows (Desktop).

Также можно открыть окно Command Prompt из Проводника (Windows Explorer). Для этого в Проводнике удерживайте клавишу Shift, и выполните правый клик на имени нужной папки, после чего выберите в контекстном меню "Open Command Window Here". Откроется окно командной строки (Command Prompt) и выбранная папка будет для этого окна команд папкой по умолчанию.

Расширения имен для запускаемых файлов. У большинства файлов Windows есть так называемое расширение имени файла - суффикс, следующий после точки, который обычно состоит из трех английских букв. Изначально это расширение предназначено для определения типа файла. Некоторые из расширений обозначают запускаемые файлы программ разного вида, это такие расширения файлов, как .exe, .bat, and .vbs (большинство общих расширений файлов программ показано в таблице 29.1). Для выполняемой команды не обязательно вводить имя программы полностью, достаточно ввести имя без расширения. Например, для утилиты Ping можно вести команду ping (с опциями, указывающий адрес для пинга) вместо ping.exe. В случае ввода команды без расширения операционная система Windows предполагает, что это программа, и сама добавляет расширение файла, когда ищет программу по своему внутреннему списку поиска, и если такая программа найдена, то запускает её. После этого запущенная программа получает список аргументов, указанный в строке команды после имени программы, и программа должна соответствующим образом обработать эти аргументы.

Таблица 29.1. Типовые расширения имени для выполняемых файлов.

Расширение Тип программы
.bat, .cmd bat-файл, скрипт из набора команд.
.com Архаичная программа MS-DOS.
.exe GUI-программа Windows, консольная программа, или программа MS-DOS (Windows определяет тип программы по содержимому файла).
.js Скрипт, написанный на языке JavaScript.
.msc Консоль управления Windows (Microsoft Management Console).
.vbs Скрипт, написанный на языке VBScript.

Пути поиска программ, переменная окружения PATH. Есть очень важный момент, касающийся запуска программ в системе Windows. Когда Вы вводите командную строку, то при её запуске система Windows ищет указанную программу по своему списку каталогов (папок). Этот список называется "путь поиска" (search path), и все перечисленные каталоги поиска находятся в переменной окружения PATH, и полный список расширений, которые Windows просматривает, находится в переменной окружения PATHEXT. По умолчанию путь поиска Windows 7 включает следующие папки:

C:\Windows\system32
C:\Windows
C:\Windows\System32\Wbem
C:\Windows\System32\WindowsPowerShell\v1.0

Это означает, что любой файл программы, bat-файл или скрипт, если он находится в одной из этих перечисленных папок, может быть запущен из любого текущего каталога простым вводом имени (даже без расширения имени файла). Таким способом можно запустить как встроенные программы Windows (ping, calc, explorer и т. д.), так и любые программы командной строки. Например, просто введите команду notepad для запуска программы текстового редактора Блокнот (Notepad).

Если Вы создаете свои собственные bat-файлы, скрипты или программы, то хорошей идеей будет создать для них отдельную папку, и поместить путь до этой папки в пути поиска (переменную окружения PATH). Об этом будет рассказано в разделе "Установка значений переменных окружения".

[Запуск команд с повышением привилегий]

Некоторые утилиты командной строки (а иногда программы с графическим интерфейсом) требуют для своей корректной работы повышенных административных привилегий (права для пользователей и групп задаются через инструмент User Account Control). Чтобы запустить программу командной строки с повышенными привилегиями, Вы должны запустить её из командной строки (окна Command Prompt), которая сама имеет повышенные права.

Чтобы открыть окно Command Prompt с повышенными административными привилегиями, кликните Start (Пуск) -> All Programs (Все программы) -> Accessories (Стандартные). Затем сделайте правый клик на Command Prompt, и выберите Run As Administrator (запуск от имени Администратора). Или, если у Вас иконка Command Prompt прикреплена к Вашей панели задач (taskbar), есть 2 быстрых способа открыть приглашение командной строки с повышенными привилегиями:

• Сделайте правый клик на иконку, правый клик на метку Command Prompt в выпадающем меню Jump List, и выберите Run As Administrator.
• Удерживайте комбинацию клавиш Shift+Ctrl и кликните на иконку.

Предупреждение: будьте очень осторожны, когда используете командную строку с административными привилегиями. Любая команда, которая будет запущена оттуда, будет сразу работать с повышенными правами, и система UAC больше не будет предупреждать о том, что программа запускается с административными правами. Неосторожные действия администратора могут привести к повреждению системы Windows. Это также касается и запуска с повышенными привилегиями графических (GUI) программ Windows - например, если Вы введете в Windows 7 команду optionalfeatures, то откроется диалог настроек опций Windows Features, и Вы не получите окошка предупреждения перед запуском этого диалога.

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

Если Вы хотите то можете настроить ярлычок Command Prompt, прикрепленный к Панели Задач (taskbar), чтобы он по умолчанию запускался с повышенными привилегиями. Сделайте правый клик на иконку и выберите Properties (Свойства). На закладке Shortcut (Ярлык) кликните на кнопку Advanced (Дополнительно), и кликните Run As Administrator (запуск от имени администратора). Переименуйте ярлычок, чтобы он ясно обозначал запуск приглашения командной строки с повышенными привилегиями.

[Как научиться работать с программами командной строки]

Как узнать, какие программы имеются и как их использовать? Для этого обратитесь к документации по рабочему окружению командной строки (command-line environment). По какой-то причине Microsoft больше не предоставляет эту информацию в разделе справки "Help and Support", но сегодня можно найти нужную информацию онлайн, в сети Интернет, и многие программы могут сами предоставить о себе необходимую информацию по использованию. Также Вы можете обратиться к книге "Windows 7 and Vista Guide to Scripting, Automation, and Command Line Tools". Для общего поиска в Интернете запустите поисковую систему Google, и найдите список команд по первым буквам A–Z для Windows Server 2008 или Windows Server 2003. Большинство из перечисленных там команд имеются в Windows 7. Пример такой строки для поиска [2]:

site:microsoft.com command line a-z windows server

Чтобы получить дополнительную информацию по интересующей команде, попробуйте следующие методы в том порядке, в каком они перечислены ниже - на примере получения информации по команде rasdial. Та же техника может быть применена и к любой другой интересующей команде Windows.

• Большинство утилит командной строки выводит подсказку по своему использованию при добавлении опции /? к своей командной строке. Например, чтобы получить справку по команде rasdial, введите команду rasdial /? и нажмите клавишу Enter. Некоторые утилиты для вывода справки используют опцию -?, --? --h или -help.

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

- с помощью вертикальной линейки прокрутки окна Command Prompt можно прокручивать выведенный текст вверх или вниз.
- нажмите кнопку F3, чтобы вспомнить введенную команду, и добавьте в конец командной строки | more, после чего нажмите Enter. Это действие перенаправит вывод программы в команду more, которая отображает переданный на вход текст по одному экрану. Для перехода к следующему экрану нажимайте Enter.

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

• Откройте браузер Internet Explorer и введите rasdial в окне поиска (Search window). Также можно воспользоваться поисковой системой Google, если ввести в строке поиска:

site:microsoft.com rasdial

Не каждый из перечисленных способов получения подсказки может хорошо сработать для любой команды, но как минимум один из них даст объяснение, что команда делает и с какими опциями командной строки её нужно использовать, а также примеры такого использования. Опции командной строки для операционных систем Windows 7, Windows Vista, Windows XP, Windows Server 2003 и Windows Server 2008 почти всегда одни и те же, так что если Вы ищете информацию для Windows 7, то скорее всего подойдет информация, относящаяся и к другим версиям Windows.

[Копирование и вставка в окне командной строки]

Хотя можно использовать оператор перенаправления (> или >>) для вывода текста утилитами командной строки в текстовые файлы, также Вы можете использовать функцию копирования и вставки буфера обмена (cut/paste, copy/paste) для ввода текста как в окно командной строки, так и для того, чтобы брать оттуда текст.

Чтобы вставить (paste) текст в окно командной строки в позицию курсора, сделайте клик на системном меню окна командной строки (верхний левый угол окна) и выберите Edit (Редактировать) -> Paste (Вставить). Это можно проще всего сделать без использования мыши: нажмите клавиши Alt+Spacebar (откроется системное меню) и введите E P (для английской версии системы Windows) или И а (для русской версии). Для навигации по пунктам меню можно использовать клавиши со стрелками, для выбора пункта клавишу Enter.

Чтобы скопировать текст (copy) из окна командной строки в Буфер Обмена (Clipboard), кликните на системное меню и выберите Edit (Редактировать) -> Mark (Пометить). Альтернативно нажмите Alt+Spacebar E M (для английской версии) или Alt+Spacebar И П (для русской версии). После этого мышью выделите в окне командной строки прямоугольную область с нужным текстом и нажмите Enter. Это действие скопирует выделенный текст в Буфер Обмена.

По умолчанию мышь не будет выбирать текст, пока не будет выбрана функция Mark (Пометить). Это упрощает работу с программами MS-DOS, которые не рассчитаны на использование мыши. Это можно изменить, если войти в системное меню (кликом мыши или нажатием Alt+Spacebar), выбрать Defaults (Умолчания), поставить галочку Quick Edit (Выделение мышью). Когда эта опция разрешена, Вы можете использовать мышь для моментального копирования текста из консоли в Буфер Обмена, без специальной активации функции Mark (Пометить) через системное меню.

[Установка значений переменных окружения]

Использование системных переменных (Environment Variables) - один из способов, которым Windows управляет некоторыми настройками, и обменивается информацией с пользователем. В частности, эти переменные показывают, где находятся системные папки Windows, какие пути используются при поиске запускаемых программ, где находится папка для временных файлов. Также в переменных окружения хранятся и другие настройки, которые влияют на работу программ и производительность системы. Дополнительно переменные окружения могут использоваться в bat-файлах или скриптах для хранения информации о выполняемой работе.

В Windows 7 начальное значение переменных окружения, которые будут определены при запуске каждого окна Command Prompt, когда оно открыто первый раз, настраивается с помощью диалога GUI, показанного на рис. 29.2.

command line and automation tools fig29 2

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

Обратите внимание, что этот диалог поделен на 2 секции, System Variables (системные переменные) и User Variables (переменные пользователя). Нижняя секция System Variables определяет глобальные переменные окружения, которые установлены для каждой учетной записи пользователя. Верхняя секция User Variables определяет дополнительные переменные окружения по умолчанию для текущего аккаунта пользователя, который сейчас работает в систем. Они могут добавлять какие-либо переменные к System Variables, либо переназначать эти переменные.

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

• Если у Вас открыто окно командной строки Command Prompt, то введите команду start sysdm.cpl и нажмите Enter. Вам может понадобиться подтвердить запрос подтверждения системы UAC. Затем выберите закладку Advanced (Дополнительно), и кликните на кнопку Environment Variables (Переменные среды).
• Альтернативно кликните на кнопку Start (Пуск), сделайте правый клик на Computer (Мой компьютер) и выберите Properties (Свойства). Выберите Advanced System Settings (Дополнительные настройки системы). Вам может понадобиться подтвердить запрос подтверждения системы UAC. Затем кликните на кнопку Environment Variables (Переменные среды).

Теперь Вы можете редактировать списки как верхней пользовательской части переменных (персональные настройки), так и нижней (настройки переменных уровня системы).

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

• Для редактирования системных переменных Вы можете использовать один из вышеперечисленных методов, однако Вам предстоит ввести пароль администратора. Не меняйте верхнюю (персональную) часть окна диалога — Вы поменяете настройки другой учетной записи, не Вашей.
• Чтобы редактировать персональные настройки переменных окружения, Вы должны использовать следующий метод: кликните Start (Пуск) -> Control Panel (Панель Управления) -> User Accounts and Family Safety -> User Accounts (учетные записи пользователей). В списке задач левой стороны окна кликните Change My Environment Variables (Изменить мои переменные окружения). Вы сможете редактировать только свои собственные (персональные) настройки переменных из верхней части диалога.

После того, как открылся диалог Environment Variables (Переменные среды), Вы можете создавать новые переменные, удалять переменные или выбрать и редактировать существующие переменные с использованием соответствующих кнопок.

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

1. Список переменных уровня системы.
2. Список переменных пользователя. На этом шаге переменная PATH обрабатывается специальным способом (ниже это будет рассмотрено более подробно).
3. Набор команд в autoexec.nt. Это относится только для приложений MS-DOS или Windows 3.x. Для получения дополнительной информации см. раздел "Рабочее окружение MS-DOS".
4. Последующие определения, которые выдаются командами set, введенными в командной строке или которые встречаются в работающем bat-файле. Эти изменения прикладываются только к определенному окну, и исчезнут, как только это окно будет закрыто.

[Настройка переменной окружения PATH]

Если Вы пишете bat-файлы или скрипты, то полезно сохранять их в одной папке, и добавить её полное имя к переменной PATH, чтобы Вы могли запускать Ваши bat-файлы и скрипты из любого каталога простым вводом имения файла скрипта (без ввода его полного имени вместе с каталогом размещения).

Из-за того, что ошибка в редактировании переменной PATH может привести к тому, что Windows не сможет найти некоторые приложения, которые нужно запустить, предоставляется специальная обработка "персонального" определения PATH:

• Для переменной PATH определение пользовательских переменных (в разделе User Variables) добавляется в конец (приклеивается) определения системной переменной PATH (из раздела System Variables).
• Для всех других переменных окружения определение пользовательских переменных (в разделе User Variables) переназначит значение определения системных переменных (из раздела System Variables), если имена переменных из этих разделов совпадает.

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

Чтобы создать папку для своих собственных скриптов и bat-файлов, используя одну из следующих двух процедур:

• Если Вы хотите использовать скрипты и bat-файлы для своего собственного использования, то создайте папку, и поместите полный путь до неё в "персональную" переменную PATH. Например, создайте папку c:\scripts, затем добавьте переменную PATH в верхнюю часть диалога Environment Variables (переменные среды, см. рис. 29.2) со значением c:\scripts. Если нужно добавить больше одного пути в персональную переменную PATH, то вставляйте точку с запятой (;) между отдельными полными путями папок.
• Если Вы ходите создавать скрипты и bat-файлы, которые могут использовать любой пользователь этого компьютера (не только под Вашей учетной записью), то создайте папку и убедитесь, что настроены разрешения NTFS на запуск и чтение из неё (и/или другие необходимые права на определенные действия), так чтобы пользователи могли использовать скрипты в этой папке (если папка находится не на диске NTFS, а на диске FAT, то это не требуется).

Например, Вы создали папку c:\scripts на томе NTFS. Сделайте правый клик на неё, выберите Properties (Свойства), и выберите закладку Security (Безопасность). Если пользователи (Users) не видны в разделе групп (Group) или имен пользователей (User Names), то кликните Edit, затем Add, и добавьте пользователей в список. Убедитесь, что стоит галочка разрешения на праве чтения и выполнения (Read & Execute).

Примечание: чтобы узнать больше по поводу редактирования разрешений на файлы и папки, см. [3].

Затем с осторожностью отредактируйте переменную PATH в нижней части диалога Environment Variables (Переменные среды), где изменяются системные переменные, см. рис. 29.2. Добавьте точку с запятой (;) в конец существующего текста значения переменной, и затем добавьте туда имя папки c:\scripts.

Теперь Ваша папка будет частью PATH, когда Вы откроете новое окно приглашения командной строки (cmd.exe, Command Prompt window).

[Рабочее окружение MS-DOS]

Если Вы все еще используете программы MS-DOS, то должны иметь в виду, что 32-битные версии Windows 7 могут поддерживать программы MS-DOS.

Windows 7 и все другие версии Windows, основанные на Windows NT, запускают приложения MS-DOS из программы, которая называется ntvdm, она представляет для Windows NT виртуальную машину DOS (Virtual DOS Machine). Ntvdm также используется системой поддержки окружения (support environment) Windows 3.x. Она симулирует окружение, которое ожидают программы DOS, и которое позволяет им корректно работать под управлением Windows.

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

• Сконфигурируйте переменные пользователя в диалоге Environment Variables, как это ранее обсуждалось в разделе "Установка значений переменных окружения".
• Сделайте выбор настроек в меню управления окном DOS.
• Сделайте настройки в диалоге Properties (Свойства) ярлыка для приложения DOS.
• Настройте пользовательские конфигурационные файлы autoexec.nt и config.nt, чтобы они могли адресовать специальную память, драйвер или могли удовлетворять требованиям к переменным окружения, которые могут присутствовать у программы DOS.
• Введите команды, изменяющие окружение, в приглашении командной строки.

Эти настройки будут обсуждаться подробнее далее.

Примечание: старые приложения можно запускать с помощью программного обеспечения виртуальных машин. Больше информации о системе Virtual XP см. в Appendix A, "Using Virtualization on Windows 7" [1].

MS-DOS и 16-битные подсистемы Windows не работают на 64-битных версиях Windows. Если используете 64-битную версию Windows 7, и Вам все еще нужно запускать приложения MS-DOS или Windows 3.1, то можно загрузить и установить программу Microsoft Virtual PC с сайта microsoft.com, или использовать программное обеспечение VMWare от www.vmware.com. С любой из этих программ Вы можете настроить "виртуальный" компьютер, установить копию MS-DOS, Windows 3.1, или любой более поздней версии Windows, которая поддерживает запуск программ MS-DOS, и запустить старые приложения внутри этого симулированного рабочего окружения.

Удостоверьтесь, что установили Virtual PC "Guest Extensions" внутри хостовой операционной системы - эти расширения предоставляют важные улучшения. Например, они позволят Вам выполнять операции копирования и вставки между программами, работающими внутри и снаружи виртуального компьютера. Это не настолько легко, как встроенная поддержка старых приложений в 32-битных версиях Windows, однако работает очень хорошо.

Если у Вас Windows 7 Professional, Windows 7 Ultimate или Windows 7 Enterprise edition, то также можно использовать приложения MS-DOS, установленные в системе Virtual XP, которую можно бесплатно загрузить с сайта Microsoft.

[Если приложение MS-DOS говорит, что слишком много открытых файлов]

"Too Many Files Open" - если Вы запустили приложение MS-DOS, и получаете от него сообщение о слишком большом количестве открытых файлов, то нужно изменить config.nt (или создать пользовательский файл конфигурации). Вы должны поменять строку, которая выглядит как files = 40 на другую, где указано большее количество файлов, например files = 100. См. далее "Настройка Autoexec.nt и Config.nt", где даны инструкции по модификации config.nt.

[Приложения MS-DOS выводят странные символы]

Если старые приложения выводят некоторые кракозябры на экран, особенно в комбинации ??[, то Ваша программа ожидает поддержки драйвера ansi.sys. Вам нужно добавить следующую строку в файл config.nt, используя инструкции раздела "Настройка Autoexec.nt и Config.nt", которые найдете далее:

device=ansi.sys

[Настройка дополнительных опций (Advanced Settings) для приложений DOS]

Если Вы встречаетесь с трудностями при запуске каких-то программ DOS, то можете более точно подстроить окружение VDM с учетом требований этого конкретного приложения, позволяя ему работать более качественно, или в некоторых случаях вообще позволить ему запуститься. Настройки свойств DOS могут повлиять на множество аспектов работы приложения, таких как ниже перечисленные (но не ограничиваясь ими):

• Диск и папка (директория) выбранные по умолчанию при старте приложения.
• Полноэкранный режим или работа окне.
• Использование стандартной (Conventional) памяти.
• Использование расширенной или дополнительной памяти (Expanded, extended memory).
• Уровень приоритета приложения в многопоточной среде.
• Горячие клавиши приложения.
• Видимая и фоновая обработка (Foreground, background processing).

Чтобы отредактировать эти свойства для программы DOS, выполните следующее:

1. Найдите файл программы или ярлычок для неё.
2. Сделайте на нем правый клик и выберите Properties (Свойства).

Пройдитесь по закладкам, и используйте кнопку ? (со знаком вопроса) для получения подсказок по настройкам. Обучающие программы и игры часто требуют подстройки опций Memory (память) и Compatibility (совместимость).

Замечание: если программа сохранена на разделе, отформатированном в файловой системе NTFS, то стандартная закладка Security (Безопасность) также будет среди закладок диалога Properties.

Совет: закладка Screen (экран) опций использования определяет, как изначально будет отображаться окно программы - в полный экран или в отдельном окне. Вы можете переключаться между этими режимами с помощью горячей комбинации клавиш Alt+Enter. Конечно, в полноэкранном режиме графический курсор мыши исчезнет. Когда Вы используете мышь в приложении, отображаемом как окно, то мышь будет работать со стандартными меню окна, и будет работать, когда Вы переключите контекст на Рабочий Стол (Windows desktop) или другие программы. Не требуется драйвер мыши, основанный на DOS, поддержка мыши предоставляется автоматически.

[Настройка Autoexec.nt и Config.nt]

Вы можете далее выбрать конфигурирование окружения MS-DOS и Windows 3.x модификацией эквивалента в Windows 7 для старых файлов CONFIG.SYS и AUTOEXEC.BAT. Эти файлы называются config.nt и autoexec.nt, и они используются для конфигурирования каждой DOS VDM, когда она запускаются. Просто запомните:

• Файлы CONFIG.SYS и AUTOEXEC.BAT, находящиеся в корневом каталоге жесткого диска, полностью игнорируются Windows 7. Причина, по которой они все еще там находятся - одурачить старые приложения, которые не захотят запускаться, если они не увидят, что эти файлы присутствуют.
• Файлы config.nt и autoexec.nt в каталоге \windows\system32 используются, но только тогда, когда Windows нуждается в запуске приложения MS-DOS или Windows 3.x. Любое изменение этих файлов даст эффект в следующий раз, когда Вы снова запустите старое приложение - не нужно перезапускать Windows.

Стандартные настройки в config.nt, которые устанавливаются, когда Windows инсталлирована, показаны в следующем листинге. Комментарии REM удалены для краткости. Если Вы обновили свой компьютер от более ранней версии Windows, то файл config.nt может отличаться, потому что инсталлятор может сохранить кое-что из настроек предыдущей операционной системы.

dos=high, umb
device=%SystemRoot%\system32\himem.sys
files=40

Совет: на своих компьютерах автор [1] всегда меняет эти файловые настройки для установки files=100, и добавляет строку с ansi.sys (для дополнительной информации по ansi.sys см. следующую секцию):

device=%SystemRoot%\system32\ansi.sys

Вы можете отредактировать файлы config.nt и autoexec.nt в простом текстовом редакторе, таком как Notepad (мне больше всего нравится Notepad2 [10]). Однако это защищенные файлы, поэтому Вы должны запустить Notepad с повышением привилегий, следуя процедуре:

1. Кликните Start (Пуск) -> All Programs (Все программы) -> Accessories (Стандартные).
2. Выполните правый клик на ярлычке Notepad и выберите Run As Administrator (запуск от имени администратора).
3. Подтвердите запрос UAC, или введите запрошенный пароль учетной записи Administrator (Администратор). Альтернативно можно просто выполнить команду notepad в окне приглашения командной строки Command Prompt, запущенного с повышенными привилегиями администратора.
4. Кликните File (Файл) -> Open (Открыть), и перейдите в папку \windows\system32. Выберите файл autoexec.nt или config.nt, какой пожелаете редактировать.

Большинство настроек, используемых в MS-DOS 6, все еще будут работать в config.nt, с некоторыми изменениями, показанными в таблице 29.2.

Таблица 29.2. Расширенные настройки (Enhanced Settings) для config.nt.

Команда Описание
device= Инсталлирует загружаемые драйверы устройства. Драйверы, которые попытаются напрямую адресовать аппаратуру, вероятно работать не будут; однако Вы сможете загрузить драйверы дисплея, такие как ANSI.SYS, и драйверы памяти, такие как EMM.SYS и HIMEM.SYS.
dosonly Позволяет из COMMAND.COM загружать только программы DOS. Программы Windows и UNIX не запустятся.
echoconfig Говорит VDM напечатать команды CONFIG и AUTOEXEC, как они были выполнены из файлов.
files= Устанавливает максимальное количество одновременно открытых файлов. Рекомендуется установить этот параметр в 100.
ntcmdprompt Заменяет интерпретатор COMMAND.COM на 32-битный интерпретатор команд Windows, cmd.exe. После того, как Вы загрузите TSR (напомню, что TSR означает Terminate and Stay Resident, т. е. программа, которая после своего завершения остается резидентной в памяти), или когда Вы выходите из приложения в DOS, то получите вместо старого интерпретатора cmd.exe, который будет иметь дополнительные достоинства полного 32-битного интерпретатора.

Если Вы захотите, то можете создать измененные копии файлов config.nt и/или autoexec.nt, и просто использовать их для определенных программ DOS. Чтобы сделать это:

1. Используйте Notepad, запущенный с повышенными привилегиями, чтобы создать новый файл (файлы) настроек с разными именами. Например, Вы можете сохранить измененный config.nt под именем config_wordperfect.nt.
2. Найдите файл иконки программы MS-DOS .exe или .com в Windows Explorer (в Проводнике).
3. Сделайте правый клик на эту иконку, и выберите Properties (Свойства). Выберите закладку Program (Программа) и кликните кнопку Advanced (Дополнительные настройки). Введите путь до Вашего измененного файла конфигурации.

Совет: корректное редактирование этих файлов это Вам не два пальца об асфальт. Рекомендуется использовать хорошее руководство по DOS, такое как MS-DOS 6 User Guide, или еще лучше [9].

[Проблемы с DOSKEY и ANSI.SYS]

Двумя чаще всего использовавшимися улучшениями на компьютерах с системой MS-DOS были DOSKEY и ANSI.SYS. DOSKEY предоставлял улучшенное редактирование командной строки: например, использование клавиш со стрелками 'вверх' и 'вниз', чтобы вспомнить ранее введенные команды. ANSI.SYS давал приложениям DOS способ простого управления позицией и цветом текста, выводимого на экран.

ANSI.SYS можно сделать доступным для программ MS-DOS простым добавлением строки device=ansi.sys в файл config.nt (или альтернативный файл конфигурации). К сожалению, для 32-битных Windows не предоставляется поддержка курсора ANSI для символьных (консольных) приложений.

Примечание: если Вы делаете изменения в autoexec.nt или config.nt после запуска программы MS-DOS из окна командной строки (Command Prompt window), Вы должны закрыть окно командной строки и открыть новое для подсистемы MS-DOS, чтобы изменения были перезагружены в новой измененной конфигурации.

С другой стороны, DOSKEY - который значительно повышал удобство работы в старые времена DOS - работает только в 32-битном окружении консоли Windows, и даже если Вы попытаетесь загрузить его в autoexec.nt, он не будет функционировать в шелле COMMAND.COM системы MS-DOS.

[Bat-файлы]

Хотя интерпретатор Windows Script Host это наиболее мощный инструмент для создания Ваших собственных полезных программ, также полезно знать, как использовать язык bat-файлов. Bat-файлы (командные файлы) позволяют Вам получить преимущество от тысяч готовых программ командой строки, которые можно найти для Windows.

Bat-файл на самом простом уровне это просто список команд для окна Command Prompt, которые набраны в одном файле, строка за строкой, и этому файлу присвоено расширение *.bat или *.cmd. Когда Вы вводите имя bat-файла в приглашении командной строки, Windows ищет файл с таким именем в текущей директории и затем в путях папок, обозначенных переменной окружения PATH. Windows обрабатывает каждую строку bat-файла как команду, и запускает их одну за другой, как если бы Вы вводили их друг за другом вручную. Даже на таком самом простом уровне bat-файл окажет большую помощь, если Вам нужно вводить одинаковые команды снова и снова.

Кроме этого простого сценария использования есть несколько команд, которые можно использовать для написания простейших "программ" в bat-файле, чтобы предпринимались разные действия в зависимости от того, что было введено пользователем в командной строке, или в зависимости от результата выполнения предыдущих команд. Эти команды "программирования" значительно улучшились со времен MS-DOS, так что написание полезных bat-файлов в Windows 7 намного проще, чем это было раньше в старой MS-DOS. В частности, операторы IF и FOR были значительно расширены по функционалу. Вы можете выдавать приглашение ввода для пользователя. Можно манипулировать строками и именами файлов для выполнения арифметических вычислений. Вы можете создавать подпрограммы внутри одного файла. И это далеко не все.

Более подробно программирование bat-файлов рассмотрено в книге "Windows 7 and Vista Guide to Scripting, Automation, and Command Line Tools", опубликованной издательством Que. Некоторую документацию можно найти онлайн, в Интернете. После прочтения этой главы перейдите на сайт www.microsoft.com и запустите поиск следующих фраз:

Command Shell Overview
Environment Variables
Using Batch Parameters
Using Batch Files
Using Command Redirection Operators
Cmd
Command-Line Reference

Затем откройте окно приглашения командной строки cmd.exe и для примера поэкспериментируйте с командами:

help cmd
help set
help for
help if

См. также статьи [4, 5, 6].

Советы по созданию bat-файлов. В таблице 29.3 перечислены несколько коротких bat-файлов, которые автор [1] использует на своих компьютерах. Эти короткие скрипты дают возможность редактировать файлы, менять путь, просматривать папку в Проводнике, если просто ввести букву и далее имя папки или имя файла. В них нет ничего особенного в плане программирования, однако они позволяют экономить время при работе с окном командной строки.

Если Вы создали папку c:\scripts и добавили её путь в переменную окружения PATH, как обсуждалось ранее в разделе "Настройка переменной окружения PATH", то возможно Вы захотите создать подобные bat-файлы в этой папке для своего собственного использования.

Таблица 29.3. Маленькие полезные bat-файлы.

Скрипт Описание
ap.bat:

@echo off
for %%p in (%path%) do if /%%p/ == /%1/ exit /b
set path="%1";%path%
Добавляет указанную по имени папку в PATH, если её там еще нет (это остается только пока открыто текущее окно командной строки, где выполнен этот bat-файл).

Пример: ap c:\test
bye.bat:

@logout
Завершает сеанс пользователя в Windows (log off).

Пример: bye
e.bat:

@if /%1/ == // (explorer /e,.) else explorer /e,%1
Откроет Windows Explorer в режиме папки для просмотра указанной по имени папки, или текущую папку, если в командной строке не был введен путь.

Пример: e d:
h.bat:

@cd /d %userprofile%
Меняет текущую директорию на директорию Вашего профиля пользователя (домашний каталог, home).

Пример: h
n.bat:

@start notepad "%1"
Открывает в Notepad файл для редактирования.

Пример: n test.bat
s.bat:

@cd /d c:\scripts
Делает папку c:\scripts текущей директорией, когда Вы хотите добавить новый скрипт или редактировать старый.

Пример: s

[Windows Script Host]

С некоторого времени Microsoft старательно позаботилась о том, чтобы обеспечить программистам доступ к внутренним функциям своих коммерческих приложений, таких как Word и Excel, а также и самой Windows. Это сделано через технологию, которая называется Component Object Model, или COM. Она позволяет разрабатывать программы таким образом, чтобы они совместно использовали свои данные и функциональные возможности вместе с другими программами - в любой другой программе, написанной на любом языке программирования. Если Вы когда-либо писали макросы для Word или Excel, Вы работали со скриптами и COM. Один из продуктов этих усилий - система Windows Script Host, или WSH [7], которая предоставляет быстрый и простой способ писать свои собственные программы утилит. Скрипты WSH имеют преимущество перед bat-файлами, потому что могут выполнять более сложные вычисления и манипуляции с текстовой информацией. Это может быть осуществлено более мощным способом, потому что Вы описываете действия в полнофункциональном языке программирования.

Скрипты могут генерировать, перерабатывать, манипулировать текстовыми файлами и данными, просматривать и менять настройки Windows, и пользоваться преимуществами служб Windows через объекты COM, предоставленными как стандартная часть Windows. Дополнительно, если у Вас есть установленное приложение, где разрешена работа COM, такое как WordPerfect, Microsoft Word или Excel, то скрипты могут даже задействовать эти приложения для представления информации в качественно отформатированных документах и диаграммах.

Windows поставляется с поддержкой двух разных скриптовых языков:

• VBScript - очень близко похож на язык макросов Visual Basic for Applications (VBA), который используется в Word и Excel.
• JScript - версия языка JavaScript от Microsoft, который широко используется для создания интерактивных страниц web-сайтов (JavaScript не то же самое, что Java. Java в целом другой язык программирования).

Дополнительно Вы можете загрузить и установить поддержку скриптов на других языках. Если, к примеру, у Вас есть опыт работы в UNIX или Linux, то Вы можете захотеть использовать языки скриптов Perl, Python или TCL. Вы можете получить WSH-совместимые версии этих языков на сайте www.activestate.com.

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

Создание скриптов. Точно так же, как и bat-файлы, скрипты сохраняются как обычные текстовые файлы, которые можно редактировать с помощью Notepad или другим редактором текстовых файлов. Чтобы создать файл скрипта, выберите для него понятное описательное имя, что-то типа WorkSummaryReport, и добавьте к нему расширение, которое соответствует используемому Вами языку. Скрипт, написанный на языке VBScript, должен иметь расширение файла *.vbs.

К примеру, Вы пишете скрипт, который называется hello.vbs. Выполните для этого следующие шаги.

1. Откройте приглашение командной строки (Command Prompt) кликом Start (Пуск) -> All Programs (Все программы) -> Accessories (Стандартные) -> Command Prompt (Командная строка).

2. Окно командной строки откроется в каталоге по умолчанию \users\your_user_name (например C:\Documents and Settings\имя_пользователя>). Если Вы хотите создать скрипт в другой папке, то следует ввести команду cd, чтобы поменять текущую директорию. Как уже советовалось ранее, удобнее всего создавать скрипты в одной папке, наподобие C:\scripts, путь до которой добавлен в переменную окружения PATH. Но для рассматриваемого здесь примера это не важно, так что пропустим этот шаг и оставим для использования директорию по умолчанию.

3. Введите команду notepad hello.vbs. Когда редактор Notepad запросит у Вас создание нового файла, кликните Yes.

4. Введите в файле текст:

wscript.echo "Hello, this message comes from a script"

5. Сохраните скрипт через меню File (Файл) -> Save (Сохранить), или нажмите Ctrl+S. Вы можете оставить открытым окно Notepad, или закрыть его выбором в меню File (Файл) -> Exit (Выход), или нажмите Alt+F4.

6. Перейдите в окно командной строки.

7. Введите hello и нажмите клавишу Enter.

Если все хорошо, то Вы увидите окно диалога, показанное на скриншоте рис. 29.3. Кликните OK для закрытия этого окна.

command line and automation tools fig29 3

Рис. 29.3. Пример, как скрипт отображает простое текстовое сообщение.

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

cscript //H:cscript //nologo //s

Обратите внимание, что в этой команде используется двойной слеш. Теперь снова введите команду hello. На этот раз вывод скрипта отобразится в окне приглашения командной строки.

[Некоторые примеры скриптов]

Здесь даны простые примеры, чтобы показать силу WSH для выполнения полезных задач и управления в среде Windows.

Управление дисками и сетью (Disk and Network Management). WSH поставляется с инструментами для опроса и модификации дисков, папок и фалов. Здесь дан пример языка VBScript, который выполняет довольно полезную задачу:

set fso = CreateObject("Scripting.FileSystemObject")
set drivelist = fso.Drives
for each drv in drivelist
   if drv.IsReady then
      wscript.echo "Drive", drv.DriveLetter, "has", drv.FreeSpace, "bytes free"
   end if
next

Скрипт отображает свободное пространство на каждом из дисков компьютера. Введите этот скрипт в файл с именем freespace.vbs, поместите его в Ваш каталог скриптов, и затем в строке приглашения команд введите команду freespace. Будет выведено примерно следующее:

Drive C: has 15866540032 bytes free
Drive D: has 27937067008 bytes free
Drive F: has 335872000 bytes free
Drive H: has 460791808 bytes free

WSH также может работать и с сетью. Следующий скрипт VBScript отобразит текущие привязки сетевых дисков Вашего компьютера:

set wshNetwork = CreateObject("WScript.Network") ' создается вспомогательный объект
set maps = wshNetwork.EnumNetworkDrives          ' сборка, описывающая сетевые диски
for i = 0 to maps.Length-2 step 2                ' цикл по сборке
   wscript.echo "Drive", maps.item(i), "is mapped to", maps.item(i+1)
next

[Windows Management Instrumentation]

Windows Management Instrumentation (WMI) это системная служба, которая дает виртуальный доступ к каждому аспекту компьютерной системы Windows, от компонентов аппаратуры до высокоуровневых системных служб [8]. Для некоторых компонентов WMI представляет только информацию. Другие компоненты можно поменять, и таким образом, как подразумевает имя WMI, эту технологию можно использовать для управления системой. Вы можете использовать WMI для запуска и остановки системных служб, отслеживания работы приложений и их остановки, создание привязки дисков к папкам и сетевым каталогам, давать общий доступ к папкам, и если установлены соответствующие обновленные драйверы WMI, можно даже управлять системными службами, такими как Internet Information Services, Microsoft Exchange, и Domain Name Service на операционной системе Windows Server.

Следующий скрипт перечисляет состояние каждой системной службы, установленной на компьютере. Этот скрипт можно назвать showservices.vbs. Нижнее подчеркивание в конце некоторых строк означает продолжение строки.

set services = GetObject"winmgmts:{impersonationlevel=impersonate," &_
               "authenticationlevel=pkt}!" &_
               "/root/CIMV2:Win32_Service")  ' получение информации WMI по службам
for each svc in services.Instances_          ' отображение информации о каждой службе
   wscript.echo svc.name, "State:", svc.State, "Startup:", svc.StartMode
next

Результат работы скрипта может выглядеть примерно так:

AeLookupSvc State: Stopped Startup: Manual
ALG State: Stopped Startup: Manual
AppIDSvc State: Stopped Startup: Manual
Appinfo State: Running Startup: Manual
AppMgmt State: Stopped Startup: Manual

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

showservices >listing.txt

[Windows PowerShell]

Microsoft разработала новую рабочую среду командной строки, которая называется Windows PowerShell (WPS). Она установлена как стандартный аксессуар начиная с Windows 7 (вероятно, Биллу Гейтсу не давала покоя стройная система взаимодействия консольных программ в мире *NIX). WPS чаще всего выглядит и действует как окно программной строки, но на самое деле это очень странная сущность, которая дает доступ к некоторым очень мощным инструментам программирования. Здесь не будет полного описания, как использовать WPS, но будет показано, чем отличаются bat-файл и скрипты, и будут указаны ресурсы, которые помогут научиться большему.

Для описания WPS автор использует слово "странный". Может ли компьютерная программа быть странной? Определенно! С одной стороны, большинство команд Windows PowerShell (которые правильно называть cmdlet) генерируют потоки объектов, не текст. Объекты это попытка представления в компьютере вещей из реального мира. У них есть свойства, которые описывают атрибуты вещей, которые они представляют, и методы, которые позволяют Вам управлять вещами. Например, объект представляет определенный файл на жестком диске, и у него есть свойства Name (имя), Size (размер) и LastWriteTime (последнее время записи), и методы наподобие Delete (удалить), Edit (редактировать) и Open (открыть). Windows PowerShell работает с объектами в новым, необычным и в конечном счете очень мощным способом.

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

В системе WPS Вы можете ввести dir, и это также приведет к печать списка файлов, но неявно, за сценой происходит нечто совершенно другое. В WPS это просто краткая ссылка на Get-Childitem cmdlet, который при самом простом использовании генерирует поток объектов File; каждый объект представляет один из файлов в папке, и у каждого такого объекта есть свойства и методы (например, имя и размер). Когда объект (любого сорта) попадает в окно приглашения WPS, то система WPS печатает строку текста об объекте с наиболее важными его свойствами. Для объекта File это включает имя файла, размер и дату создания. Таким образом, когда Вы вводите dir, WPS генерирует поток объектов File и он представляется как красивый, разделенный табуляциями список файлов.

Конечный результат выглядит так же, как и в старом рабочем окружении командной строки, но все происходит более абстрактным способом. Cmdlet не знает, или не заботится о тексте или форматировании: он просто генерирует набор объектов File. И окно WPS превратит любой список объектов в удобочитаемый текстовый листинг. Файлы, учетные записи пользователей, службы Windows, и т. д. - любой объект, который выбрасывает соответствующий cmdlet, система WPS превращает в своей консоли в удобный листинг текста.

Дополнительно WPS включает в себя полнофункциональный объектно-ориентированный язык программирования, который имеет доступ к платформе программирования .NET компании Microsoft. Это означает, что скрипты WPS могут выполнять более сложные вычисления и обмениваться информацией с другими компьютерами и сетевыми ("облачными") сервисами.

WPS даже позволяет Вам делать сложные вещи с объектами без программирования. Вы можете использовать символ канала | для направления потоков объектов от одного cmdlet к другому, и это позволяет выполнять очень сложные, специфические действия с инструментами, которые по отдельности очень простые и по природе выглядят самыми обычными. Например, следующая команда удалит все файлы в текущем каталоге, которые старше 6 месяцев:

dir | where-object {$_.LastWriteTime -lt (get-date).addmonths(-6)} | remove-item

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

• dir дает список объектов File в текущей директории. Здесь они не попадают в окно команд WPS, если бы это было так, то был бы выведен текстовый список. Но здесь вместо этого символ канала (pipe, |) инструктирует WPS передавать объекты следующей команде.
• where-object пропускает через себя некоторые объекты, основываясь на условии фильтрации внутри фигурных скобок. В этом примере пропускаются только те файлы, которые не изменялись больше 6 месяцев (здесь значение LastWriteTime меньше чем дата/время 6 месяцев ранее). Таким образом, эти объекты представляют собой просто старые файлы, которые канализируются в следующую команду.
• remove-item удаляет с жесткого диска файлы, соответствующие поступающим на вход объектам.

Предупреждение: не открывайте просто так окно WPS и не вводите эту команду, только чтобы увидеть, что получится! Возможно, что Вы удалите важные файлы из папки профиля текущего пользователя. Если Вы хотите посмотреть, как работает этот скрипт, введите первые 2 части этой команды (это напечатает список выбранных файлов, но не удалит их):

dir | where-object {$_.LastWriteTime -lt (get-date).addmonths(-6)}

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

Для дополнительной информации про WPS, см. ресурсы в Интернете, и книжку "Windows 7 and Vista Guide to Scripting, Automation, and Command Line Tools" или "Windows PowerShell 2.0 Unleashed".

[Планировщик Задач (Task Scheduler)]

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

Сама по себе служба Task Schedule незначительно влияет на производительность системы, хотя задачи, которые эта служба запускает, могут влиять. Однако Вы можете инструктировать не запускать определенные задачи, когда система чем-то загружена. Вы можете захотеть сделать это, например, для тех задач, которые генерируют некоторую дисковую активность.

Замечание: когда Task Scheduler запускает задачу, которая работает от имени другого пользователя (который в настоящее время не вошел в систему), то другой пользователь, который сейчас вошел в систему, не увидит, как работает запущенная задача, и не сможет с ней взаимодействовать. Удостоверьтесь, что задачи могут работать самостоятельно, без ввода пользователя, и чисто завершаться после выполнения своей работы. И еще имейте в виду, что как только приложение или сервис заработали, даже если они были запущены как задача планировщика, они будут влиять на производительность системы так же, как если бы они были запущены вручную.

Какие виды задач можно запускать через Task Scheduler? Как уже упоминалось, это те задачи, которые не требуют взаимодействия с пользователем. Например, это может быть типовая задача обслуживания, такая как дефрагментация жесткого диска, очистка папок от временных файлов, и так далее. Windows использует Task Scheduler для подобных целей, поэтому Вы можете заметить, что после установки Windows могут быть определены некоторые запланированные задачи. Task Scheduler также может ожидать появления любого события, которое может быть записано в Event Log.

Task Scheduler особенно полезен для запуска bat-файлов и скриптов, потому что эти запланированные программы могут быть разработаны для запуска без какого-либо взаимодействия с пользователем. Это действительно важный инструмент автоматизации, потому что Вы даже можете не быть за компьютером, когда они работают!

Есть 2 типа задач, которые Вы можете создать в Task Scheduler:

• Базовые задачи - разрабатываются для запуска с использованием текущей учетной записи пользователя, и поддерживают одно сработавшее событие или настроены на нужный момент времени.
• Задачи - могут быть запущены от указанной учетной записи пользователя, и могут быть сконфигурированы для запуска в любом случае, залогинен пользователь в системе, или нет. Задачи также могут быть запущены в режиме совместимости с Windows XP или Windows Server 2003 (compatibility mode), и могут быть запущены с приоритетом выше обычного, если это необходимо.

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

Чтобы создать "базовую" задачу в Task Scheduler, выполните следующие шаги:

1. Запустите Task Scheduler, окно Task Scheduler отобразит в верхней центральной части общий список задач, которые запущены и/или завершились в последние 24 часа, и покажет список активных задач ниже. Здесь "активная задача" означает, что задача разрешена для запуска в указанное время или при указанном событии. Не обязательно, что "активная" означает задачу, которая работает прямо сейчас.

2. Область Add Actions (добавить действие) находится с правой стороны. Кликните Create Basic Task (создать базовую задачу). Запустится мастер для создания базовой задачи (Create Basic Task Wizard).

3. Введите имя задачи и её описание. Здесь можно ввести все что хотите, чтобы напоминать о том, что задача делает. Кликните Next (Далее) чтобы продолжить.

4. В окне Task Trigger (настройка условия запуска), выберите, когда запускать задачу. Вы можете выбрать запуск ежедневно (daily), еженедельно (weekly), каждый месяц (monthly), или однократно (one time); когда компьютер запуститься, когда Вы вошли под учетной записью (log on), или когда было записано в лог определенное событие. Вы можете использовать опцию, когда определенное событие записано (When a Specific Event Is Logged), чтобы задача сработала, когда записывается в Event Log нужное событие. Например, Вы можете использовать это для выполнения оповещений определенного типа, если произойдет событие ошибки диска. Вам понадобится ввести цифровой номер ID для идентификации события.

5. Кликните Next.

6. Задайте опции применимого времени, такого как время дня, как это необходимо. Кликните Next.

7. Выберите, что должна делать задача (открыть программу, послать email, или отобразить сообщение). Кликните Next для продолжения.

8. Если Вы выбрали Start a Program (запуск программы), используйте кнопку Browse, чтобы указать программу, bat-файл или скрипт. Для приложений Windows открывайте папку \Windows или \Windows\system32. Для сторонних приложений просмотрите подкаталоги в папке \Program Files. Для скриптов, которые Вы написали сами, откройте папку, где сохранен нужный скрипт или bat-файл. Когда предоставили необходимые опции или настойки командной строки, если хотите указать диск по умолчанию или папку для программы, введите путь до нужной папки.

Если Вы выбрали Send an Email (отправить электронное письмо), введите информацию об отправителе, получателе, сервере SMTP, сообщение (sender, receiver, SMTP email server, message), и т. д.

Если Вы выбрали Display a Message (отобразить сообщение), то введите заголовок сообщения (message title) и текст сообщения (message text). Затем кликните Next.

9. Просмотрите задачу в окне Summary (см. рис. 29.4). Если Вы хотите установить дополнительные опции (advanced options), такие как время ожидания, что делать если компьютер работает от батарей, и что делать после завершения задачи, проверьте Open Advanced Properties (открыть дополнительные опции) для этой задачи. Кликните Finish для завершения задачи.

command line and automation tools fig29 4

Рис. 29.4. Завершение конфигурации базовой задачи.

Для более продвинутого планирования используйте выбор Create Task (создать Задачу). Интерфейс Create Task использует интерфейс с множеством закладок вместо мастера. Закладка General включает опции безопасности, в то время как закладка Triggers позволяет Вам указать несколько условий (триггеров) для запуска задачи (задача будет выполнена, когда произошло любое из указанных событий). Закладка Actions поддерживает несколько действий в задаче, закладка Conditions включает опции для конфигурирования требований к времени ожидания (idle time), питанию (power), и сетевому соединению, и закладка Settings поддерживает условия для запуска и остановки задачи. Используйте Create Task вместо Create Basic Task, когда Вам нужно настроить эти дополнительные опции в своей задаче.

[Ссылки]

1. Microsoft Windows 7 In Depth site:docs.google.com.
2. Command-line reference AZ - TechNet - Microsoft site:technet.microsoft.com.
3. NTFS File Permissions site:ntfs.com.
4. Практические приемы программирования в bat-файлах.
5. Применение команды for в bat-файлах (technet.microsoft).
6. О параметрах командных файлов и не только.
7. Windows Script Host на базе VBScript (*.vbs).
8. Не знаете, что такое WMI? Тогда мы идем к Вам!
9. Microsoft DOS and Windows Command Line site:computerhope.com.
10. Замена Windows notepad на notepad2.
11170813command-line-and-automation-tools.zip - документация.

 

Добавить комментарий


Защитный код
Обновить

Top of Page