Как работать с утилитой Windows PowerShell. Как работать в windows powershell


Знакомство с утилитой PowerShell в системах Windows 7, 8 и 10

Опытные пользователи операционной системы Windows 10 могли слышать об утилите командной строки PowerShell. Также с ней могут быть знакомы имеющие опыт работы с Windows 7 и 8.1. После многих лет использования приложения командной строки Windows и файлов формата .bat пришло время познакомиться с более функциональным инструментом.

PowerShell является ценным пополнением списка инструментов Windows и его масштаб может отпугнуть некоторых пользователей. Что это — скриптовый язык или командная оболочка? Не стоит беспокоиться: несмотря на обширные возможности, освоить PowerShell по силам каждому.

Шаг 1: установка

Для начала нам необходима сама утилита PowerShell. Если вы работаете с Windows 10, у вас уже установлена версия PowerShell 5. Обновление Windows 10 Anniversary Update использует версию 5.1, но разница незаметна. В Windows 8 и 8.1 применяется PowerShell 4, чего тоже вполне достаточно. Установка PowerShell на Windows 7 не доставит проблем, но всё же пару лишних шагов придется сделать. В частности, нужно дополнительно установить .Net Framework. Можно установить Windows Management Framework, в состав которого входит PowerShell.

У PowerShell есть два интерфейса. Опытные пользователи могут выбрать полноценный графический интерфейс, известный как Integrated Scripting Environment (ISE). Новичкам лучше использовать консоль PowerShell, простой текстовый интерфейс в стиле командной строки Windows или даже DOS 3.2.

Для запуска PowerShell от имени администратора в Windows 10 нажмите на кнопку «Пуск» и прокрутите список приложений до Windows PowerShell. В Windows 8.1 ищите Windows PowerShell в папке System в Windows. В Windows 7 оболочка располагается в папке Accessories. В качестве обычного пользователя PowerShell можно запустить точно так же, используя левую кнопку мыши вместо правой.

В любой версии Windows можно применить поиск. Для удобства дальнейшего использования можно закрепить PowerShell на панели задач.

Шаг 2: старые команды Windows

Синтаксис команд Windows в PowerShell работает привычным образом. Например, cd меняет папки, dir показывает список всех файлов и папок внутри текущей папки.

В зависимости от метода запуска консоли PowerShell можно начать в c:\Windows\system32 или в c:\Users\<username>. В примере на скриншоте используется команда cd .. (с пробелом) для перехода на один уровень вверх за раз, затем запускается команда dir для отображения списка файлов и папок в директории C:\.

Шаг 3: установка файлов помощи

Команды вроде cd и dir не являются активными командами оболочки PowerShell. Это так называемые псевдонимы (aliases) —  замены настоящих команд PowerShell. Псевдонимы удобны для тех, кто имеет большой опыт работы с командной строкой. Однако они не затрагивают глубин PowerShell.

Чтобы начать знакомиться с возможностями PowerShell, наберите help и нужную вам команду. На скриншоте показана команда help dir.

Команда help говорит, что dir является псевдонимом команды PowerShell Get-ChildItem. Если набрать get-childitem в PS C:\>, увидите то же самое, что и при использовании команды dir.

Как указано внизу скриншота, файлы помощи для PowerShell не устанавливаются автоматически. Для их получения запустите PowerShell от имени администратора и наберите update-help. Установка файлов помощи займёт несколько минут, ряд модулей могут отсутствовать —  например, в данном случае не установились Help for NetWNV и SecureBoot. Когда всё готово, полная система помощи всегда будет давать нужные подсказки.

Теперь наберите команду get-help и любую интересующую вас команду («cmdlet» на языке PowerShell, по-русски командлеты), будет показано её описание. Например, get-help get-childitem выдаёт список опций get-childitem. Также можно вывести разные возможные варианты. Например

get-help get-childitem -examples

выдает семь подробных примеров использования get-childitem. Команда

get-help get-childitem -detailed

включает в себя эти семь примеров и подробные разъяснения каждого параметра в командлете get-childitem.

Шаг 4: получение помощи по параметрам

На скриншоте help dir вы могли заметить два списка под SYNTAX для get-childitem. Наличие двух разных синтаксисов означает возможность применения двух способов запуска командлет. Как держать синтаксис отдельно друг от друга и что означают параметры? Ответ простой, если знать трюк.

Для получения подробностей относительно параметров командлеты get-childitem или любой другой используйте параметр -full:

get-help get-childitem -full

Это выдает список того, что вы можете сделать с командлетой и что случится. Смотрите на скриншот.

Просмотр описания параметров позволяет заметить, что get-childitem даёт возможность получить объект child (вроде названия подпапки или имени файла) в указанном месте, с совпадением определённых символов или без. Например:

get-childItem “*.txt” -recurse

возвращает список файлов «*.txt» в текущей папке и всех подпапках (из-за параметра -recurse). Тогда как

get-childitem “HKLM:\Software”

возвращает список всех ключей реестра верхнего уровня в HKEY_LOCAL_MACHINE\Software.

Если вы когда-нибудь пытались попасть в реестр при помощи командной строки Windows или файлов .bat, вы сможете оценить функциональность этого варианта доступа.

Шаг 5: изучение имён

Есть причина того, почему показанные до сих пор командлеты выглядят сходным образом: get-childitem, update-help, get-help используют единую схему глагол-существительное. Это соглашение применяют все командлеты PowerShell, в них глагол стоит перед единственным существительным. Это понравится тем, кто в своё время пострадал от непостоянства названий команд в языках VB и VBA.

Взгляните на самые распространенные командлеты:

set-location: устанавливает текущую рабочий локацию на определённую локацию

get-content: получает содержимое файла

get-item: получает файлы и папки

copy-item: копирует объект из одной локации в другую

remove-item: удаляет файлы и папки

get-process: получает процессы, запущенные на локальном или удаленном компьютере

get-service: получает сервисы, запущенные на локальном или удаленном компьютере

invoke-webrequest: получает содержимое с веб-страницы в интернете

Для просмотра работы определённой командлеты используйте get-help как в случае

get-help copy-item -full

На основе описания в помощи можно понять, что необходимо командлете. Например, если вы хотите копировать все файлы и папки из Documents в c:\temp, используйте

copy-item c:\users\[username] \documents\* c:\temp

Введя эту команду, вы увидите несколько интересных возможностей окружения PowerShell. Например, если набрать copy-i и нажать кнопку Tab, PowerShell заполнит Copy-Item.  Если неправильно набрать командлету и PowerShell не может распознать её, даётся полное описание того, что было сделано не так.

Попробуйте данную командлету:

invoke-webrequest askwoody.com

Вы получите краткий список заголовков, изображений, ссылок и прочего содержимого веб-страницы. Обратите внимание в get-help на список invoke-webrequest, который «возвращает коллекцию форм, ссылок, изображений и прочие важные элементы HTML» — именно то, что должно показываться на экране.

Некоторые командлеты помогают управлять самим PowerShell:

get-command: список всех доступных командлет

get-verb: список всех доступных глаголов

clear-host: очистка экрана программы-хоста

Разные параметры позволяют уменьшать команды и сужать круг полезных опций. Например, для просмотра списка всех командлет, работающих с сервисами Windows, введите

get-command *-service

Будут показаны все глаголы, доступные с существительным service. Вот их список:

Get-Service

New-Service

Restart-Service

Resume-Service

Set-Service

Start-Service

Stop-Service

Suspend-Service

Можно объединять эти командлеты с другими.

Шаг 6: использование труб

Если вы знакомы с командной строкой Windows или пакетными файлами, то знаете о перенаправлении и трубах. Перенаправление (символ >) и трубы (символ |) берут результат действия и прикрепляют его в другое место. Например, можно перенаправить результат команды dir в текстовый файл или передать результат команды ping в команду find для фильтрования интересных результатов, вроде

dir > temp.txt

ping askwoody.com | find “packets” > temp2.txt

Здесь во второй команде find ищет строку packets, взятую из адреса askwoody.com командой ping и объединяет все совпадающие строки в файл под названием temp2.txt.

Первая из этих команд отлично работает в PowerShell. Для запуска второй команды потребуется нечто вроде

ping askwoody.com | select-string packets | out-file temp2.txt

Использования перенаправления и труб значительно расширяет возможности командной строки Windows: вместо бесконечного прокручивания вниз по экрану в поиске текстовой строки можно отфильтровывать нужные команды Windows.

Powershell обладает поддержкой pipe, причём она не ограничена текстом. PowerShell позволяет передавать целый объект из одной командлеты в другую, где объект представляет собой комбинацию данных (называемых свойствами) и действий (методов), которые могут использовать эти данные.

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

Как это понять? Используйте командлету get-member. Если вы хотите знать, какой тип объекта обрабатывает командлета, проведите её через get-member. Например, если вы пытаетесь понять запущенные на компьютере процессы и сузили опции до командлеты get-process, вот как узнать результат командлеты:

get-process | get-member

Запуск этой командлеты выдаёт длинный список свойств и методов для get-process, но в самом начале списка можно увидеть тип объекта, который создает get-process:

TypeName: System.Diagnostics.Process

Нижеприведенный скриншот также показывает свойства get-process под названием get-process Handles, Name, NPM, PM, SI, VM и WS.

Если вы хотите манипулировать результатом get-process для работы с этим командлетом (вместо отображения длинного списка активных процессов на мониторе), нужно найти другую команду, которая в качестве вводных данных принимает System.Diagnostics.Process. Для поиска нужной командлеты снова используйте возможности PowerShell:

get-command -Parametertype System.Diagnostics.Process

Эта командлета выдает список командлет, которые могут обрабатывать System.Diagnostics.Process.

Некоторые командлеты известны тем, что принимают почти любой вид данных. Главной среди них является where-object. Эта командлета пропускает через себя каждый посылаемый по трубе объект, один за одним, и применяет к нему заданной критерии выбора. Существует специальный маркер под названием $_, который позволяет использовать каждый предмет в трубе, один за раз.

Допустим, вы хотите получить список всех запущенных на компьютере процессов с названием «svchost», то есть хотите сопоставить свойство Name процессу svchost. Используйте команду:

get-process | where-object {$_.Name -eq “svchost”}

Командлета where-object смотрит на каждый объект System.Diagnostics.Process, сравнивает .Name этого объекта с «svchost»; если есть совпадения, они выдаются на монитор. Смотрите на скриншот.

Шаг 7: анализ полезных команд PowerShell

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

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

Get-AppXPackage | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register “$($_.InstallLocation)\AppXManifest.xml”}

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

Вот как работает данная команда. Get-AppXPackage проверяет все пакеты приложений в профиле пользователя. Даже если вы удалили приложение, оно остается в списке профиля пользователя.

Командлета Get-AppXPackage возвращает объект TypeName Microsoft.Windows.Appx.PackageManager.Commands.AppxPackage, который включает в себя полное имя пакета приложения и местонахождения соответствующего файла манифеста XML. Если запустить командлету get-appxpackage, вы увидите длинный список пакетов приложений. Скриншот показывает описание приложения Xbox.

Командлета Foreach посредством цикла проходит через каждый объект в AppXPackage, отправляя их командлету Add-AppxPackage. Согласно get-help для Add-AppxPackage, тут есть два ключевых переключателя:

  • Переключатель -Register используется для регистрации существующих установок пакетов приложений, можно задать параметры DisableDevelopmentMode и Register
  • Переключатель -DisableDevelopmentMode говорит Windows заново зарегистрировать существующий пакет приложения, который был отключён, не зарегистрирован или повреждён.

Строка «$($_.InstallLocation)\AppXManifest.xml» описывает, где расположен файл manifest.xml. Если посмотреть на файлы AppXManifest.xml, вы увидите сложный список идентификаторов приложений, исполняемых файлов и большое количество визуальных элементов, связанных с приложением.

После перезагрузки все добавленные пакеты приложений скачиваются и устанавливаются из магазина Windows Store.

Вконтакте

Facebook

Twitter

Google+

  1. 5
  2. 4
  3. 3
  4. 2
  5. 1
(3 голоса, в среднем: 3.7 из 5)

osdaily.ru

Первые шаги для пауэршельшиков / Хабр

Приди ко мне брате в Консоль! — Админ Долгорукий. Много ярлыков улетело в корзину со времён выхода в свет 2008 Windows. Люди попроще дивились новому синему окошку, которое ребята из Майкрософт зачем-то вставили в свои новые продукты. Люди, которые сидят на блогах и знают программирование начали изучать это окошко.

В итоге к народу начало приходить осознание того, что Майкрософт действительно разработали что-то новое и интересное. И так, зачем вам это нужно? В основном, программа под названием PowerShell (в дальнейшем PS) предназначена для администраторов и программистов. Она позволяет автоматизировать примерно 99% всех действий в системе. С помощью неё вы можете настраивать удалённые компьютеры, запускать и перезапускать сервисы и производить обслуживание большиства серверных приложений. Как выяснилось, возможности у программы потрясающие.

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

Задача этой статьи проста — показать вам малую долю возможностей PS и дать вам концептуальное понимание предмета. В действительности документации по предмету написано несметное количество, так что я не стремлюсь охватить всё. Я так же ознакомлю вас с набором утилит, которые позволят не вылезать из PS в принципе.

Что представляет собой PS? Это интерпретатор командной строки. Вы вводите необходимые команды, на экране отображается результат их выполнения. Всё просто. Всё было так со времён доса и старого доброго Юникса.

Есть два основных отличия от предшественников, которые качественно выделяют PS среди других интерпретаторов.

  • Очень хорошая интеграция с Microsoft .NET Framework. Это даёт вам возможность вплетать мощные программистские решения в свои команды и скрипты.
  • Все значения, возвращаемые вам в терминал являются объектами, с которыми можно работать как с объектами, а не просто набором строк. Это позволяет вам создавать неимоверно мощные программные скрипты.

Приступая к работе

Если вы используете Windows 7 или 2008 то PS вам уже доступен. Для пользователей других версий Windows — добро пожаловать на сайт Майкрософт.

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

dir

и вы получите список папок в текущем каталоге. Приятным моментом для любителей Юникса будет тот факт, что команда

ls

работает так же хорошо, как и dir. В PS существует система назначения алиасов на различные команды. В действительности, то что вы сейчас сделали — это выполнили командлет (так в PS называются команды, встроенные в сам PS) Get-ChildItem. Вы можете попробовать просто набрать Get-ChildItem и получить тот же результат, что и в двух предыдущих командах. Для того, чтобы вы быстро ознакомились со списком всех алиасов наберите

ls Alias:\

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

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

Get-Process # Получить список процессов Remove-Item # Удалить что-то Get-Help # получить справку по чему-то Set-Alias # Создать новый алиас New-Item # Создать новый объект (Объектом может быть всё что угодно, например, файл)

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

Get-PSDrive

И в ответ вы получаете намного более интересный список дисков в вашей системе, нежели тот, что вы видите в «Моём Компьютере»

Name Used (GB) Free (GB) Provider Root ---- --------- --------- -------- ---- Alias Alias C 16.56 63.44 FileSystem C:\ cert Certificate \ D .11 53.92 FileSystem D:\ Env Environment Function Function HKCU Registry HKEY_CURRENT_USER HKLM Registry HKEY_LOCAL_MACHINE Variable Variable WSMan WSMan

На диске Alias вы можете увидеть список всех алиясов в системе. Виртуальный диск Variable: хранит в себе все переменные, которые вы можете использовать в данной сессии. На диске Env — лежат переменные операционной системы. Диски HKCU и HKLM являются обёрткой для работы с соответствующими ветками реестра. Давайте углубимся. Набирайте

Set-Location HKLM: # Или, если вы из людей подосёвее, набирайте cd HKLM:

Ну и как вам новый и невероятный способ хождения по реестру всея машины? Вы можете сделать ls по ветке реестра или перейти в нужный «каталог», набрав cd SYSTEM.

SKC VC Name Property --- -- ---- -------- 2 0 BCD00000000 {} 4 0 HARDWARE {} 1 0 SAM {} Get-ChildItem : Requested registry access is not allowed. At line:1 char:3 + ls <<<< -force + CategoryInfo : PermissionDenied: (HKEY_LOCAL_MACHINE\SECURITY:St ring) [Get-ChildItem], SecurityException + FullyQualifiedErrorId : System.Security.SecurityException,Microsoft.Power Shell.Commands.GetChildItemCommand 35 0 SOFTWARE {} 8 0 SYSTEM {}

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

Не бойтесь использовать команды New-Item и Remove-Item чтобы создавать и удалять нужные вам ключи в реестре. (И по традиции, я напомню вам, что играться с ключами реестра в администраторском режиме опасно)

Ну, вот вам и небольшой экскурс вглубь. Конечно же, у вас не получится создать ключ реестра так просто. Что-то пойдёт не так, как надо. Ну что же, могу сказать, что PS — это система, которая поощряет обучение в этой системе. Поэтому

Обучение тому, как правильно чему-то научиться в PowerShell

Способность наблюдать и анализировать наблюдения отличает нормального человека от психа. Ребят в Майкрософт психами не назовёшь. Они действительно понаблюдали за пользователями других командных интерпретаторов и выяснили, какая команда чаще всего используется в интерпретаторах. И той командой был великий и могучий man. (Для незнающих — попробуйте сделать — гугл man или наберите в своём баше man man) В PS есть аналогичная команда, которая звучит как Get-Help # хотя вы можеше использовать алиас на неё, под названием help

Насколько поразительно отвратительно ребята из Майкрософт делают документацию для пользовательских приложений, настолько хорошо они заботятся о программистах. (Неверующие могут сравнить справку системы Windows XP и 2003) И так, выбирайте приглянувшийся вам командлет и отправляйте его в help. Если после прочтения общей справки вы ничего не поняли, то попробуйте набрать

get-help New-Item -Examples

Ключ -Examples обычно выдаёт от двух до пяти потрясающих примеров использования выбранной вами команды, с детальным их описанием. На самом деле, одним только Гет-Хелпом, я в своё время изучил основы PS, перебирая все команды и читая к ним справку. Если же вы захотели получить справку по какой-то функции, но не знаете, как она называется, а просто предполагаете о её существовании, то просто наберите

get-help files

В ответ на эту команду вы получите список топиков, которые содержат ключевое слово:

PS C:\> get-help Files Name Category Synopsis ---- -------- -------- FileSystem Provider Provides access to files and dire... about_profiles HelpFile Describes how to create and use a...

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

get-help Registry

В ответ вы получите длиннющее полотно, которое со всеми подробностями расскажет вам о том, как вы можете работать с реестром в PS. К сожалению, читабельность полотна обратно пропорциональна его длине. Так что, научившись учиться, давайте обучимся тому, как сделать работу в шелле немного проще.

Маленькие, но очень полезные фишки, которые должны быть в жизни Товарищ, смирись, ты — в командной строке. Тут безгуёво принципе. Но, если ты познаешь некоторые уловки, тебе здесь станет удобно.
И так, для тех, кто никогда не был в командной строке
  1. Нажатие кнопкок вверх и вниз позволяет вам прокручивать историю команд, и выбирать ранее набранные команды.
  2. Нажатие кнопки вправо, в конце строки, будет посимвольно перенабирать предыдущую команду.
Для тех, кто уже бывал в командных строках
  1. Ctrl+Home — удаляет всё, начиная с текущей позиции курсора до начала строки
  2. Ctrl+End — удаляет с курсора и до конца строки
  3. F7 — показывает окно со списком набранных команд, и позволяет выбрать одну из них.
  4. Для того, чтобы скопировать что-то в буфер, выделите это мышью и нажмите Enter.
  5. Для того, чтобы вставить строку из буфера — просто нажмите правую кнопку мыши.
Это — самые базовые, и необходимые действия, которые вам придётся выучить наизусть. Другое дело, что они помогут вам шустрее работать с шеллом.

Углубляемся в изучение окружения

Для того чтобы понять нижеследующие строки, нам надо будет разобраться с понятием конвейера. Когда вы запускаете какой-либо командлет, то возвращаемые им значения преобразуются в текст и выводятся на экран. Но, это не всегда полезно. Например, если вы хотите передать возвращаемое значение одного командлета на вход другого. Для этого вам полезно будет использовать |, в народе именуемый конвейером. Например, вы хотите отобразить на экране текст, который содержится во всех файлах формата bat в папке. Для того, чтобы выбрать файлы, выполняйте PS C:\> ls -filter "*.bat" | Get-Content REM Dummy file for NTVDM

Команда ls -filter "*.bat" выбирает все файлы с нужным расширением, а команда Get-Content выводит их на экран (на самом деле, исходя из названия, команда просто получает содержимое объекта, а на экран он выводится по факту того, что дальше некуда) Конвейер может сделать очень много полезного для вас. Например, решить «портянку помощи».

Get-Help Registry | Set-Content reg.txt

И весь файл помощи по реестру сохранён в текстовом файле, который вы теперь можете открыть.

Если вы действительно хотите порадоваться жизни, и понять, что PS способен на многое, то вам придётся применить свой IQ на все 100% и вообразить что-то нереальное.

ps | ls

Выглядит невероятно, а результат даёт потрясающий! Если вы хотите узнать, из какого файла появился процесс, просто пустите его конвейером на get-childitem! В частности, я сейчас набираю текст в вордпаде:

PS C:\> ps wordpad | ls Directory: C:\Program Files\Windows NT\Accessories Mode LastWriteTime Length Name ---- ------------- ------ ---- -a--- 6/28/2010 9:57 PM 4247040 wordpad.exe

Вот это меня поразило до глубины души.

Теперь можно переходить к изучению окружения

Как я уже говорил, всё что вы видите на экране не является строками, а является объектами. Например, результат выполнения команды ps возвращает нам список процессов, запущенных в системе. Но как узнать, что же у нас в руках? Для этого мы воспользуемся командлетом Get-Member, который откроет нам методы любого класса. Давайте узнаем, что содержится в том же самом процессе, который выдаёт нам команда ps. ps wordpad | Get-Member

Набирайте, и смотрите на список членов класса, которые вы можете увидеть в классе System.Diagnostics.Process. Тоесть, фактически, командлет ps вернул нам массив объектов типа Process и мы можем попрограммировать их! Давайте поглумимся над блокнотом.

PS C:\> notepad PS C:\> ps notepad Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName ------- ------ ----- ----- ----- ------ -- ----------- 70 4 1148 5376 56 0.30 3900 notepad PS C:\> ps notepad | get-member -type method TypeName: System.Diagnostics.Process Name MemberType Definition ---- ---------- ---------- BeginErrorReadLine Method System.Void BeginErrorReadLine() BeginOutputReadLine Method System.Void BeginOutputReadLine() CancelErrorRead Method System.Void CancelErrorRead() CancelOutputRead Method System.Void CancelOutputRead() Close Method System.Void Close() CloseMainWindow Method bool CloseMainWindow() CreateObjRef Method System.Runtime.Remoting.ObjRef CreateObj... Dispose Method System.Void Dispose() Equals Method bool Equals(System.Object obj) GetHashCode Method int GetHashCode() GetLifetimeService Method System.Object GetLifetimeService() GetType Method type GetType() InitializeLifetimeService Method System.Object InitializeLifetimeService() Kill Method System.Void Kill() Refresh Method System.Void Refresh() Start Method bool Start() ToString Method string ToString() WaitForExit Method bool WaitForExit(int milliseconds), Syst... WaitForInputIdle Method bool WaitForInputIdle(int milliseconds),...

Вот это неплохое количество методов, которые мы можем запустить, используя шелл. И так, как же это сделать? Просто.

(ps notepad).WaitForExit()

Если вы возьмёте результат выполнения командлета в скобки, то вы сможете обратиться к нему, как к объекту в вашей программе, прямо из командной строки. После запуска этого метода шелл завис и ждёт у моря погоды. Нажмите пару раз Enter. Ничего не происходит. Что же, закройте открытый блокнот. Вуаля, вы снова в шелле. Я думаю, теперь вы должны погулять свою фантазию. Попробуйте, пустите через конвейер в get-member результаты выполнения ls или других командлетов, каких только можете найти. Если вы увидели, что в свойстве какого-то объекта лежит ещё один объект, не стесняйтесь пускать его на Get-Member

(ps notepad).StartTime | Get-Member

И так далее до бесконечности.

Задача для пытливых умов. Пролетела новость, что рефлектор станет платным. Как сделать рефлектор на чистом PS? Кстати, это не такая уж и трудная задача.

Ну, вот, мы немного разобрались с тем, как узнать, что нас окружает. Теперь, мы готовы к тому, чтобы понять ещё парочку принципов, существующих в шелле.

Переменные и объекты

И так, пару слов по поводу переменных. В PS они бывают нетипизированными:$processList = ps

И типизированными

PS C:\> [DateTime]$x = "febbrrr" Cannot convert value "febbrrr" to type "System.DateTime". Error: "The string was not recognized as a valid DateTime. There is a unknown word starting at index 0." At line:1 char:13 + [DateTime]$x <<<< = "febbrrr" + CategoryInfo : MetadataError: (:) [], ArgumentTransformationMetadataException + FullyQualifiedErrorId : RuntimeException PS C:\> [DateTime]$x = "02/14/11" PS C:\> $x Monday, February 14, 2011 12:00:00 AM

И так, у нас появились переменные, и теперь мы можем присваивать им значения. В общем, всё, что вы пускали на конвейер, можно пустить и в переменную. Но, тут PS предоставляет нам одну очень интересную фитчу, которая делает его незаменимым инструментом в руках .NET разработчика. Помните, я сказал, что в PS всё, что возвращается — это объект? Ну так вот, объект это не простой, а дотнетовый. Любой программист уже обратил внимание на тот факт, что в списке процессов мы работали с объектом из окружения CLR. Что же, мы можем запросто создать такой объект. Давайте, попробуйте

$x = new-object System.Object

Что-же, переменную мы создали, а толку от неё — как с икспи сервака. Никакого. Давайте пофантазируем и подумаем, что мы действительно можем сделать?

C:\> $client = New-Object System.Net.WebClient C:\> $client.DownloadString("http://google.com")

А вот это уже другое дело. Только что мы из подручных средств собрали себе wget на коленке. Как вам такой поворот событий? Что же, в этот момент можно идти в MSDN и подряд перебирать все классы, смотреть, что в них есть интересного. Всё это позволяет создавать очень гибкие скрипты.

Кстати, о скриптах

PS позволяет выполнять скрипты. Ура! Делает он это с волшебного пендаля. Неура. По умолчанию в PS запрещён запуск скриптов, которые не были подписаны цифровой подписью. Для запуска скрипта вы должны его либо подписать (для этого используйте help about_signing) либо, просто понизить уровень безопасности, и выполнить set-executionpolicy remotesigned

обычно я делаю второе. Ибо первый вариант требует скачивания многотонных SDK и долгого колдовства. Хотя, напомню о безопасности, и скажу, что второй вариант не канает для супер-сервера-всея-руси. После выполнения этих действий, вы будете готовы писать свой первый скрипт. Для начала, рекомендую создать для него файл:

New-Item -type file $PROFILE

Переменная $PROFILE содержит в себе адрес файла с вашим профилем в PS. Этот файл будет запускаться в тот момент, когда вы стартуете PS. Плюс заключается в том, что вы можете нашпиговать свой профиль разными мелкими и полезными скриптами, которые помогут вам автоматизировать производство. Теперь вы можете начать редактирование своего профиля:

vim $PROFILE

(О, кстати, я вам не сказал, но в PS, на мой взгляд, лучше всего смотрится текстовый редактор vim. Возможно кто-то назовёт меня настоящим извращенцем, но на самом деле, я уже не раз пытался использовать что-то другое, но всегда возвращался к виму. Попробуйте и вы. Его не просто изучить с нуля, но если вы поймёте основы, то сможете очень быстро и удобно редактировать тексты.) Ладно, теперь повторим эту команду без того, чтобы умничать:

notepad $PROFILE

Ну, вот, например, то, что лежит у меня в профиле

$webClient = New-Object System.Net.WebClient $cred = New-Object System.Net.NetworkCredential("login", "Pass") $webClient.Proxy = New-Object System.Net.WebProxy("www.proxy.adrress", $true, $null, $cred)

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

На самом деле, я уже написал достаточно много. Вы увидели для себя кое-что новое. Я прекрасно знаю, что уровень этой статьи — для начинающих, но и продвинутые админы найдут для себя несколько интересных моментов. Моей задачей было предоставить вам возможность получить общее представление о том, что вы можете сделать. Что же, вот, напоследок, вам задачи, над которыми можно поломать голову и решить интересные проблемы: Написать скрипт, который сортирует изображения по папкам, исходя из их размера (для получения размера файла можно использовать дотнет объекты или ком объекты, предоставляемые эксплорером) Для выполнения этого, вам уж точно понадобиться хорошо изучить Where-Object или Foreach-Object.

Написать простой NMAP Что будет, если запустить команду Пинг в цикле? А теперь, возьмите выход от этой команды и пропарсите его как строку. Вам однозначно придётся прочитать мануал по -le -ge и том, как работать со строками.

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

Поиграться с переменной $host и сделать из синего экрана Матрицу!

Что ещё можно делать? Матёрые COM программисты найдут для себя отличный способ повеселиться, когда обнаружат, что new-object имеет ключ -comObject. Фактически, это открывает вам ворота к полному управлению практически любой функцией локального и удалённого компьютера.

Ещё хочу заметить, что последние версии программного обеспечения от Microsoft поддерживают работу в PowerShell. Например, есть SQL PowerShell, который поставляется с 2008 сиквелом и позволяет сделать ls по записям в любой таблице. Это даёт ещё больший простор для фантазий.

Так же, хочу заметить, что комьюнити по разработке на PS очень сильно растёт и ширится. В частности, вы можете найти скрипты, готовые для чего угодно — например, вы можете нагуглить себе способ управления ITunes через PowerShell или способ использования Google Desktop Search в PS.

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

habr.com

Как запустить Windows PowerShell | remontka.pro

20.06.2018&nbsp windows | для начинающих

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

В этом руководстве подробно о способах открыть PowerShell, в том числе от администратора, в Windows 10, 8 и Windows 7, а также видео инструкция, где все эти способы показаны наглядно. Также может быть полезно: Способы открыть командную строку от имени администратора.

Запуск Windows PowerShell с помощью поиска

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

Кнопка поиска есть на панели задач Windows 10, в Windows 8 и 8.1 поле поиска можно открыть клавишами Win+S, а в Windows 7 найти в меню «Пуск». Шаги (на примере 10-ки) будут следующими.

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

Как видите, очень просто и подходит для любой из последних версий Windows.

Как открыть PowerShell через контекстное меню кнопки «Пуск» в Windows 10

Если на вашем компьютере установлена Windows 10, то, пожалуй, ещё более быстрый способ открыть PowerShell — нажать правой кнопкой мыши по кнопке «Пуск» и выбрать нужный пункт меню (там присутствует сразу два пункта — для простого запуска и от имени администратора). Это же меню можно вызвать, нажав клавиши Win+X на клавиатуре.

Примечание: если в этом меню вместо Windows PowerShell у вас отображается командная строка, то заменить её на PowerShell вы, при желании, можете в Параметры — Персонализация — Панель задач, включив пункт «Заменить командную строку оболочкой Windows Powershell» (в последних версиях Windows 10 параметр включен по умолчанию).

Запуск PowerShell с помощью диалогового окна «Выполнить»

Еще один простой способ запуска PowerShell — использовать окно «Выполнить»:

  1. Нажмите клавиши Win+R на клавиатуре.
  2. Введите powershell и нажмите Enter или Ок.

При этом в Windows 7 можно установить отметку запуска от имени администратора, а в последней версии Windows 10, если при нажатии Enter или Ok удерживать клавиши Ctrl + Shift, то утилита также запуститься от имени администратора.

Видео инструкция

Другие способы открыть PowerShell

Выше перечислены далеко не все способы открытия Windows PowerShell, но, уверен, что их будет вполне достаточно. Если же нет, то:

  • Можно найти PowerShell в меню пуск. Для запуска от администратора используйте контекстное меню. 
  • Можно запустить файл exe в папке C:\Windows\System32\WindowsPowerShell. Для прав администратора, аналогично, используем меню по правому щелчку мышью. 
  • Если ввести powershell в командной строке, также будет запущен нужный инструмент (но в интерфейсе командной строки). Если при этом командная строка была запущена от имени администратора, то и PowerShell будет работать от имени администратора. 

Также, бывает, спрашивают, а что такое PowerShell ISE и PowerShell x86, которые находятся, например, при использовании первого способа. Отвечаю: PowerShell ISE — «Интегрированная среда сценариев PowerShell». По сути, с её помощью можно выполнять все те же команды, но, помимо этого, в ней присутствуют дополнительные возможности, облегчающие работу со скриптами PowerShell (справка, инструменты отладки, цветовая разметка, дополнительные горячие клавиши и т.п.). В свою очередь версии x86 нужны в случае, если вы работаете с 32-битными объектами или с удаленной системой x86.

А вдруг и это будет интересно:

remontka.pro

Windows PowerShell

Sep 10, 2006 · Comments PowerShell

Участие в бесполезном споре Windows vs. Unix иногда приносит пользу. В ответ на мою реплику, некто vansickle поделился ссылкой на Windows PowerShell. В двух словах PowerShell это замена древнему cmd.exe, сочетающая Unix идеологию c Windows технологиями. Учитывая, что мне уже давно не даёт покоя вопрос “когда же, наконец, в Windows сделают нормальную консоль?”, я тут же решил попробовать PowerShell вживую.

Первое впечатление после запуска - консоль как консоль. Ничего принципиально не изменилось.

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

PowerShell использует свой собственный (расширяемый) набор команд - cmdlet-ов. Вместе с тем обеспечивается обратная совместимость с традиционными консольными утилитами. Они работают точно так же как и раньше. Поддерживается механизм альтернативных имен (aliases). Для многих встроенных cmdlet-ов определены “традиционные” имена. Например “cd” - это альтернативное имя для куда менее интуитивного “Set-Location”.

Вторая концепция, реализуемая PowerShell, - “навигация - это интерфейс”. Любое хранилище данных (файловая система, реестр, переменные окружение) представляется в виде стандартной иерархии элементов и PowerShell предоставляет унифицированные средства для работы с ними. Это очень похоже на концепцию Unix-мира “всё - это файл” с единственным отличием, что в Unix она реализована на системном уровне.

В начале я упомянул, что окно PowerShell мало чем отличается от окна cmd.exe. К сожалению это распространяется и на то, как работает автодополнение (autocompletion), историю команд и буфер обмена. Очень жаль. :-( Из-за этого концепция “навигация - это интерфейс” сильно страдает. Перемещаться по каталогам в том же bash-е не в пример удобнее. Да и редактирование на порядок проще. Впрочем, одно изменение я заметил. PowerShell позволяет редактировать команды, состоящие из нескольких линий. И то хлеб.

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

Показать список процессов:

get-process

Показать список методов и свойств объекта, возвращенного командой “get-process explorer”:

get-process explorer | get-member

Отсортировать список процессов по возрастанию количества открытых описателей:

get-process | sort-object handles

Показать только те процессы, размер working set которых больше 20MB:

get-process | where-object { $_.get_WorkingSet() -gt 20M }

Особо показателен второй пример, где видно, что “get-process” возвращает не текстовые данные, а список объектов, каждый из которых имеет свои методы, свойства и вложенные объекты.

Объектная модель позволила реализовать наиболее “вкусные” особенности PowerShell. PowerShell может работать с .NET и COM объектами, напрямую поддерживает XML, позволяет использовать ADO.NET для доступа к базам данным. Фактически все то, что ранее было доступно .NET программистам теперь доступно прямо в командной оболочке. Замечательный пример - интеграция с WMI. Например, следующая команда выводит информацию о компьютере используя WMI:

get-wmiobject win32_computersystem

На моем компьютере она выводит следующее:

Воспользовавшись cmdlet-ом “get-member” можно убедиться, что список свойств не исчерпывается этими 6-ю. На странице Guy’s Scripting Ezine 110 - PowerShell and WMI есть и другие примеры использования WMI из PowerShell.

Итак, плюсы и минусы PowerShell. Плюсы:

  • Командная оболочка это средство для манипуляции объектами;

  • Унифицированный доступ к файлам, реестру, переменным окружения и т.п.;

  • Развитый язык и средства для работы с данными;

  • Интеграция с .NET и COM

  • Непосредственная поддержка XML;

  • Интеграция с WMI;

  • Расширяемость;

  • Электронная подпись скриптов;

  • Обратная совместимость с существующими утилитами.

Минусы:

  • Неудобное автодополнение и история команд;

  • Буфер обмена не доступен через стандартные Ctrl+C, Ctrl+V, Ctrl+X.

Резюме: однозначно стоит скачать и попробовать.

blog.not-a-kernel-guy.com

Как открыть Windows PowerShell в Windows 10

В сегодняшней статье рассмотрим различные способы открытия Windows PowerShell в Windows 10.

Открыть Windows PowerShell через поиск.

В строке поиска напишите  PowerShell => найдет Windows PowerShell, нажмите на него левой клавишей мыши - если вы хотите открыть PowerShell с правами пользователя, под которым вошли в систему. Или нажмите на Windows PowerShell правой клавишей мыши и выберите "Запустить от имени администратора".

Открыть Windows PowerShell из всех приложений в меню Пуск.

Откройте меню "Пуск" и найдите папку Windows PowerShell (нажмите на нее раз левой клавишей мыши) => если вы хотите открыть  PowerShell с правами пользователя под которым вошли в систему - просто нажмите на Windows PowerShell левой клавишей мыши. Если вы хотите открыть  PowerShell с правами администратора - нажмите на Windows PowerShell правой клавишей мыши и выберите "Запуск от имени администратора".

Открыть Windows PowerShell с помощью диспетчера задач.

Нажмите  на панель задач правой клавишей мыши и из контекстного меню выберите "Диспетчер задач" (также диспетчер задач можно запустить одновременно нажав клавиши  Ctrl+Shift+Esc)

Если Вы запускаете первый раз диспетчер задач - нужно нажать "Подробнее".

Слева вверху выберите "Файл" => Запустить новую задачу.

В появившемся окне введите команду powershell и нажмите "ОК", если вы хотите запустить  Windows PowerShell с правами пользователя под которым вошли в систему. Если вы хотите запустить Windows PowerShell с правами администратора - поставьте галочку в поле "Создать задачу с правами администратора".

Открыть Windows PowerShell из выполнить.

Нажмите клавиши Win+R.

Напишите команду powershell и нажмите "ОК".

Открыть Windows PowerShell в проводнике.

Первый способ открытия  Windows PowerShell в проводнике: в адресной строке напишите команду powershell и нажмите Enter.

Второй способ открытия  Windows PowerShell в проводнике:  зайдите в "Файл" => Запустить Windows PowerShell => здесь вы можете выбрать запуск PowerShell с правами пользователя под которым вошли в систему или с правами администратора.

Третий способ открытия  Windows PowerShell в проводнике: откройте C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 => если вы хотите запустить Windows PowerShell с правами пользователя под которым вошли в систему - просто откройте двойным щелчком левой клавиши мыши файл powershell. Если вы хотите запустить Windows PowerShell с правами администратора - нажмите на файл powershell правой клавишей мыши и выберите "Запуск от имени администратора".

Открыть Windows PowerShell из Win+X меню.

Если нажать на меню "Пуск" правой клавишей мыши или нажать клавиши Win+X - перед вами возникнет контекстное меню с различными инструментами. По умолчанию в нём есть возможность запустить командную строку и командную строку от имени администратора. Если вы используете Windows PowerShell чаще чем командную строку, то можно заменить в этом меню командную строку на powershell.

Для этого нажимаем правой клавишей мыши на панели задач и выбираем «Параметры» => в правой колонке включите параметр «Заменить командную строку оболочкой Windows PowerShell в меню, которое появляется  при щелчке правой кнопки мыши на кнопке «Пуск» или при нажатии клавиш Win+X».

Данных способов запустить Windows PowerShell Вам должно хватить. Если знаете другие способы или есть дополнения - пишите комментарии! Удачи Вам  🙂

vynesimozg.com

Обзор технологии Microsoft Windows PowerShell

Обзор технологии Microsoft Windows PowerShellMicrosoft

Windows PowerShell является современной, стандартизированной оболочкой командной строки, которая предлагает администраторам большую гибкость и выбор того, как они управляют своими компьютерами и продуктами на базе Windows. Windows PowerShell не является прямой заменой старых технологий, таких как Microsoft Visual Basic ® Script Edition (VBScript), хотя оболочка имеет возможности сценариев, и обеспечивает такой же функциональный набор, как VBScript и много чего еще. Windows PowerShell была создана в результате вдохновения лучшими административными инструментами и процессами из операционной системы Windows и других операционных систем. Она предлагает уникальную, ориентированную на Windows модель администрирования.

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

Windows PowerShell - это не просто новый скриптовый язык. На самом деле это совершенно новый способ управления Windows и продуктами на базе Windows, и новый способ для Microsoft подумать об администраторах и том, как они работают. Многие из вещей, которые вы можете сделать в Windows PowerShell, сразу же покажутся знакомыми, например, возможность просматривать содержимое каталогов на диске. Тем не менее, Windows PowerShell, по сути, является чем-то совершенно другим. Для того, чтобы успешно работать с Windows PowerShell, необходимо иметь базовое понимание оперативной стратегии оболочки, ее технологической базы, и ее дизайна.

Назначение PowerShell

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

Командная строка PowerShell

Также вы можете печатать команды в графической консоли ISE (integrated scripting environment), которая обладает более содержательным графическим интерфейсом командной строки.

Windows PowerShell ISE

Если вы являетесь разработчиком программного обеспечения, вы можете встроить Windows PowerShell в свою собственную программу и запрограммировать ее на выполнение определенных команд в ответ на действия пользователя, например, кликание по кнопке или иконке. Можно набрать серию команд в текстовом редакторе и дать оболочке инструкцию выполнять команды из этого файла. В идеале Windows PowerShell должен являться единым, централизованным источником всей административной деятельности. Также в идеале вы должны использовать графический пользовательский интерфейс (GUI) с кнопками, иконками, диалоговыми окнами и прочими элементами, которые выполняют команды Windows PowerShell в фоновом режиме. В данном случае, если бы GUI не позволил вам выполнить ту или иную задачу именно тем способом, которым вы хотите, вы могли бы дать команду на выполнение той же самой задачи нужным вам способом непосредственно в командной строке, минуя GUI. Многие продукты Microsoft, в том числе Microsoft Exchange Server 2007 и Microsoft Exchange Server 2010, построены именно по этой схеме. Другие продукты, например, серверная ОС Windows Server, пока не являются построенными полностью на базе данной системы, хотя их отдельные компоненты – являются. Например, Active Directory Administrative Center в Windows Server 2008 R2 построен именно по данной идеальной схеме – это означает, что вы можете по своему усмотрению пользоваться графическим интерфейсом, который выполняет команды Windows PowerShell в фоновом режиме, или вводить команды самостоятельно непосредственно в консоли Windows PowerShell или ISE.

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

Со временем Windows PowerShell сможет заменить прочие низкоуровневые административные инструменты, которыми вы пользовались ранее. К примеру, Windows PowerShell уже сейчас может вытеснить Visual Basic Script Edition (VBScript), так как оболочка обеспечивает доступ к тем же самым функциям, что и VBScript, во многих случаях предлагая более простые способы выполнения тех же самых задач. Также Windows PowerShell может стать заменой Windows Management Instrumentation (WMI). Несмотря на то, что WMI остается очень полезным, зачастую он оказывается слишком сложным в использовании. Windows PowerShell может строить выполнение специфических задач на базе существующего инструментария WMI. Технически вы по-прежнему будете использовать WMI, но само использование станет проще. Все это происходит сейчас и будет происходить и видоизменяться в будущем, по мере того, как Windows PowerShell будет развиваться.

Установка Windows PowesShell

Windows PowerShell v2 установлена по умолчанию в операционных системах Windows Server 2008 R2 и Windows 7. В Windows Server 2008 R2 можно установить опционную оболочку Windows PowerShell ISE, которая является более графически ориентированной. Windows PowerShell v2 также доступна для загрузки и установки в Windows XP, Windows Server® 2003, Windows Vista®, и Windows Server 2008. Windows PowerShell v2 включена в пакет Windows Management Framework Core, который помимо этого включает другие сходные технологии управления. Загрузить пакет можно с

http://go.microsoft.com/fwlink/?LinkId=193574

Отдельные версии доступны для разных операционных систем и архитектур (32-битной и 64-битной). Пакет для загрузки включает в себя Windows PowerShell ISE, а также более традиционную консоль с командной строкой.

Windows PowerShell v2 может быть установлена на следующих операционных системах.

·       Windows Server 2008 with Service Pack 1

·       Windows Server 2008 with Service Pack 2

·       Windows Server 2003 with Service Pack 2

·       Windows Vista with Service Pack 2

·       Windows Vista with Service Pack 1

·       Windows XP with Service Pack 3

·       Windows Embedded POSReady 2009

·       Windows Embedded for Point of Service 1.1

Windows PowerShell v2 требует Microsoft .NET Framework 2.0 с Service Pack 1; Windows PowerShell ISE требует Microsoft .NET Framework 3.5 с Service Pack 1. Обратите внимание, что Windows PowerShell может приобретать новые черты и получать новые функции из новых версий Microsoft .NET Framework. В идеале следует устанавливать последнюю доступную версию Framework, чтобы добиться максимальной функциональности. Также Windows PowerShell приобретает новые возможности в новых версиях Windows. Это означает, что на более старых версиях Windows набор функций будет чуть менее полным просто потому, что данные версии не содержат необходимых компонентов.

Назначение PowerShell

Windows PowerShell является ключевым инструментом управления, в отличие от Microsoft Management Console (MMC). Возможно, вы знаете, что консоль MMC сама по себе во многих случаях оказывается бесполезной. Для того, чтобы сделать ее полезной, необходимо добавлять оснастки. Оснастки дают специфические возможности управления продуктами и технологиями, например, возможность администрирования активной директории или Exchange Server.

Windows PowerShell действует по такому же принципу. Несмотря на то, что оболочка выполняет множество полезных функций, ее возможности предполагается расширять с помощью всевозможных оснасток и модулей. Windows PowerShell сама по себе не содержит эти оснастки и модули; они устанавливаются параллельно с тем продуктом, функцией или технологией, к которой они относятся. Другими словами, если вы хотите с помощью Windows PowerShell управлять службами Active Directory Domain Services, вам необходимо установить соответствующий модуль. Этот модуль устанавливается вместе с ролью Active Directory® Domain Services. Некоторые модули также могут быть установлены параллельно с удаленным сервером Windows Remote Server Administration Toolkit (RSAT), что делает возможным установить модули, имеющие отношение к серверу, на клиентской операционной системе, например, Windows 7.

Некоторые модули можно загрузить отдельно. Например, на сайте CodePlex Web (www.codeplex.com) можно найти ряд проектов, имеющих отношение к Windows PowerShell со сторонних открытых источников. Многие из этих проектов имеют вид оснастки или модуля. К ним относится, например, популярный проект Windows PowerShell Community Extensions, который можно скачать с www.codeplex.com/powershellcx. Отдельно стоит упомянуть, что некоторые оснастки и модули помимо требований Windows PowerShell могут иметь свои собственные системные требования. Например, модулям может потребоваться конкретная версия Windows или Microsoft .NET Framework. В документации к каждому модулю или оснастке должны быть указаны специфические системные требования, помимо базовых требований оболочки.

webhamster.ru

Windows powershell: что это?

Первые операционные системы не содержали никакого интерфейса взаимодействия с пользователем, кроме командной строки. MS-DOS, например, позволяла общаться с собой только так. Графический интерфейс пользователя требовал от машины значительно большей мощности, чем имелось у компьютеров того времени. Появление GUI, казалось бы, устранило потребность в консоли. Однако командная строка – лишь кажущееся излишество.

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

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

Для других же задач, вроде последовательной обработки большого числа файлов без вмешательства пользователя, гораздо лучше подойдут командные файлы. Ранние языки программирования, типа Cobol и Rexx, исповедовали именно эту идеологию. Впоследствии она была перенесена в концепцию командных файлов ОС.

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

PowerShell на смену «батникам»

Со временем командные оболочки сильно эволюционировали. Процессору «батников» (.bat-файлов) DOS пришел на смену командный процессор 4DOS, в Windows происходили аналогичные изменения – перечень исполнимых инструкций значительно расширился, приобретая сходство с современными скриптовыми языками программирования.

Однако ориентация таких систем не изменилась – все они как были, так и оставались инструментами системного администратора или (в редких случаях) продвинутого пользователя.

Также у них появились конкуренты, наподобие скриптов JScript и VBScript, функционирующих на базе языковой машины WHS(Windows Script Host). Казалось бы, эволюция «батников» зашла в тупик, и они должны были вымереть, как динозавры. Но не тут то было.

Осенью 2003-го года разработчиками Microsoft был анонсирован новый командный процессор под именем Windows PowerShell с радикально переработанной концепцией и синтаксисом. Причем движком для него выступала платформа .Net Framework, а это означало, ни много ни мало, доступ из скрипта к огромной копилке возможностей этого фреймворка. В PowerShell команды перестали быть простыми текстовыми инструкциями, а превратились в классы.

Net со всеми вытекающими из этого последствиями (что такое классы в современном программировании, думается, объяснять не нужно) и получили новое имя – «командлеты». Можно еще много рассуждать на тему отличий оболочки PowerShell от прочих скриптовых оболочек, но лучше предложить краткий перечень ее функций, чтобы вы поняли, что такое PS.

Функциональность PowerShell

Функциональность оболочки такова:

  • Командлеты предоставляют интерфейс для работы с сущностями из следующего списка: реестром, процессами, журналом, службами, WMI. То есть идеально подходят для нужд системного администратора.
  • PowerShell – это развитый скриптовый язык программирования на основе объектной парадигмы.
  • Унифицированный дизайн языка PowerShell на концепции хранилищ системных данных с единообразной структурой. Для программиста это означает возможность использовать одни и те же командлеты при работе с различными хранилищами.
  • В язык включена мощная система навигации по файловой системе и системным хранилищам. Причем навигация по тем и другим осуществляется одинаково.
  • Ориентация на объекты означает не только инкапсуляцию различных методов в одном объекте, но и возможность сохранять экземпляры объектов на диске или в СУБД.
  • Интерфейс PowerShell может быть легко расширен разработчиком, что означает возможность создавать целые программные пакеты PoweShell для решения специальных прикладных задач системного программирования.

Похожие записи:

windowstune.ru