Видео-уроки по PowerShell 2.0 (2010–2012, RUS) — Лебедев Юрий. Уроки powershell


Видео-уроки по Windows PowerShell 2.0

Информация о фильме: Название: Видео-уроки по Windows PowerShell 2.0Год выпуска: 2010-2012Производитель: LebedevUMАвтор: Лебедев ЮрийПродолжительность: 12:21:31Тип материала: ВидеоурокЯзык: Русский

Видео-уроки по Windows PowerShell 2.0. Windows PowerShell — расширяемое средство автоматизации от Microsoft, состоящее из оболочки с интерфейсом командной строки и сопутствующего языка сценариев. Windows PowerShell также предоставляет механизм встраивания, благодаря которому исполняемые компоненты PowerShell могут быть встроены в другие приложения. Эти приложения затем могут использовать функциональность PowerShell для реализации различных операций, включая предоставляемые через графический интерфейс. Уже сейчас большинство серверных приложений Microsoft на платформе Windows используют PowerShell.Данные видео-уроки рассказывают о Windows PowerShell 2.0, начиная с азов. Демонcтрации проходят на Windows 7 и Windows Server 2008 R2.

Содержание1. Инструменты Windows PowerShell 2.02. Сценарии Windows PowerShell 2.03. Windows PowerShell 2.0 и CMD4. Переменные в PowerShell 2.05. Форматирование вывода в Windows PowerShell 2.06. Обзор встроенных оснасток Windows PowerShell 2.07. Обзор встроенных поставщиков Windows PowerShell 2.08. Обзор модулей Windows PowerShell 2.09. Удаленная работа с Windows PowerShell 2.010. Автоматизация удаленного выполнения команд в Windows PowerShell 2.011. Фоновые задания в Windows PowerShell 2.012. Восстановление системы при помощи Windows PowerShell 2.013. Установка PowerShell 2.0 на Server Core14. Арифместические действия в Windows PowerShell 2.015. Присваивание в Windows PowerShell 2.016. Сравнение чисел в Windows PowerShell 2.0.Full17. Сравнение строк в Windows PowerShell 2.0.Full18. Подстановочные знаки в Windows PowerShell 2.0.Full19. Логические операторы в Windows PowerShell 2.0.Full20. Командлеты для работы с переменными в Windows PowerShell21. Тиражирование кода в Windows PowerShell 2.022. Управление областью действия переменных в Windows PowerShell 2.023. Управление переменными окружения в Windows PowerShell 2.024. Кавычки в Windows PowerShell 2.025. ESCAPE-символы в Windows PowerShell 2.026. Многострочные переменные в Windows PowerShell 2.027. Обработка строк в Windows PowerShell 2.028. Форматирование чисел и строк в Windows PowerShell 2.029. Одномерные массивы в Windows PowerShell 2.030. Работа с одномерными массивами в Windows PowerShell 2.031. Многомерные массивы в Windows PowerShell 2.032. Управление псевдонимами в Windows PowerShell 2.033. Функции в Windows PowerShell 2.034. Автоматические переменные в Windows PowerShell 2.035. Фильтры в Windows PowerShell 2.036. Встроенные функции в Windows PowerShell 2.037. Объекты в Windows PowerShell 2.038. Работа с объектами в Windows PowerShell 2.039. COM-объекты в Windows PowerShell 2.040. Объекты .NET Framework в Windows PowerShell 2.041. WMI объекты в Windows PowerShell 2.042. Профили в Windows PowerShell 2.043. Протоколирование в Windows PowerShell 2.044. Транзакции в Windows PowerShell 2.045. Вложенные транзакции в Windows PowerShell 2.046. Условные конструкции в Windows PowerShell 2.047. Циклы в Windows PowerShell 2.0

файлФайлы примеров: отсутствуютФормат видео: MP4Видео: AVC, 1024*768 (4:3), 15,000 кадров/сек, 342 Кбит/секАудио: AAC, 44,1 КГц, 53,6 Кбит/сек, 2 каналаРазмер: 1.28 GB

Скачать: Юрий Лебедев - Видео-уроки по Windows PowerShell 2.0 (2010-2012, RUS)Letitbit.netVip-file.com Depositfiles.comTurbobit.net

Вступите в группу, и вы сможете просматривать изображения в полном размере

subscribe.ru

PowerShell - Отличный блог про PowerShell

В данной статье рассмотрим возможности использования SSH между Windows и Linux компьютерами, а также использовании PowerShell через SSH в кроссплатформенной среде. Устанавливаем OpenSSH на Windows Начиная с Windows 10 1709 все очень просто. Нужно просто открыть приложение настроек. Далее выбираем приложения-> управление дополнительными компонентами-> сервер openssh и устанавливаем его. Или выполнить команду powershell

Get-WindowsCapability -Online | ? name -like *ssh* | Add-WindowsCapability -Online

Get-WindowsCapability -Online | ? name -like *ssh* | Add-WindowsCapability -Online

Эта […]

Вообще я редко вижу смысл в том чтобы отлавливать ошибки в скриптах, но недавно ко мне попалась задача, где необходимо было обработать ошибки в скрипте PowerShell. Дело в том что данный скрипт использовался как часть работы System Center Orchestrator. Для этого я использовал Try/Catch/Finaly . Но все по порядку. Немного про ошибки Ошибки можно условно разделить […]

Данная статья была создана в дополнение к видео уроку PowerShell за 20 минут. В ней еще раз перечислены те принципы и подходы к PowerShell, которые позволят начать использовать PowerShell в своей работе. Введение в PowerShell — это описание основных команд PowerShell, описание процесса поиска команд и использование справки. Кратко изложены принципы конвейера команд, фильтрации результата […]

Совсем недавно опубликовали мой доклад на сайте TechDays.ru — PowerShell за 20 минут. Это видео урок PowerShell для начинающих. Основы работы в PowerShell. Структура команд, поиск команд, использование справки, использование PowerShell ISE, конвейер. Это необходимый базовые знания для каждого Windows администратора. Не забываем оценивать видео урок PowerShell.

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

$search = Get-Droids | Where{$_ -notnear $jedi} If($search -eq $null){Move-Along}

$search = Get-Droids | Where{$_ -notnear $jedi}

If($search -eq $null){Move-Along}

Это конечно выполнить не выйдет. Но все равно забавно. p.s. сперто тут https://twitter.com/timbarrett/status/439477047413714944

Для настройки Exchange 2013 в основном используется два инструмента это Exchange Admin Center и Exchange Managment Shell. Использование Admin Center удаленно — не проблема. Это веб сайт, который можно открыть на любом компьютере. Удаленное управление Exchange с использованием Managment Shell, требует установки этого Managment Shell. Однако большинство задач можно выполнить просто удаленно подключившись к Exchange […]

Продолжая тему баз данных в Exchange трудно не упомянуть про группы обеспечения высокой доступности баз данных (Database Availability Group или DAG). Данная технология направлена на обеспечение отказоустойчивости баз данных Exchange. В данной статье пойдет речь о Exchange 2013, однако в большинстве своем будет применима и к Exchange 2010, и к Exchange 2007. Как всегда настраивать […]

В данной статье поговорим об использовании PowerShell для управления базами данных Exchange. Рассмотрим как можно их создать, переместить, отключить и подключить. В данной статье будет идти речь о Exchange 2013, хотя многое из этого можно будет применить и к 2007 и к 2010 Exchange. Следует заметить, что в Exchange 2013 отсутствует понятие базы данных публичных […]

Результат выполнения любого командлета — это объект. А зачастую не один а объект, а массив объектов. Для фильтрации только определенных объектов в Powershell используется Where. На самом деле Where — это алиас для командлета Where-Object. Еще один алиас этого командлета — знак вопроса. Про использование командлета Where-Object и пойдет в данной статье.

Недавно стояла задача написать скрипт, в котором были бы разные параметры для разных сценариев применения данного скрипта. Например, если указан параметр Param1 выполнять одно действие, если указан Param2 выполнять другое действие, но вместе Param1 и Param2 указываться не могут. Для решения данной задачи идеально подходят так называемые наборы параметров в PowerShell. Вот о них и […]

get-powershell.ru

POWER SHELL (часть 2) - Мир Windows IT Pro - Каталог статей

POWERSHELL урок 2

Роберт Шелдон

В статье «PowerShell, урок 1» рассматривалась концепция составных команд и выполнение базовых команд PowerShell. Кроме того, я показал, как используются псевдонимы и как реализованные в PowerShell команды Get- применяются для получения справочной информации в процессе формирования команд. Так, можно использовать команду Get-ChildItem для считывания списка элементов папки или команду Get-Content — для считывания содержимого текстового файла. С помощью составных команд и их параметров можно выполнять множество действий, которые отображают системную информацию либо выполняют те или иные задачи.

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

Реализация конвейера

Конвейер PowerShell — это серия составных команд, в которой объект передается от одной команды к другой. Каждая команда генерирует объект и передает его по конвейеру. Принимающая команда использует полученный объект в качестве входных данных и генерирует собственные выходные данные опять же в виде объекта. Команды объединяются в конвейер с помощью оператора конвейера (|).

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

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

Get-Service

то получите список служб, установленных в системе (см. экран 1). Обратите внимание, что команда возвращает состояние, имя и отображаемое имя каждой службы. Теперь предположим, что вы хотите получить список, где будут перечислены только выполняемые в данный момент службы. Можно передать выходные данные команды Get-Service команде Where-Object, которая выполнит фильтрацию выходных данных в соответствии с заданными критериями, как показано в инструкции

Get-Service | Where-Object {$_.status -eq ‘running’}

Таким образом, для объединения двух составных команд используется оператор конвейера. Команда Get-Service создает объект, который содержит данные, касающиеся служб. Далее этот объект передается по конвейеру команде Where-Object. Последняя принимает объект и использует содержащуюся в нем информацию как входные данные. Объект Where-Object выполняет фильтрацию этих данных в соответствии со значением свойства Status. Отметим, что в команду Where-Object входит выражение, заключенное в скобки ({ }). Если это выражение является истинным, Where-Object передает объект далее по конвейеру и отфильтровывает любой другой объект.

В данном случае выражение Where-Object констатирует, что значение свойства Status должно быть приравнено (как указано оператором -eq) к строке running. Status — это одно из свойств объекта, созданного командой Get-Service. Когда объект передается по конвейеру, можно обратиться к его свойствам, как это сделал я в выражении Where-Object. Чтобы обратиться подобным образом к свойству в конвейере, нужно использовать встроенную переменную $_. Эта переменная получает текущий объект в конвейере всякий раз, когда команда Where-Object перебирает полученные в конвейере результаты. Пользователь может ссылаться на свойства объекта, как в выражении $_.Status. Теперь полученные выходные данные по виду аналогичны данным, представленным на экране 2. Дополнительные сведения о команде Where-Object, о свойствах объектов и об операторах будут изложены в следующих уроках.

 

Отметим, что обычно в окне консоли PowerShell только что приведенная инструкция вводится одной строкой. Однако ширина столбцов журнальной полосы такова, что для размещения этой инструкции нам приходится использовать более одной строки. Кроме того, обратите внимание на символы >> в начале нескольких строк на экране 2. Эти символы составляют многострочное приглашение. Сведения о том, когда в окне консоли PowerShell следует вводить инструкцию на нескольких строках и как правильно это делать, приведены во врезке «Как работать с длинными инструкциями PowerShell».

Теперь представим себе, что нам нужно перечислить только отображаемые имена всех запущенных служб. Можно по конвейеру передать выходные данные команды Where-Object команде Select-Object:

Get-Service | where {$_.status -eq ‘running’} | select displayname

В данной инструкции команда Select-Object получает объект от команды Where-Object. В этом случае инструкция использует псевдоним where для ссылки на команду Where-Object и псевдоним select для ссылки на команду Select-Object. В команде select указывается имя свойства (или свойств), которые предполагается отобразить. В рассматриваемом примере я указал имя displayname. Теперь результаты, полученные при выполнении инструкции, будут подобны тем, что показаны на экране 3.

Главное при работе с конвейерами — постоянно помнить о том, что вы всегда имеете дело с объектами. Каждая команда генерирует объект, который передается следующей по конвейеру команде. Последняя команда тоже генерирует объект, в котором содержатся результаты выполнения инструкции. На следующих уроках вы научитесь пользоваться этими объектами, а также их свойствами, что позволит составлять разнообразные инструкции PowerShell.

Форматирование выходных данных

По умолчанию PowerShell форматирует выходные данные инструкции в зависимости от их типа. Например, следующая инструкция возвращает данные о процессе PowerShell:

Get-Process powershell

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

  • Команда Format-Table отображает данные в виде таблицы (экран 4). Этот формат применяется по умолчанию в большинстве составных команд, поэтому команду Table указывают не часто.

  • Команда Format-List отображает данные в виде списка.

  • Команда Format-Wide отображает данные в виде широкой таблицы, в которой для каждого объекта указывается лишь одно значение свойства.

  • Команда Format-Custom отображает данные в пользовательском формате, базирующемся на данных конфигурации, которые содержатся в файле формата .ps1xml. Для обновления файла формата можно использовать команду Update-FormatData. Дополнительные сведения об этом можно найти в справочном файле PowerShell «Update-FormatData».

Чтобы изменить формат выходных данных рассмотренной ранее инструкции, нужно передать ее по конвейеру команде Format-List:

Get-Process powershell | Format-List

Теперь мы получаем результаты, подобные показанным на экране 5. В формате списка демонстрируется лишь подмножество данных, отображаемых в формате таблицы. В разных форматах отображаются разные сведения. Как форматировать результаты, PowerShell определяет в зависимости от типа данных. Иными словами, возвращаемый тип формата, компоновка и свойства обусловлены типом объекта. Так, результаты, возвращаемые командой Get-ChildItem при считывании данных о файловой системе, будут отличаться от результатов, возвращаемых при считывании сведений о реестре, потому что речь идет о двух разных типах объектов, хотя при этом используется одна и та же команда. Для определения того, каким образом следует отображать результаты, PowerShell использует набор сложных файлов формата XML (файлов .ps1xml).

 

Управление выходными данными инструкций

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

  • Команда Out-Host направляет выходные данные на консоль PowerShell. Эта команда применяется по умолчанию, поэтому указывать ее не требуется.

  • Команда Out-Default передает выходные данные применяемой по умолчанию команде форматирования. Кроме того, Out-Default делегирует процесс вывода данных команде Out-Host. Специально указывать команду Out-Default не нужно.

  • Команда Out-File направляет выходные данные в указанный файл.

  • Команда Out-Null удаляет выходные данные и не направляет их на консоль PowerShell.

  • Команда Out-Printer направляет выходные данные на принтер.

  • Команда Out-String преобразует объект конвейера в строковый массив. Дополнительные сведения о каждой команде можно найти в справочных файлах оболочки PowerShell.

Для управления выходными данными инструкции нужно в конце конвейера указать соответствующую команду выходных данных. Так, следующая инструкция представляет сведения о процессе PowerShell в формате списка и затем направляет этот список в файл C:\SysInfo\ps.txt:

Get-Process powershell | Format-List | Out-File C:\SysInfo\ps.txt

При передаче выходных данных в файл PowerShell сохраняет содержимое файла, но не отображает его в консоли. Команду Out-File можно использовать для направления выходных данных в любой подходящий файл. Файл .bmp, к примеру, для этой цели не годится. Сообщение об ошибке не появится, но и прочитать что-либо при открытии такого файла тоже не удастся.

Команда Out- File позволяет пользователю указывать, нужно ли присоединять выходные данные к концу файла или замещать этими данными все его содержимое. По умолчанию он выполняет полное замещение. Чтобы присоединить выходные данные к концу файла, в команде Out-File следует использовать переключатель -append:

Get-Process powershell | Format-List | Out-File C:\SysInfo\ps.txt ` –append

Сортировка выходных данных

Часто бывает необходимо не только отформатировать выходные данные, но и отсортировать их. Для выполнения этой операции используется команда Sort-Object. Эта команда принимает в качестве входных данных объекты, поступающие из конвейера, и сортирует их в соответствии с указанными пользователем критериями. Как уже отмечалось выше, PowerShell передает результаты по конвейеру в виде потока от одной команды к другой. Но в процессе сортировки данных команда Sort-Object выжидает до тех пор, пока не поступят все результаты (объекты), и лишь после этого сортирует их. В итоге процесс потоковой передачи останавливается до завершения операции сортировки. Если речь идет о небольшом результирующем наборе, проблемы не возникает, но при извлечении больших объемов данных производительность системы может снизиться.

Тем не менее команда Sort-Object может быть весьма полезной. Допустим, к примеру, что нам требуется получить список объектов, находящихся в папке C:\Windows. Мы можем использовать команду Get- ChildItem в рамках следующей инструкции:

dir c:\windows | where {$_.length -gt 500000} | sort -property length -descending

Данная инструкция передает выходной объект от команды Get-ChildItem (ссылка на который производится с помощью псевдонима dir) команде Where-Object (ссылка на который производится с помощью псевдонима where). Команда Where-Object определяет, что длина должна быть больше 500000 байт (как указывает переключатель -gt). Затем результаты перемещаются по конвейеру. Когда команда Sort-Object (к которой обращаются с помощью псевдонима sort) получает все объекты, она сортирует их в соответствии с заданными критериями.

В данном случае команда Sort-Object первым делом определяет, что сортировка должна производиться по свойству Length. Переключатель -descending указывает, что результаты нужно сортировать в порядке убывания, как показано на экране 6. Если мы не укажем переключатель -descending, результаты будут сортироваться в порядке возрастания. Кроме того, можно указать несколько свойств (разделенных запятыми), на которых будет основываться порядок сортировки. PowerShell сортирует данные сначала по первому указанному свойству, потом по второму и т. д.

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

Роберт Шелдон ([email protected] ) — технический консультант и автор большого количества книг по технологиям Microsoft Windows и базам данных

Как работать с длинными инструкциями PowerShell

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

Проиллюстрируем примером. Когда первая строка инструкции заканчивается знаком оператора, как в следующем примере

Get-Service | where {$_. status -eq ‘running’} | select displayname

PowerShell исходит из того, что продолжение инструкции перенесено на следующую строку. Результаты упомянутой инструкции подобны показанным на экране 3. Обратите внимание на символы многострочного приглашения (>>), с которых начинается каждая строка после первой. Когда PowerShell предполагает, что текущая строка будет продолжена на второй строке, перед последней указывается многострочное приглашение. И тогда после этого приглашения пользователь вводит на второй строке следующую строку кода. После того как оболочка PowerShell переходит в этот многострочный режим, она будет продолжать работу в данном режиме и предлагать пользователю многострочное приглашение. По завершении ввода последней строки нажмите клавишу «Ввод» во второй раз для выполнения команды и для возвращения к обычному приглашению.

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

Get-Service    | where {$_. status -eq ‘running’}    | select displayname

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

Get-Service `    | where {$_. status -eq ‘running’} `    | select displayname

Символ обратной кавычки извещает PowerShell о том, что инструкция будет продолжена на следующей строке. Теперь рассматриваемая инструкция возвращает те же данные, что и на экране 3.

Оболочка PowerShell обрабатывает каждую строку, которая рассматривается ею как завершенная инструкция. Иными словами, она автоматически прекращает выполнение инструкции, когда доходит до новой строки, кроме тех случаев, когда PowerShell полагает, что инструкция будет продолжена. Однако помните, что можно прекратить выполнение инструкции вручную; для этого нужно добавить в конце символ точки с запятой (;):

Get-Service |    where {$_. status -eq ‘running’} |    select displayname;

Эта инструкция возвращает результаты, которые представлены на экране 3.

Постоянный URL статьи: http://www.osp.ru/win2000/2008/03/5042632/

© 1992-2008 Все права защищены / Издательство "Открытые системы"

Источник: http://www.osp.ru/win2000/2008/03/5042632/

norek.3dn.ru

PowerShell. Урок 6 | Windows IT Pro/RE

Чтобы получить доступ к папкам и файлам в среде Windows PowerShell, необходимо указывать путь к нужному ресурсу, например C:WindowsSystem32. В данном случае путь начинается с буквы C, означающей имя накопителя. Всякий раз, когда пользователь обращается к ресурсу файловой системы, он должен указывать имя накопителя — если, конечно, накопитель не указан неявным образом в контексте команды (скажем, когда пользователь получает список объектов текущего рабочего каталога).

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

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

Основные сведения о провайдерах PowerShell

Основными компонентами доступа к хранилищам данных являются провайдеры PowerShell. Провайдер — это программа Microsoft.NET, обеспечивающая доступ к данным и связывающая среду PowerShell и данные. Провайдеры абстрагируют доступ к данным, так что пользователь может внутри PowerShell применять одни и те же механизмы для взаимодействия с различными хранилищами. Например, с помощью команды Get-ChildItem можно обращаться к файловой системе, реестру и хранилищу сертификатов. PowerShell поддерживает целый ряд встроенных провайдеров. Чтобы просмотреть список провайдеров, имеющихся в системе в данный момент, можно воспользоваться командой Get-PSProvider в команде

Get-PSProvider | select Name

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

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

Работа со встроенными накопителями

Провайдеры предоставляют данные через один или несколько накопителей PowerShell. К примеру, провайдер FileSystem предоставляет данные файловой системы через накопители PowerShell, которые соответствуют накопителям Windows. Так, провайдер предоставляет доступ к накопителю С системы Windows через накопитель C оболочки PowerShell.

Чтобы просмотреть список накопителей PowerShell и связанных с ними провайдеров, можно воспользоваться командой Get-PSDrive, как показано в примере:

Get-PSDrive | sort Provider, Name

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

Кроме того, приведенная выше инструкция отображает сведения о корневом каталоге. Корневым называется каталог внутри целевого хранилища данных, который соответствует накопителю PowerShell. Так, накопитель HKCU соответствует разделу HKEY_ CURRENT_USER реестра. Для накопителей, которые представляют не имеющие иерархической структуры хранилища данных, такие как псевдонимы и переменные PowerShell, значение корневого каталога остается пустым. С помощью команды Get-PSDrive можно получать информацию о том или ином накопителе. Так, следующая инструкция позволяет получить данные о накопителе Function:

Get-PSDrive Function | Format-List

Как видно на экране 2, данная инструкция возвращает такие детали, как имя провайдера и описание накопителя. Обратите внимание, что на этом экране представлена также инструкция

Get-PSDrive -PSProvider Registry

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

cd Env:

мы можем сделать рабочим каталогом накопитель Env.

В данной инструкции псевдоним cd используется для обращения к команде Set-Location. На экране 3 показано, как этот новый каталог отображается в окне командной строки. Перейдя в эту папку, мы можем выполнять и другие команды PowerShell, например

dir | where {$_.Name -like «*path*»}

В этой команде я использую псевдоним dir для обращения к команде Get-ChildItem. Затем команда отфильтровывает все имена переменных, не содержащие строки path. Результаты ее выполнения представлены на экране 3. Они показывают, что команда Get-ChildItem действует так же, как если бы мы имели дело с накопителем файловой системы.

Пользователь может обращаться к накопителю любого типа из накопителя любого другого типа. Следующая инструкция получает список объектов накопителя HKCU:

dir HKCU:

На экране 4 видно, что моим рабочим каталогом по-прежнему является Env, однако результаты считываются в накопителе HKCU.

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

cd HKCU:SoftwareMicrosoftOffice

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

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

dir HKLM:SoftwareMicrosoftOffice

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

Для просмотра конкретных сведений, касающихся того или иного элемента, например раздела реестра, можно использовать команду Get-ItemProperty. Следующая инструкция считывает информацию о разделе реестра HKEY_LOCAL_MACHINESoftwareMicrosoftASP.NET key:

Get-ItemProperty ` HKLM:SoftwareMicrosoftASP. NET

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

Итак, встроенные накопители PowerShell используются для получения данных. Но, кроме этого, с их помощью можно выполнять любые действия, применимые к соответствующему хранилищу данных. Так, команду New-Item можно использовать для создания объекта внутри реестра:

New-Item ` HKLM:SoftwareMicrosoftTestKey1

Эта команда создает раздел TestKey1 в разделе HKEY_LOCAL_MACHINESoftwareMicrosoft. Результаты выполнения команды показаны на экране 7.

После создания раздела команду New-ItemProperty можно использовать для добавления свойств в этот раздел. Процедура добавления свойства в PowerShell аналогична добавлению записи в редакторе реестра. Следующая инструкция добавляет в раздел TestKey1 свойство TestProperty:

New-ItemProperty ` HKLM:SoftwareMicrosoftTestKey1 ` – Name TestProperty -PropertyType string ` – Value «test value»

Добавленное свойство имеет значение test value, с типом данных «строка». При выполнении этой инструкции PowerShell возвращает список всех свойств и их значений. Как показывает экран 7, было добавлено новое свойство.

С помощью накопителей PowerShell можно выполнять и другие действия. Так, следующая команда использует команду Rename-Item, с тем чтобы присвоить разделу TestKey1 новое имя TestKey2:

Rename-Item ` HKLM:SoftwareMicrosoftTestKey1 ` TestKey2

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

Remove-Item ` HKLM:SoftwareMicrosoftTestKey2

Таким образом, работа с накопителем реестра аналогична работе с накопителем файловой системы. Кстати говоря, команды New-Item, Rename-Item и Remove-Item можно с такой же легкостью применять к файлам и папкам — или элементам — любого другого накопителя.

Создание накопителей PowerShell

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

Накопители PowerShell создаются с помощью команды New-PSDrive. В следующем примере эта команда создает накопитель с именем ps:

New-PSDrive -Name ps ` – PSProvider FileSystem -Root $pshome

Инструкция указывает имя нового накопителя, провайдера и, наконец, — корневой каталог. В данном случае я использую встроенную переменную PSHOME для получения имени главной папки PowerShell. При выполнении данной инструкции PowerShell создает накопитель и отображает сведения о нем, как показано на экране 8. Обратите внимание на то, что PowerShell отображает фактическое имя корневого каталога, а не имя переменной. Более подробные сведения о переменных были приведены в уроке 5.

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

cd ps:

Как показано на экране 8, в приглашении на ввод команды PowerShell отображается имя нового накопителя. Теперь в нем можно работать, как если бы мы сделали рабочим каталог C:Windowssystem32Windows PowerShellv1.0.

Если необходимо убедиться, что вы работаете в той папке, которая вам нужна, можете запустить команду Get-ChildItem. На экране 9 показано, каких результатов следует ожидать после ее выполнения. Обратите внимание, что в числе прочих данных на экране отображается корректное имя рабочего каталога. В рассматриваемом примере PowerShell выполняется на компьютере Windows XP. Если у вас PowerShell функционирует в другой операционной среде, результаты могут быть иными, поскольку в различных операционных системах для PowerShell указываются разные главные каталоги.

Среди прочих команд в PowerShell реализована команда Remove-PSDrive, позволяющая удалять пользовательские накопители. При запуске этой команды в качестве рабочего не должен использоваться каталог, который предполагается удалить. В следующем примере сначала изменяется рабочий каталог, а затем осуществляется удаление накопителя ps.

cd C:; Remove-PSDrive ps

Нужно иметь в виду, что все накопители, созданные в ходе рабочего сеанса, сохраняются лишь до его окончания. Поэтому удалять накопители не требуется — кроме тех случаев, когда пользователю нужно удалить накопитель явным образом. Возможно, вы сочтете целесообразным сократить список доступных накопителей, когда одно из этих виртуальных устройств вам уже будет не нужно. Перенести пользовательский накопитель из одного сеанса в другой можно путем изменения файла профиля пользователя. В одной из следующих статей я расскажу о том, как создавать и оптимизировать файлы профилей. Впрочем, если вам нужно получить дополнительные сведения о файлах профилей прямо сейчас, следует познакомиться с подготовленной специалистами TechNet статьей «Window PowerShell Profiles» (technet.microsoft.com/en-us/library/cc162758.aspx).

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

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

Роберт Шелдон ([email protected]) — технический консультант и автор книг, статей и учебных материалов по проблематике Microsoft Windows и различным системам управления реляционными базами данных (включая SQL Server), а также по вопросам проектирования и реализации систем бизнес-аналитики

Таблица. Встроенные провайдеры оболочки PowerShell

www.osp.ru

Урок 1. Начало работы с командлетами AppFabric для Windows PowerShell

Время выполнения: 15 минут

Цель: подготовка среды Windows PowerShell к использованию командлетов Windows Server AppFabric для Windows PowerShell, предназначенных для настройки приложения «Служба заказов», управления им и наблюдения за ним.

Задача: в этом занятии будет загружена среда ApplicationServer module for Windows PowerShell и включено выполнение сценариев для Windows PowerShell. В этом учебном курсе следует использовать одну и ту же консоль Windows PowerShell во всех оставшихся занятиях.

Предварительные условия

Перед следующим шагом обратите внимание на следующие требования:

  • Система AppFabric должна быть уже установлена.
  • Необходима возможность запустить Windows PowerShell от имени учетной записи администратора.

Процедура

В этом занятии будут выполнены следующие шаги:

  1. запуск сеанса Windows PowerShell с учетными данными администратора;
  2. разрешение выполнения сценариев Windows PowerShell;
  3. загрузка ApplicationServer module for Windows PowerShell.

Запуск сеанса Windows PowerShell с учетными данными администратора

  1. Программа Powershell.exe расположена в каталоге C:\Windows\System32\WindowsPowerShell\v1.0. Откройте его в проводнике или найдите в средстве поиска, нажав кнопку Пуск и введя powershell.exe в поле поиска.
  2. Щелкните правой кнопкой мыши программу powershell.exe и выберите пункт Запуск от имени администратора.
  3. После запуска окна сеанса Windows PowerShell щелкните правой кнопкой мыши заголовок и выберите пункт Свойства.
  4. В окне Свойства Windows PowerShell убедитесь, что выбран режим Выделение мышью, и нажмите кнопку ОК.

Включение выполнения сценариев в Windows PowerShell

Большинство шагов в этом учебном курсе ориентировано на использование сеанса Windows PowerShell. Тем не менее для создания автоматического сценария можно использовать команды во всех занятиях. В некоторые занятиях выполнение сценариев используется для упрощения подхода. В этом разделе будет включено выполнение локального сценария только для текущего сеанса Windows PowerShell.

  1. Выполните следующую команду в окне Windows PowerShell для разрешения выполнения локальных неподписанных сценариев в Windows PowerShell. Set-ExecutionPolicy –ExecutionPolicy RemoteSigned –Scope Process
  2. В ответ на приглашение подтвердить изменение политики выполнения введите Y и нажмите клавишу ВВОД.
  3. Для проверки включения выполнения локальных сценариев выполните следующую команду в среде Windows PowerShell. Среда Windows PowerShell должна описать политику выполнения как RemoteSigned.

Параметр –Scope Process гарантирует, что политика активна только в текущем процессе Windows PowerShell и всех создаваемых дочерних процессах. Задание политики выполнения Windows PowerShell как RemoteSigned с помощью приведенной выше команды приводит к активации следующей политики для текущего сеанса Windows PowerShell:

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

Чтобы отменить изменение политики, закройте текущий сеанс Windows PowerShell и все запущенные в нем дочерние процессы. Обратите внимание, что на занятиях в данном учебном курсе потребуется включить в сеансе измененную политику выполнения.

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

Дополнительные сведения о политиках выполнения в Windows PowerShell 2.0 см. в разделе about_execution_policies; также можно выполнить следующую команду.

Get-help about_execution_policies

Загрузка модуля Windows PowerShell для AppFabric

  1. Выполните следующую команду, чтобы загрузить ApplicationServer module for Windows PowerShell с помощью командлета Import-Module для Windows PowerShell. Import-Module ApplicationServer Отсутствие ошибок указывают на то, что модуль был загружен успешно.
  2. Чтобы убедиться в том, что ApplicationServer module for Windows PowerShell загружается правильно, выполните следующую команду в окне Windows PowerShell. Get-Command –Module ApplicationServer Результатом этой команды должно быть перечисление всех команд, предоставляемых ApplicationServer module for Windows PowerShell, в виде таблицы.

Содержание занятия

В этом занятии среда Windows PowerShell была запущена с административными учетными данными, чтобы включить выполнение сценариев для последующих занятий. Также была загружена среда ApplicationServer module for Windows PowerShell и выполнена проверка команд, предоставляемых модулем. Эти команды будут использоваться в этом учебном курсе для настройки приложения «Служба заказов», наблюдения за ним и управления им.

Дальнейшие действия

См. также

technet.microsoft.com

Урок 1. Начало работы с командлетами AppFabric для Windows PowerShell

Время выполнения: 15 минут

Цель: подготовка среды Windows PowerShell к использованию командлетов Microsoft AppFabric 1.1 для Windows Server для Windows PowerShell, предназначенных для настройки приложения "Служба заказов", управления им и наблюдения за ним.

Задача: в этом занятии будет загружена среда модуль ApplicationServer для Windows PowerShell и включено выполнение сценариев для Windows PowerShell. В этом учебном курсе следует использовать одну и ту же консоль Windows PowerShell во всех оставшихся занятиях.

Предварительные условия

Перед следующим шагом обратите внимание на следующие требования:

  • Система AppFabric должна быть уже установлена.
  • Необходима возможность запустить Windows PowerShell от имени учетной записи администратора.

Процедура

В этом занятии будут выполнены следующие шаги:

  1. запуск сеанса Windows PowerShell с учетными данными администратора;
  2. разрешение выполнения сценариев Windows PowerShell;
  3. загрузка модуль ApplicationServer для Windows PowerShell.

Запуск сеанса Windows PowerShell с учетными данными администратора

  1. Программа Powershell.exe расположена в каталоге C:\Windows\System32\WindowsPowerShell\v1.0. Откройте его в проводнике или найдите в средстве поиска, нажав кнопку Пуск и введя powershell.exe в поле поиска.
  2. Щелкните правой кнопкой мыши программу powershell.exe и выберите пункт Запуск от имени администратора.
  3. После запуска окна сеанса Windows PowerShell щелкните правой кнопкой мыши заголовок и выберите пункт Свойства.
  4. В окне Свойства Windows PowerShell убедитесь, что выбран режим Выделение мышью, и нажмите кнопку ОК.

Включение выполнения сценариев в Windows PowerShell

Большинство шагов в этом учебном курсе ориентировано на использование сеанса Windows PowerShell. Тем не менее для создания автоматического сценария можно использовать команды во всех занятиях. В некоторые занятиях выполнение сценариев используется для упрощения подхода. В этом разделе будет включено выполнение локального сценария только для текущего сеанса Windows PowerShell.

  1. Выполните следующую команду в окне Windows PowerShell для разрешения выполнения локальных неподписанных сценариев в Windows PowerShell. Set-ExecutionPolicy –ExecutionPolicy RemoteSigned –Scope Process
  2. В ответ на приглашение подтвердить изменение политики выполнения введите Y и нажмите клавишу ВВОД.
  3. Для проверки включения выполнения локальных сценариев выполните следующую команду в среде Windows PowerShell. Среда Windows PowerShell должна описать политику выполнения как RemoteSigned.

Параметр –Scope Process гарантирует, что политика активна только в текущем процессе Windows PowerShell и всех создаваемых дочерних процессах. Задание политики выполнения Windows PowerShell как RemoteSigned с помощью приведенной выше команды приводит к активации следующей политики для текущего сеанса Windows PowerShell:

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

Чтобы отменить изменение политики, закройте текущий сеанс Windows PowerShell и все запущенные в нем дочерние процессы. Обратите внимание, что на занятиях в данном учебном курсе потребуется включить в сеансе измененную политику выполнения.

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

Дополнительные сведения о политиках выполнения в Windows PowerShell 2.0 см. в разделе about_execution_policies; также можно выполнить следующую команду.

Get-help about_execution_policies

Загрузка модуля Windows PowerShell для AppFabric

  1. Выполните следующую команду, чтобы загрузить модуль ApplicationServer для Windows PowerShell с помощью командлета Import-Module для Windows PowerShell. Import-Module ApplicationServer Отсутствие ошибок указывают на то, что модуль был загружен успешно.
  2. Чтобы убедиться в том, что модуль ApplicationServer для Windows PowerShell загружается правильно, выполните следующую команду в окне Windows PowerShell. Get-Command –Module ApplicationServer Результатом этой команды должно быть перечисление всех команд, предоставляемых модуль ApplicationServer для Windows PowerShell, в виде таблицы.

Содержание занятия

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

Дальнейшие действия

См. также

msdn.microsoft.com

Видео-уроки по PowerShell 2.0 (2010–2012, RUS) — Лебедев Юрий .

Видео-уроки по  PowerShell 2.0. рассказывают о  PowerShell 2.0, начиная с азов. Демонcтрации проходят на  7 и  Server 2008 R2. PowerShell — расширяемое средство автоматизации от Micro, состоящее из оболочки с интерфейсом командной строки и сопутствующего языка сценариев. PowerShell также предоставляет механизм встраивания, благодаря которому исполняемые компоненты PowerShell могут быть встроены в другие приложения. Эти приложения затем могут использовать функциональность PowerShell для реализации различных операций, включая предоставляемые через графический интерфейс. Уже сейчас большинство серверных приложений Micro на платформе используют PowerShell.

Содержание1. Инструменты PowerShell 2.02. Сценарии  PowerShell 2.03. PowerShell 2.0 и CMD4. Переменные в PowerShell 2.05. Форматирование вывода в  PowerShell 2.06. Обзор встроенных оснасток  PowerShell 2.07. Обзор встроенных поставщиков  PowerShell 2.08. Обзор модулей PowerShell 2.09. Удаленная работа с  PowerShell 2.010. Автоматизация удаленного выполнения команд в  PowerShell 2.011. Фоновые задания в  PowerShell 2.012. Восстановление системы при помощи  PowerShell 2.013. Установка PowerShell 2.0 на Server Core14. Арифместические действия в  PowerShell 2.015. Присваивание в  PowerShell 2.016. Сравнение чисел в  PowerShell 2.0.Full17. Сравнение строк в  PowerShell 2.0.Full18. Подстановочные знаки в  PowerShell 2.0.Full19. Логические операторы в  PowerShell 2.0.Full20. Командлеты для работы с переменными в  PowerShell21. Тиражирование кода в  PowerShell 2.022. Управление областью действия переменных в  PowerShell 2.023. Управление переменными окружения в  PowerShell 2.024. Кавычки в  PowerShell 2.025. ESCAPE-символы в  PowerShell 2.026. Многострочные переменные в  PowerShell 2.027. Обработка строк в  PowerShell 2.028. Форматирование чисел и строк в  PowerShell 2.029. Одномерные массивы в  PowerShell 2.030. Работа с одномерными массивами в  PowerShell 2.031. Многомерные массивы в  PowerShell 2.032. Управление псевдонимами в  PowerShell 2.033. Функции в  PowerShell 2.034. Автоматические переменные в  PowerShell 2.035. Фильтры в  PowerShell 2.036. Встроенные функции в  PowerShell 2.037. Объекты в  PowerShell 2.038. Работа с объектами в  PowerShell 2.0

Название: Видео-уроки по  PowerShell 2.0Год выпуска: 2010–2012Производитель: LebedevUMАвтор: Лебедев ЮрийПродолжительность: 10:19:36Жанр: ВидеоурокЯзык: РусскийФормат видео: MP4Видео: MPEG4 Video (h364) 1024×768 15.00fpsАудио: AAC 44100Hz stereo 1411kbpsРазмер: 1.06 GB

www.takelink.ru