Введение в Windows PowerShell, что такое командлеты. Что такое PowerShell? Описание powershell

  • 02.04.2024

Наверное, все слышали о PowerShell, но наверняка не всем довелось с ним работать. Для тех, кто только начинает прокладывать свой путь в дебри PowerShell, мы приводим перевод поста, вышедшего на портале 4sysops.com . В нем рассказано о 7 командах, которые помогут тем, кто только начал работать с PowerShell. За подробностями – добро пожаловать под кат.

GET-HELP

Самый первый и самый главный командлет PowerShell – вызов справки. С помощью командлета Get-Help можно проверить синтаксис, посмотреть примеры использования и детальное описание параметров любого PowerShell командлета. Этот командлет примечателен тем, что вы просто можете набрать Get-Help Services, чтобы получить список всех командлетов, которые подходят для работы со службами.
Пример:
PS C:\> Get-Help Service

Вы можете выбрать любой командлет из списка, выведенного по запросу выше, чтобы получить справку о нем. Например,
PS C:\> Get-Help -Name Get-Service
Вы получаете всю информацию о командлете Get-Service (будет рассмотрен ниже).

GET-CONTENT

Чтение содержимого файлов – наиболее частое требование для новичков, которые пытаются выучить PowerShell. Процедура чтения файлов с PowerShell упрощается. Даже неспециалист может читать содержимое файла, просто передав его в командлет Get-Content.
Пример.
PS C:\> Get-Content C:\scripts\Computers.txt mytestpc1 techibee.com dummynotresolvinghost.com PS C:\>

Необходимо больше информации о командлете? Воспользуйтесь Get-Help:
PS C:\> Get-Help Get-Content -Detailed

GET-SERVICE

Этот командлет перечисляет все службы, установленные на компьютере. Вы можете использовать его для получения информации о конкретной службе, совокупности служб или просто обо всех службах на компьютере.
Пример:
PS C:\> Get-Service wwansvc, spooler Status Name DisplayName ------ ---- ----------- Running spooler Print Spooler Stopped wwansvc WWAN AutoConfig PS C:\>


Здесь мы запросили информацию о двух службах wwansvc и spooler
Выводится таблица со статусом службы, ее именем и отображаемым именем.
Мы можем видеть что служба spooler запущена, а wwansvc остановлена

STOP-SERVICE И START-SERVICE

Запуск и остановка служб – достаточно важный момент в работе администратора Windows. В PowerShell имеются встроенные командлеты, которые упрощают работу администратора, не требуя открытия консоли MMC. Используя эти командлеты Вы можете останавливать/запускать службы как на локальных, так и на удаленных компьютерах.
Примеры:
Запуск/остановка службы на локальном компьютере (на примере службы spooler):
PS C:\> Stop-Service -Name Spooler PS C:\> Start-Service -Name Spooler

Запуск/остановка службы на удаленном компьютере (spooler):
PS C:\> $ServiceObj = Get-Service -ComputerName MyPC1 -Name spooler PS C:\> Stop-Service -InputObj $ServiceObj PS C:\> Start-Service -InputObj $ServiceObj

GET-PROCESS

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

PS C:\> Get-Process

Введите следующий командлет для получения подробной информации о запущенных процессах
PS C:\> Get-Process | Format-List * -Force

Получение информации о процессах, запущенных на удаленном компьютере :
PS C:\> Get-Process -ComputerName MYPC1 | Format-List * -Force

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

STOP-PROCESS

Этот командлет остановливает процесс на локальном или удаленном компьютере. Он берет имя или ID процесса и завершает этот процесс. Это полезно в тех случаях, когда приложение не отвечает.
Пример:
Остановить процесс с ID 22608 на локальном компьютере:
PS C:\> Stop-Process -Id 22608
Остановить все процессы Excel на локальном компьютере:
PS C:\> Stop-Process -name excel

Совет : Хотя у командлета Stop-Process отсутствует параметр -ComputerName, Вы все равно можете использовать его для завершения удаленных процессов, используя предложенный ниже совет:
PS C:\> $Obj = Get-Process -Name excel -ComputerName MYPC1 PS C:\> Stop-Process -InputObject $Obj

Upd:
В посте приведен перевод статьи с портала

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

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

Windows PowerShell предустановлен в системах Windows 7, 8, 8.1 и Windows Server 2008 R2, 2012 R2, а также может быть добавлен в Windows XP SP3, Vista и Windows Server 2003 SP2. Интерфейс PowerShell напоминает хорошо знакомый интерфейс командной строки.


Интерфейс Windows PowerShell

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

Выполняемые в PowerShell команды могут быть в виде командлетов, функций, сценариев и внешних исполняемых файлов.

Командлеты — это новый тип команд, встроенный в PowerShell. Команды этого типа компилируются в dll-библиотеки и подгружаются к процессу PowerShell во время его запуска. Сами по себе командлеты как приложения не запускаются.

Имена командлетов соответствуют шаблону «глагол-существительное» . Глагол описывает действие, которое мы хотим совершить, а существительное — объект, над которым будет совершаться действие. Например, чтобы очистить экран консоли, требуется ввести команду Clear-Host . Вы можете просмотреть доступные команды, введя в консоли Get-Command .

Командлеты могут иметь параметры. В общем виде это выглядит так:

имя_командлета -параметр1 -параметр2 аргумент1 аргумент2

Аргументы это параметры не имеющие имен.

Как это работает? Например, у нас есть команда dir , которая выводит содержимое каталога.

Пример работы команды dir

Допустим, я потерял определенный файл. Пусть это будет файл справки по Photoshop. Я точно помню, что в имени файла содержится «photoshop», и что это pdf-файл. Как мне помнится, файл лежит в этом каталоге. Я могу вывести список всех файлов каталога как в примере выше и искать файл вручную. А могу применить параметр -filter , который выведет только те файлы, которые соответствуют определенному аргументу. В качестве аргумента будет *photoshop*.pdf . Звездочки вокруг слова «photoshop» стоят потому что я не помню точного имени файла и указываю PowerShell на то, что перед и после «photoshop» могут стоять любые символы. Так же я указываю искать именно pdf-файл.

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

Немного усложним наш пример. Скажем, теперь мне нужно найти книгу Кристофера Доугерти. Команда dir -filter *доугерти*.pdf мне ничего не дала. Это значит что книги в данном каталоге нет, но я точно помню, что она где-то здесь, очевидно, в подкаталогах. Для того, чтобы искать и в подкаталогах, добавим параметр -recurse .

Поиск займет немного больше времени, зато искомая книга будет найдена.

Как видим, параметр -recurse не содержит аргумента. Сами по себе параметры могут стоять в любом порядке, главное четко соблюдать логику, когда необходимый аргумент следует после того параметра, для которого он предназначен. Таким образом, команда dir -filter *доугерти*.pdf -recurse сработает точно так же как и dir -recurse -filter *доугерти*.pdf .

Имена параметров можно писать в сокращенном виде, что довольно удобно при повседневной работе с командной строкой. Сокращение должно быть понятно интерпритатору, т.е. не допускать двояких толкований. Например, параметр -recurse мы можем сократить до простого -r , а сокращение -filter до -f вызовет ошибку, т.к. есть еще параметр -force . В таком случае можно сократить -filter до -fi .

Итак, мы получили представление о командлетах. В следующий раз .

73094

И зучая меню пуск Windows 7 или начальный экран Windows 8 1, начинающие пользователи нередко открывают для себя приложения, назначение которых им не понятно. Как раз одно из таких приложений — PowerShell. Что же такое этот самый PowerShell и есть ли от него хоть какой-то толк? Ну, раз его кто-то придумал и интегрировал в Windows, значит, толк всё-таки есть. Кстати, этим самым придумавшим PowerShell является компания Microsoft.


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

Что умеет этот инструмент администрирования? Много чего. С его помощью системные администраторы и опытные пользователи могут управлять процессами, службами, файловыми хранилищами, аккаунтами и даже серверами. Также оболочка позволяет запускать внешние команды, работать с объектами .NET , COM и XML , проделывать разные трюки и т.п., создавать и выполнять собственные сценарии. Кстати, для написания скриптов в Windows предусмотрена специальная графическая консоль ISE , являющаяся своего рода дополнением к основной оболочке PowerShell.

Как и консоль CMD , оболочка PowerShell имеет свой набор команд, именуемых командлетами. Утилита распознает многие из команд CMD, но в целом синтаксис языка, определения командлетов и их параметров отличаются от того, что пользователи привыкли видеть в обычной командной строке. Кроме того, знакомые команды вроде dir , cd , copy и т.п., прекрасно понимаемые PowerShell, на самом деле являются псевдонимами. Например, команда Dir , служащая для просмотра файловой системы соответствует «родному» командлету Get-ChildItem . Псевдонимы или как принято говорить, алиасы, служат чисто для удобства.

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

Она мощная и развёрнутая, с множеством конкретных примеров. Пользоваться ей достаточно просто. Основная информация по справочной системы выводится командлетом Get-Help . Командлет выводит список всех доступных команд.

После перехода на операционную систему Windows 10 многие пользователи заметили в интерфейсе Проводника кнопку «Запустить PowerShell». В связи с этим в сети появилось много вопросов, пользователей интересовало, что это за программа Windows PowerShell и для чего она нужна. Если вас также интересует этот вопрос, то данный материал должен вам помочь.

Windows PowerShell – это скриптовый язык и программа с интерфейсом командной строки для выполнения этих скриптов. Данный язык был выпущен в 2006 году в составе второго сервис-пака для Windows XP и с тех пор PowerShell является частью всех операционных систем от Microsoft. В 2008 году появилась вторая версия данного языка, и начиная с Windows 7 используется именно она. Файлы со скриптами Windows PowerShell имеют расширение PS1 и могут запускаться как привычные всем BAT и CMD файлы.

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

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

Командлеты (на английском cmdlets) формируются по правилу Глагол-Существительное, например, Get-Help. Ознакомиться с основами Windows PowerShell можно с помощью справки (командлет «Get-Help»). Для получения общей информации просто введите команду «Get-Help», для получения справки о конкретном командлете введите «Get-Help Имя-командлета». Например, если ввести команду «Get-Help Get-Process», то мы получим справку о командлете Get-Process.

Как запустить программу Windows PowerShell

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

Также можно с помощью комбинации клавиш Windows-R и ввести команду «powershell».

В Windows 10 программу PowerShell можно запустить из любой папки. Для этого нужно нажать на кнопку «Файл» в верхнем левом углу Проводника и выбрать «Запустить Windows PowerShell».

Как пользоваться программой Windows PowerShell

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

Очистка корзины . Для очистки корзины существует специальный командлет, который называется «Clear-RecycleBin ». Данный командлет пригодится при написании скриптов для обслуживания компьютеров. При выполнении командлета нужно указать диск, на котором нужно очистить корзину. Пример:

Clear-RecycleBin c:

На скриншоте внизу видно, как выполняется данный командлет. После введения команды «Clear-RecycleBin c: » появляется запрос на подтверждение. Для того чтобы продолжить выполнение командлета нужно ввести букву «Y» и нажать Enter.

Если к командлету «Clear-RecycleBin c: » добавить «-Force », то очистка корзины выполнится без запроса на подтверждение. Скриншот внизу.

Архивация файлов . Для архивации и распаковки файлов предусмотрены командлеты «Compress-Archive » и «Expand-Archive «. Например, для того чтобы архивировать папку «C:\test\» в архив «C:\archive\test2.zip» нужно выполнить следующий командлет:

Compress-Archive -LiteralPath C:\test\ -DestinationPath C:\archive\test2.zip

В результате выполнения показанной выше команды, в папке «C:\archive\» появится файл «test2.zip», в котором будет заархивировано содержимое папки «C:\test\».

Список командлетов для Windows PowerShell

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

  • Get-Help – получение справки;
  • Update-Help – обновление справки;
  • Get-Command – поиск командлетов;
  • Get-Alias – поиск псевдонимов для командлетов;
  • Get-PSDrive – просмотр подключенных дисков;
  • Get-Member – просмотр свойств и методов, которые есть у объекта;
  • Get-WindowsFeature – просмотр сведений о доступных ролях и компонентах сервера;
  • Install-WindowsFeature (аналог Add-WindowsFeature) — устанавливает роли или компоненты на нужный сервер;
  • Uninstall-WindowsFeature (аналог Remove-WindowsFeature) – удаляет роли или компонента сервера;
  • Get-History – просмотр истории команд, которые вводились в этой сессии;
  • Get-Variable – просмотр списка переменных и их значений;
  • New-Variable – создание новой переменной;
  • Set-Variable – установка значения переменной;
  • Clear-Variable – удаление значения переменной;
  • Remove-Variable – удаление переменной и ее значения;
  • Format-List – просмотр результата команды в виде списка свойств, где в каждой строке отдельное свойство;
  • Format-Table — просмотр результата команды в формате таблицы;
  • Format-Wide — просмотр результата команды в виде широкой таблицы, в которой показывается только одно свойство для каждого объекта;
  • Format-Custom – просмотр результата команды с использованием пользовательского представления;
  • Export-Csv – экспорт данных в формат CSV;
  • Import-Csv – импорт данных из CSV файла;
  • Export-Clixml — экспорт данных в формат XML;

Полный список командлетов для Windows PowerShell вы можете получить, выполнив командлет «Get-Command -CommandType cmdlet».

С загадочными письменами и настойчиво мигающим курсором? Это командная строка. Утилита присутствует во всех версиях Windows. С ее помощью удобно управлять системой, вызывать программы, находить файлы. Но для профессиональной работы cmd недостаточно функциональна. Поэтому компания Microsoft решила исправить все минусы консоли и выпустила продукт под названием Windows PowerShell. Что это и как использовать разработку, читайте дальше.

Что такое PowerShell от Windows

PowerShell - это интерактивная объектно-ориентированная командная среда с функциями языка сценариев. Официальный релиз PowerShell 1.0 от «Майкрософт» состоялся 14 ноября 2006 года. Разработчики объединили интерфейс обычной командной строки CLI с платформой для управления локальными и удаленными сетями.NET Framework.

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

18 августа 2016 года Microsoft объявила, что Windows PowerShell - это теперь продукт с открытым исходным кодом, доступный каждому разработчику. Также компания добавила поддержку Unix-ориентированных операционных систем, включая дистрибутивы Linux и OS X.

Как управлять PowerShell

Для выполнения задач используются cmdlets, или командлеты. Это небольшие команды, записанные в виде исполняемых файлов. В версии 2.0 PowerShell для Windows XP и Server 2008 R2 создатели добавили модули, позволяющие управлять большим количеством ресурсов, включая Active Directory и Exchange Server.

Сейчас в средство автоматизации PowerShell встроено свыше 130 модулей и команд. Они обеспечивают доступ к файлам, сетям, реестру, администрированию и другим возможностям системы:

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

Учитывая, что Windows PowerShell - это расширяемая среда, пользователи могут создавать свои команды, писать «авторские» модули с использованием языка.Net.

Начало работы с PowerShell

В 2016 году была выпущена последняя бета-версия 6.0 PowerShell. В Windows 7, 8 и 10 утилита является встроенной. Если вы пользуетесь другой операционной системой, приложение придется скачать. Для этого зайдите на официальный сайт microfoft.com и в окне поиска введите Installing Windows PowerShell. Система автоматически переведет на страницу с последними релизами продукта. Выберете из списка свою ОС и нажмите Download.

Когда файл полностью загрузится, откройте его двойным щелчком мышки. По умолчанию среда установится в ProgramFiles\PowerShell\ и создаст ярлык в меню «Пуск». Если вы являетесь счастливым пользователем Windows, нажмите на значок системы в нижнем левом углу и введите PowerShell в «Найти программы и файлы». Запускайте приложение, вводите свой первый командлет и начинайте работу.

Список необходимых команд и инструкций для PowerShell

Имя каждого командлета представлено в форме «глагол-существительное» или «действие-объект». Предлагаем список наиболее важных cmdlets PowerShell для Windows 10 и предыдущих версий, начиная с XP. Они будут полезны даже начинающим пользователям, которые только вчера научились сохранять текстовые документы.

  1. Get-Help. Встроенный в ядро оболочки командлет. Предназначен для вызова справки и предоставляет полезную информацию о синтаксисе, программах, их назначении, других командлетах. Если в обычном командном интерпретаторе вы писали ipconfig /?, то в PowerShell нужно набрать Get-Help Get-Process.
  2. Get-Content. Упрощает процедуру чтения файлов для новичков и системных администраторов. Если раньше необходимо было открывать дескриптор и читать поочередно все строки документа, то теперь достаточно передать файл командлету. Для этого пропишите в консоли C:\> Get-Content C:\...\«имя файла».«расширение».
  3. Get-Service. Доступ к информации об установленных на компьютере службах.
  4. Get-Member. Выдает информацию о возвращаемом командлетом объекте, позволяет увидеть его свойства и методы.
  5. Get-Command. Выполняет поиск командлетов, возвращает о них всю информацию, включая данные о функциях, скриптах, приложениях и других элементах. В версии 5.0 PowerShell для Windows 10 в Get-Command добавлен столбец Version, и теперь команлдет отображает сразу несколько версий одного и того же модуля.
  6. Stop-\Start-Service. Незаменимый помощник для администраторов. Командлет запускает и останавливает службы на удаленных и локальных компьютерах.

Специальные символы для скриптов

Помимо командлетов, утилита PowerShell в Windows 7 и выше включает специальные символы, такие как $_ или {}. Наибольшее недоумение значки вызывают у новичков, не имевших дело с Linux-подобными системами или программированием.

  1. Вертикальная черта «|». Этот символ используется для программ с конвейерной передачей данных. При работе с консолью его включают, когда хотят указать команде справа от вертикальной черты принять выходные данные от команды слева. В PowerShell вертикальную черту применяют практически с той же целью, комбинируя сразу несколько команд. Например, создать новое имя пользователя, добавить его в группу и сбросить пароль по умолчанию.
  2. Знак функции «{}». Позволяет эффективно контролировать процесс выполнения сценариев. Как и в C-подобных языках программирования, функция в PowerShell образуется посредством заключения нескольких командлетов в фигурные скобки и готова запускаться необходимое количество раз.
  3. Специальный символ $_. Используется для написания скриптовых блоков, фильтров и процедурных выражений. $_ принимает значение текущего объекта и передает его следующему. С помощью знака доллара без нижнего подчеркивания можно обозначить или ввести переменную: $var = «Hello».

Что такое PowerShell ISE

В комплекте с утилитой PowerShell идет графическое приложение Windows PowerShell ISE. Это оболочка, или интегрированная среда, для написания скриптов. ISE предоставляет разработчикам огромный спектр возможностей. С ее помощью можно создавать, отлаживать и редактировать скрипты, открывать текстовые и XML-файлы. Цветная подсветка синтаксиса существенно облегчает тестирование и поиск ошибок в коде.

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

Чтобы попробовать среду ISE, в меню «Пуск» введите PowerShell ISE. Если вы используете не Windows, а другую ОС, скачайте и установите дистрибутив с официального сайта. После запуска приложения откроется окно из трех частей. Вверху пишутся скрипты, внизу - команды PowerShell, а в середине виден результат.

Начните знакомство с ISE и в нижнем окне введите Get-Process. Нажмите несколько раз Tab. Рядом с командлетом появятся его параметры, которые будут меняться после каждого нажатия клавиши. Это и будет ваш первый сеанс работы со скриптовой средой от Microsoft.