PowerShell Core¶
Общие сведения¶
PowerShell Core — это кроссплатформенный (Windows, Linux и macOS) инструмент/среда для автоматизации и настройки, который хорошо работает с существующими инструментами и оптимизирован для работы со структурированными данными (например, JSON, CSV, XML и т. Д.), API-интерфейсами REST и объектными моделями. Он включает оболочку командной строки, связанный язык сценариев и инфраструктуру для обработки командлетов.
PowerShell является расширяемым средством автоматизации от Microsoft с открытым исходным кодом. В галерее PowerShell можно найти полезные модули PowerShell, содержащие команды PowerShell и ресурсы Desired State Configuration (DSC). Вы также можете найти сценарии PowerShell, некоторые из которых могут содержать рабочие процессы PowerShell и которые определяют набор задач и обеспечивают последовательность для этих задач. Некоторые из этих пакетов созданы Microsoft, а другие - сообществом PowerShell.
Концепции¶
PowerShell основывается на следующих концептуальных вещях:
- в PowerShell существуют
- алиасы (alias) - служат для упрощения ввода команд (например,
clc
— это алиас командыClear-Content
) - командлеты (cmdlet) - представляют собой реализацию всех встроенных в PowerShell команд
- провайдеры (provider) - обеспечивают доступ к файловой системе, реестру, хранилищу сертификатов и т.п.
- справочные файлы (helpfile) - используются для получения дополнительной информации.
- основой PowerShell является объект, а не текст. Выходные данные команды — это объект. С помощью конвейера выходной объект можно отправить в другую команду в качестве входных данных.
- PowerShell и его невероятно гибкая система легко выявляются при помощи
Get-Command
. Даже для бывалых экспертов PowerShellGet-Command
является бесценной, так как она работает во всех систсемах, не требует дополнительного содержимого и сохранит ваше драгоценное время. Кроме того, никто даже не в состоянии знать все существующие cmdlet - иногда вам всего лишь требуется быстро взглянуть на их синтаксис. Вывод командыGet-Command
может фильтроваться с помощью символов маски для выявления cmdlet, имеющих определённую цель, например,*Process
перечислит все cmdlet, которые имеют нечто для работы с процессами. - PowerShell использует в именах связку "глагол — существительное". Имя каждого командлета состоит из стандартного глагола и определенного существительного, разделенных дефисом. Используемые в PowerShell глаголы (не только английские) выражают определенное действие. Имена существительные также используются как и в любом языке. Они описывают объекты определенных типов, требуемые для системного администрирования. Приведенные ниже примеры демонстрируют, насколько такие парные имена облегчают запоминание.
В PowerShell есть рекомендуемый список стандартных глаголов. Использование существительных не так ограничено, но они всегда должны обозначать объекты, на которые направлено действие глагола. Вот примеры команд PowerShell:
Get-Process
,Stop-Process
,Get-Service
,Stop-Service
.
Visual Studio Code¶
Visual Studio Code — это кросс-платформенный редактор сценариев (Windows, macOS и Linux), созданный корпорацией Майкрософт. Наряду с расширением PowerShell он предоставляет широкие интерактивные возможности редактирования сценариев, упрощая написание надежных сценариев PowerShell. Также с помощью Visual Studio Code можно и отлаживать эти сценарии.
Ресурсы¶
- PowerShell - docs.microsoft.com
- Как создавать команды и функции в Powershell вызывать их и передавать параметры
- Working with the PowerShell Pipeline
- PowerShell Input & Output
- PowerShell Scripts
- Windows PowerShell. Коротко о главном
- Шпаргалка по командам PowerShell или Компактная шпаргалка (PDF)
- Справка по Windows PowerShell
- Книга рецептов Powershell Core 6.2. Жан-Эндрик Питерс
- 7Zip4Powershell - архивация с шифрованием
- Примеры кода командлетов
- Как работать с PSCustomObject в Powershell
- Сохранение учетных данных в PowerShell
- Reference - Common Information Model (CIM) Servers: WMI, ...
- Reference - Microsoft.PowerShell.Archive
- Reference - Microsoft.PowerShell.Management
- Reference - Microsoft.WSMan.Management
- Reference - Microsoft.PowerShell.Security