Назначение PowerShell • Windows PowerShell – это не язык скриптов или, по крайней мере, это не только язык скриптов. • Windows PowerShell – это целый механизм, созданный для того, чтобы выполнять команды, которые решают административные задачи, такие как создание нового пользовательского аккаунта конфигурация сервисов удаление почтовых ящиков • PowerShell предоставляет возможность проектировать GUI интерфейсы на своей базе. Вы можете выполнять одни команды двумя путями Набирать команды в консоли Выбирать графические элементы, которые выполнят те же команды. Где используется Windows PowerShell? • Windows PowerShell используется с большим количеством продуктов Microsoft, например: Microsoft Exchange Server 2007 and later Microsoft System Center Data Protection Manager Microsoft System Center Operations Manager Microsoft System Center Virtual Machine Manager Microsoft SQL Server 2008 and later Get-Mailbox | Sort Size | Select –first 100 | MoveMailbox Server2 Какие команды вы уже знаете? • Например команды, которые вы бы использовали для выполнения каждой из следующих задач в оболочке cmd или Unix shell: Изменить каталоги. Список файлов и подкаталогов в каталоге. Скопировать файл. Отображение содержимого текстового файла. Удалить файл. Перемещение файлов. Переименовать файл. Создать новый каталог. Команды • С Windows PowerShell можно также запускать большинство внешних команд, которые могут быть знакомы вам: Ipconfig.exe Ping.exe Tracert.exe Nslookup.exe Pathping.exe Net.exe (например, Net Use) • Windows PowerShell распознает многие из имен команд, с которыми вы, вероятно, уже знакомы, в том числе Cd, Dir, Ls, Cat, Type, MkDir, RmDir, Rm, Del, Cp, Copy, Move и так далее. Одновременно доступны наиболее общие file-andfolder команды управления Cmd.exe (которая использует MS-DOS Синтаксис команды) и оболочки Unix. Иерархические хранилища • Файловая система Windows и, если уж на то пошло, файловая система большинства компьютеров является иерархической Это означает, что она состоит из отдельных ячеек, которые называются папками или директориями, которые, в свою очередь, содержат либо файлы, либо другие папки. Папки содержат подпапки, которые, опять же, содержат свои подпапки, и так далее • Однако файловая система – это не единственная иерархическая система в Windows. The registry The certificate store Active Directory • Одна из фич PowerShell – единая система работы со всеми иерархическими хранилищами. Один набор команд для различных хранилищ • Возможность использования единого набора команд для навигации по хранилищам, имеющим различную форму, становится возможным благодаря функции Windows PowerShell, которая называется провайдер PSDrive или просто провайдер. • Провайдер представляет собой разновидность адаптера, который устанавливает соединение с системой хранения и представляет ее Windows PowerShell в форме дискового накопителя. • PowerShell поставляется с набором провайдеров: The file system IIS The registry SQL Server The environment variables Active Directory The certificate store Управление PSDrives • Get-PSDrive - выводит все доступные хранилища. По умолчанию, этот список включает все доступные накопители и логические диски • New-PSDrive - создает новое хранилище. Вы должны указать имя хранилища (без двоеточия на конце), имя провайдера и стартовую точку или путь. Тип такой стартовой точки или пути зависит от типа используемого провайдера • Remove-PSDrive - уничтожает хранилище. Вы также можете удалить хранилища, присутствующие по умолчанию, например HKCU: или ENV:, однако они будут воссозданы при запуске нового экземпляра оболочки. Псевдонимы • Get-Alias – отображение список всех псевдонимов. Также можно использовать Dir Alias: чтобы увидеть все содержимое папки ALIAS: drive. • New-Alias – создание нового псевдонима. Здесь обязательно указать имя нового псевдонима, а также название команды, для которой он предназначен. • Del или Rm – удаление псевдонима из ALIAS: drive. • Import-Alias и Export-Alias – импорт и экспорт псевдонимов в файл и из файла. Help Help commandName • С помощью некоторых параметров команды Help можно получить еще более подробную информацию: • -detailed – показ более детального описания • -examples – показ примеров использования • -full – показ полной информации, включая детальное описание, описание каждого параметра и примеры использования • -online – открытие браузера и показ описания командлетов на сайте Microsoft. На сайте может содержаться обновленная или расширенная информация, которая еще не была выпущена в служебном пакете. Расширение оболочки • Командлеты, присутствующие по умолчанию в оболочке, не являются единственными доступными для вас командлетами. Microsoft, так же, как и сторонние разработчики программного обеспечения, могут создавать дополнительные командлеты и провайдеры PSDrive, и предоставлять их вам в виде оснасток или модулей. Управление оснастками осуществляется с помощью набора командлетов, название которых включает существительное PSSnapin: Get-PSSnapin Add-PSSnapin Remove-PSSnapin Import-Module Remove-Module Get-Module Get-PSSnapin –registered Get-Module –list Конвейеризация (Piping) • Акт передачи выходных данных одного командлета во входные данные другого командлета называется конвейеризацией. Возможно, в других оболочках вам уже приходилось использовать конвейер. Например, это стандартная команда в Cmd.exe: dir | more • Здесь выходные данные команды Dir перенаправляются во входные данные команды More, которая создает постраничное отображение выходных данных. • Конвейер нашел широкое применение в Windows PowerShell. Весьма распространенным явлением здесь является строка из полдюжины командлетов, связанных между собой конвейером. Данные переходят из одного командлета в другой, при этом они постепенно уточняются, детализируются и превращаются именно в ту информацию, которая вам требуется. Вывод командлетов • Основные командлеты для модификации вывода Format-Table, имеет alias Ft Format-List, имеет alias Fl Format-Wide, имеет alias Fw Get-Service | Format-List Get-Process | Fw Конвейер • Get-Process Import-CSV Format-List New-ADUser EnableADAccount Терминология • командлет Get-Process помещает элементы процесса в конвейер. Более официальным термином здесь будет слово «объект», т.е. вы можете сказать, что командлет Get-Process помещает объекты процесса в конвейер. • Эти объекты имеют атрибуты. Для процесса атрибутами могут быть имя, ID, объем занимаемой памяти и.т.д. Формальным названием атрибута будет термин «свойство». Другими словами, вы можете сказать, что объект процесса обладает свойством имени, свойством ID, и.т.д. Pid --092 098 112 164 Name ------------------------Notepad Windows Paint Calculator Windows PowerShell Image ------------notepad.exe mspaint.exe calc.exe powershell.exe Свойства объектов • PowerShell командлеты возвращают объекты • PowerShell командлеты используют объекты как входные данные • Командлеты можно заставить использовать свойства входящих объектов в качестве параметров Get-Service –computerName SEA-SRV2 • Но параметр можно получить из свойства, переданного другим командлетом GetComputer Inventory Get-Service Перенаправления ввода-вывода и форматирование • Имеется ряд Out- командлетов Out-Gridview Out-Printer Out-File Out-Host Out-Null Get-Process Format-List [OutDefault] Изучение свойств • The Get-Member cmdlet… Get-EventLog Security –newest 10 | Get-Member Get-Process | Format-List * Get-Service | Get-Member | Out-GridView