Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции / Windows PowerShell-теория.docx
Скачиваний:
0
Добавлен:
11.02.2026
Размер:
679.21 Кб
Скачать

Windows PowerShell. Коротко о главном

обзор посвящен использованию ключевы6 возможностей Windows PowerShell для выполнения различны6 административны6 задач. Сначала рассмотрим встроенные средства ознакомления с возможностями Windows PowerShell.

Знакомство с возможностями Windows PowerShell

Итак, вы — администратор, которому необходимо в кратчайший срок освоить Windows PowerShell. Первое, что вы, вероятно, предпримете (естественно, помимо обращения к документации и справочной системе), — воспользуетесь командой Help (рис. 1).

Рис. 1

Внимательно изучив выведенную на экран информацию, мы придем к пониманию следующих концептуальных вещей: в Windows PowerShell существуют алиасы, командлеты, провайдеры, а также справочные файлы. Алиасы (alias) служат для упрощения ввода команд (например, clc — это алиас команды Clear-Content), командлеты (cmdlet) представляют собой реализацию всех встроенных в Windows PowerShell команд, провайдеры (provider) обеспечивают доступ к файловой системе, реестру, хранилищу сертификатов и т.п., а справочные файлы (helpfile) используются для получения дополнительной информации. Для получения подробного описания команды применяется следующий синтаксис:

PS C:> Help Get-Command

В результате выполнения этой команды мы получим полное описание команды Get-Command, включая ее назначение, синтаксис, опции и т.п. (рис. 2).

Рис. 2

Для получения списка всех встроенных команд используем следующий синтаксис:

PS C:> Get-Command

Обратите внимание на то, что все команды состоят из глагола и прилагательного (например, Get-Content, Export-Console) и все команды поддерживают единую систему именования — например для завершения чего-либо всегда используется глагол Stop, а не Kill, Terminate, Halt или другие синонимы, что существенно упрощает изучение возможностей PowerShell (рис. 3).

Рис. 3

Команда Get-Service служит для получения списка всех сервисов, запущенных на данном компьютере. Например, PS C:> Get-Service возвращает список, представленный на рис. 4.

Рис. 4

Для получения списка процессов, запущенных в настоящий момент на компьютере, применяется команда Get-Process (рис. 5):

Рис. 5

PS C:> Get-Process

В Windows PowerShell поддерживается автоматическое завершение ввода. Чтобы убедиться в этом, введите Get-P и нажмите клавишу TAB: вы получите возможность выбора всех команд, начинающихся с введенных символов.

Для получения информации только об одном процессе в качестве аргумента команды Get-Process задается имя этого процесса (рис. 6):

Рис. 6

PS C:> Get-Process explorer

Для того чтобы получить список всех процессов, названия которых начинаются с определенного символа, достаточно указать этот символ и «*» (рис. 7):

Рис. 7

PS C:> Get-Process i*

Обратите внимание на колонки, в которых содержится информация, — Handles, NMP(K) и т.п. По умолчанию информация выводится в виде таблицы, но на самом деле все команды возвращают объекты. Эти объекты могут быть переданы на вход другим командам с помощью символа «|»

(рис. 8):

Рис. 8

PS C:> Get-Process i* | format-list

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

PS C:> Help format *

Другие возможные форматы:

PS C:> Get-Process i* | format-wide и

PS C:> Get-Process i* | format-custom

Поскольку на выходе всегда получается объект, можно манипулировать им для выполнения дополнительных операций, например фильтрации: PS C:> Get-Process | where {$_.handlecount -gt 400} или сортировки:

PS C:> Get-Process | where {$_.handlecount -gt 400} | sort-object Handles

Может возникнуть вполне резонный вопрос: а откуда мы узнали, что у объекта, описывающего процесс, есть свойство handlecount? Для получения списка всех свойств объекта применяется следующая команда (рис. 9):

Рис. 9

PS C:> Get-Process | Get-Member

Выполним команду Get-Process | Get-Member Company — при форматировании по умолчанию невозможно получить желаемые данные. Преобразуем полученную команду в:

PS C:> Get-Process | Get-Member Company | Format-List Результат ее преобразования представлен на рис. х0.

Рис. 10

PS C:> Get-Process | sort-object Company | format-table -Group Company name, description, handles

Результат выполнения данной команды представлен на рис. хх.

Рис. 11

Команда stop-process позволяет остановить запущенный процесс, например:

PS C:> Get-process notepad | stop-process

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

PS C:> Get-Process notepad | stop-process –whatif

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

PS C:> Get-Process notepad | stop-process –confirm

Результат выполнения команды с подтверждением представлен на рис. х2.

Рис. 12

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

Помимо этого можно создавать собственные пакетные файлы, представляющие собой файлы с расширением *.psх, в которые помещаются команды PowerShell, и выполнять их. Для соблюдения безопасности пакетные файлы должны быть подписаны. При тестировании можно отключить требование по запуску только подписанных файлов: PS C:> Set-ExecutionPolicy Unrestricted

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

PS C:> Set-ExecutionPolicy AllSigned

После знакомства с основами Windows PowerShell посмотрим, как с помощью данной утилиты можно решать различные административные задачи.