Снимок экрана сеанса Windows PowerShell | |
Парадигма | Императивный , конвейерный , объектно-ориентированный , функциональный и рефлексивный |
---|---|
Разработано | Джеффри Сновер , Брюс Пайетт, Джеймс Труэр (и др.) |
Разработчик | Microsoft |
Впервые появился | 14 ноября 2006 г . |
Стабильный выпуск | 7.1.2 / 11 февраля 2021 г . [1] |
Предварительный выпуск | v7.2.0-preview.3 / 11 февраля 2021 г . [2] |
Печатная дисциплина | Сильный , безопасный , скрытый и динамичный |
Язык реализации | C # |
Платформа | .NET Framework , .NET Core |
Операционные системы |
|
Лицензия | Лицензия MIT [3] (но компонент Windows остается проприетарным ) |
Расширения имени файла |
|
Интернет сайт | microsoft |
Под влиянием | |
Python , Ksh , Perl , C # , CL , DCL , SQL , Tcl , Tk , [4] Chef , Puppet |
PowerShell - это среда автоматизации задач и управления конфигурацией от Microsoft , состоящая из оболочки командной строки и связанного языка сценариев . Первоначально это был только компонент Windows, известный как Windows PowerShell , но 18 августа 2016 года он был сделан с открытым исходным кодом и стал кроссплатформенным с появлением PowerShell Core . [5] Первый построен на .NET Framework , второй - на .NET Core .
В PowerShell административные задачи обычно выполняются с помощью командлетов (произносится как command-let ), которые представляют собой специализированные классы .NET, реализующие определенную операцию. Они работают путем доступа к данным в различных хранилищах данных, таких как файловая система или реестр , которые предоставляются PowerShell через поставщиков . Сторонние разработчики могут добавлять командлеты и поставщиков в PowerShell. [6] [7] Командлеты могут использоваться сценариями, а сценарии могут быть упакованы в модули .
PowerShell обеспечивает полный доступ к COM и WMI , позволяя администраторам выполнять административные задачи как в локальных, так и в удаленных системах Windows, а также WS-Management и CIM, позволяя управлять удаленными системами Linux и сетевыми устройствами. PowerShell также предоставляет API-интерфейс размещения, с помощью которого среда выполнения PowerShell может быть встроена в другие приложения. Эти приложения могут затем использовать функциональные возможности PowerShell для реализации определенных операций, в том числе операций, предоставляемых через графический интерфейс . Эта возможность использовалась Microsoft Exchange Server 2007 для предоставления своих функций управления в виде командлетов и поставщиков PowerShell и реализацииграфические инструменты управления в качестве хостов PowerShell, которые вызывают необходимые командлеты. [6] [8] Другие приложения Microsoft, включая Microsoft SQL Server 2008, также предоставляют свой интерфейс управления через командлеты PowerShell. [9]
PowerShell включает в себя собственную обширную консольную справку (аналогичную справочным страницам в оболочках Unix ), доступную через Get-Help
командлет. Обновленное содержимое локальной справки можно получить из Интернета с помощью Update-Help
командлета. Кроме того, помощь в Интернете можно получить в каждом конкретном случае, -online
переключившись на Get-Help
.
Фон [ править ]
Каждая версия Microsoft Windows для персональных компьютеров включает интерпретатор командной строки (CLI) для управления операционной системой. Его предшественник, MS-DOS , полагался исключительно на интерфейс командной строки. Они есть COMMAND.COM
в MS-DOS и Windows 9x , а также cmd.exe
в операционных системах семейства Windows NT . Оба поддерживают несколько основных внутренних команд. Для других целей необходимо написать отдельное консольное приложение . Они также включают базовый язык сценариев ( пакетные файлы ), который можно использовать для автоматизации различных задач. Однако их нельзя использовать для автоматизации всех аспектовфункциональность графического интерфейса пользователя (GUI), отчасти потому, что эквиваленты операций в командной строке ограничены, а язык сценариев является элементарным. В Windows Server 2003 ситуация улучшилась, но поддержка сценариев все еще оставалась неудовлетворительной. [10]
Microsoft попыталась решить некоторые из этих недостатков путем введения сервера сценариев Windows в 1998 году с Windows 98 , и ее на основе командной строки хоста: cscript.exe
. Он интегрируется с движком Active Script и позволяет писать сценарии на совместимых языках, таких как JScript и VBScript , используя API, предоставляемые приложениями через модель компонентных объектов ( COM ). Однако у него есть свои недостатки: его документация не очень доступна, и он быстро приобрел репутацию вектора уязвимости системы после нескольких громких компьютерных вирусов.использовали слабые места в его положениях о безопасности. Различные версии Windows предоставляли различные интерпретаторы командной строки специального назначения (такие как netsh и WMIC ) с их собственными наборами команд, но они не были совместимы.
В интервью, опубликованном 13 сентября 2017 года, Джеффри Сновер объяснил мотивацию проекта: [11]
Я управлял множеством управляющих изменений, а потом я изначально взял инструменты UNIX и сделал их доступными в Windows, а потом это просто не сработало. Правильно? Потому что между Windows и Linux есть принципиальная архитектурная разница . В Linux все является текстовым файлом ASCII , поэтому все, чем можно управлять, является инструментом управления. AWK , grep , sed ? Счастливые дни!
Я принес эти инструменты, доступные в Windows, и тогда они не помогли управлять Windows, потому что в Windows все является API, который возвращает структурированные данные. Так что это не помогло. [...] Мне пришла в голову идея PowerShell, и я сказал: «Эй, мы можем сделать это лучше».
К 2002 году Microsoft начала разрабатывать новый подход к управлению из командной строки, включая интерфейс командной строки под названием Monad (также известный как Microsoft Shell или MSH). Идеи, лежащие в основе этого, были опубликованы в августе 2002 года в официальном документе под названием «Манифест монады». [12] Monad должен был стать новым расширяемым интерфейсом командной строки со свежим дизайном, который был бы способен автоматизировать весь спектр основных административных задач. Microsoft впервые продемонстрировала Monad на конференции профессионального развития в Лос-Анджелесе в октябре 2003 года. Через несколько месяцев началась частная бета-программа, которая в конечном итоге привела к публичной бета-программе.
Microsoft опубликовала первую общедоступную бета-версию Monad 17 июня 2005 г., Beta 2 - 11 сентября 2005 г. и Beta 3 - 10 января 2006 г. Не намного позже, 25 апреля 2006 г. Microsoft официально объявила о переименовании Monad в Windows PowerShell. , позиционируя его как важную часть своих предложений по технологиям управления. [13] Релиз-кандидат 1 PowerShell был выпущен в то же время. Существенным аспектом как изменения названия, так и RC было то, что теперь это был компонент Windows, а не дополнительный продукт.
Релиз-кандидат 2 версии PowerShell 1 был выпущен 26 сентября 2006 г., а окончательный релиз в Интернете (RTW) состоялся 14 ноября 2006 г. и объявлен на TechEd Barcelona. PowerShell для более ранних версий Windows был выпущен 30 января 2007 г. [14]
Разработка PowerShell v2.0 началась до выпуска PowerShell v1.0. Во время разработки Microsoft предоставила три предварительных версии технологии сообщества (CTP) . Microsoft сделала эти выпуски общедоступными. Последний выпуск CTP Windows PowerShell v2.0 был выпущен в декабре 2008 года.
PowerShell v2.0 был завершен и выпущен в производство в августе 2009 г. как неотъемлемая часть Windows 7 и Windows Server 2008 R2. Версии PowerShell для Windows XP, Windows Server 2003, Windows Vista и Windows Server 2008 были выпущены в октябре 2009 года и доступны для загрузки как для 32-разрядных, так и для 64-разрядных платформ. [15]
Windows 10 предоставила платформу тестирования для PowerShell. [16]
18 августа 2016 года Microsoft объявила [17], что они сделали PowerShell с открытым исходным кодом и кроссплатформенным с поддержкой Windows, macOS , CentOS и Ubuntu . [5] Исходный код был опубликован на GitHub . [18] Переход на открытый исходный код создал второе воплощение PowerShell под названием «PowerShell Core», работающее на .NET Core . Он отличается от «Windows PowerShell», которая работает на полной платформе .NET Framework . [19] Начиная с версии 5.1, PowerShell Core входит в состав Windows Server 2016 Nano Server . [20] [21]
Дизайн [ править ]
Разработчики PowerShell основали базовую грамматику инструмента на основе POSIX 1003.2 KornShell . [22]
Windows PowerShell может выполнять четыре типа именованных команд: [23]
- командлеты ( программы .NET Framework , предназначенные для взаимодействия с PowerShell)
- Скрипты PowerShell (файлы с суффиксом
.ps1
) - Функции PowerShell
- автономные исполняемые программы
Если команда является отдельной исполняемой программой, PowerShell запускает ее в отдельном процессе ; если это командлет, он выполняется в процессе PowerShell. PowerShell предоставляет интерактивный интерфейс командной строки , в котором можно вводить команды и отображать их вывод. Пользовательский интерфейс предлагает настраиваемое завершение вкладок . PowerShell позволяет создавать псевдонимы для командлетов, которые PowerShell текстуально переводит в вызовы исходных команд. PowerShell поддерживает как именованные, так и позиционные параметрыдля команд. При выполнении командлета задание по привязке значения аргумента к параметру выполняется самой PowerShell, но для внешних исполняемых файлов аргументы анализируются внешним исполняемым файлом независимо от интерпретации PowerShell. [ необходима цитата ]
Система расширенных типов PowerShell ( ETS ) основана на системе типов .NET, но с расширенной семантикой (например, propertySets и сторонняя расширяемость). Например, он позволяет создавать различные представления объектов, отображая только подмножество полей данных, свойств и методов, а также задавая настраиваемое поведение форматирования и сортировки. Эти представления отображаются на исходный объект с помощью файлов конфигурации на основе XML . [24]
Командлеты [ править ]
Командлеты - это специализированные команды в среде PowerShell, которые реализуют определенные функции. Это собственные команды в стеке PowerShell. Командлеты следуют шаблону именования глагол - существительное , например Get-ChildItem , что помогает сделать их информативными. [25] Командлеты выводят свои результаты в виде объектов, а также могут получать объекты в качестве входных данных, что делает их пригодными для использования в качестве получателей в конвейере. Если командлет выводит несколько объектов, каждый объект в коллекции передается вниз по всему конвейеру до обработки следующего объекта. [25]
Командлеты - это специализированные классы .NET , которые среда выполнения PowerShell создает и вызывает во время выполнения. Командлеты являются производными от Cmdlet
или от PSCmdlet
, причем последний используется, когда командлету необходимо взаимодействовать со средой выполнения PowerShell. [25] Эти базовые классы указать определенные методы - BeginProcessing()
, ProcessRecord()
и EndProcessing()
- переопределения реализации Командлета, чтобы обеспечить функциональность. При каждом запуске командлета PowerShell последовательно вызывает эти методы, вызывая их при ProcessRecord()
получении входных данных конвейера. [26] Если коллекция объектов передается по конвейеру, метод вызывается для каждого объекта в коллекции. Класс, реализующий командлет, должен иметь один атрибут .NET -CmdletAttribute
- который определяет глагол и существительное, составляющие имя командлета. Общие глаголы представлены в виде перечисления . [27] [28]
Если командлет получает ввод конвейера или ввод параметра командной строки, в классе должно быть соответствующее свойство с реализацией мутатора . PowerShell вызывает мутатор со значением параметра или вводом конвейера, который сохраняется реализацией мутатора в переменных класса. Затем к этим значениям обращаются методы, реализующие эту функциональность. Свойства, которые сопоставляются с параметрами командной строки, отмечены ParameterAttribute
[29] и устанавливаются перед вызовом BeginProcessing()
. Те, которые сопоставляются с входом конвейера, также окружены ParameterAttribute
, но с ValueFromPipeline
набором параметров атрибута. [30]
Реализация этих классов командлетов может относиться к любому .NET API и может быть на любом языке .NET . Кроме того, PowerShell делает доступными определенные API-интерфейсы, например WriteObject()
, который используется для доступа к функциям, специфичным для PowerShell, например записи результирующих объектов в конвейер. Командлеты могут напрямую использовать API доступа к данным .NET или использовать инфраструктуру PowerShell поставщиков PowerShell , которые делают хранилища данных доступными с использованием уникальных путей . Хранилища данных отображаются с использованием букв дисков и иерархий внутри них, адресованных как каталоги. Windows PowerShell поставляется с поставщиками файловой системы , реестра и сертификата.store, а также пространства имен для псевдонимов команд, переменных и функций. [31] Windows PowerShell также включает различные командлеты для управления различными системами Windows , включая файловую систему , или с помощью инструментария управления Windows для управления компонентами Windows . Другие приложения могут регистрировать командлеты с помощью PowerShell, что позволяет ему управлять ими, и, если они включают какое-либо хранилище данных (например, базы данных), они также могут добавлять определенных поставщиков. [ необходима цитата ]
PowerShell V2 добавил более переносимую версию командлетов, называемых модулями. В примечаниях к выпуску PowerShell V2 говорится:
Модули позволяют разработчикам сценариев и администраторам разделять и организовывать свой код Windows PowerShell в автономные многоразовые блоки. Код из модуля выполняется в собственном автономном контексте и не влияет на состояние вне модуля. Модули также позволяют определять среду с ограниченным пространством выполнения с помощью сценария. [32]
Количество командлетов обычно увеличивается с каждой версией:
Версия | Командлеты |
---|---|
Windows PowerShell 1.0 | 129 [33] |
Windows PowerShell 2.0 | 632 [34] |
Windows PowerShell 3.0 | около 1000 [35] |
Windows PowerShell 4.0 | ? |
Windows PowerShell 5.0 | около 1300 [36] |
Windows PowerShell 5.1 | 1586 [ необходима ссылка ] |
PowerShell Core 6.0 | ? |
PowerShell Core 6.1 | ? |
PowerShell Core 6.2 | ? |
PowerShell 7.0 | 1507 [ необходима ссылка ] |
PowerShell 7.1 | ? |
Трубопровод [ править ]
PowerShell реализует концепцию конвейера , который позволяет передавать выходные данные одного командлета другому командлету в качестве входных данных. Например, выходные данные Get-Process
командлета могут быть переданы по конвейеру для Where-Object
фильтрации любого процесса, имеющего менее 1 МБ выгружаемой памяти, а затем в Sort-Object
командлет (например, для сортировки объектов по количеству дескрипторов), а затем, наконец, в Select-Object
командлет для выбора только первых 10 (т. е. 10 процессов на основе количества дескрипторов). [ необходима цитата ]
Как и конвейеры Unix, конвейеры PowerShell могут создавать сложные команды, используя |
оператор для соединения этапов. Однако конвейер PowerShell отличается от конвейеров Unix тем, что этапы выполняются в среде выполнения PowerShell, а не как набор процессов, координируемых операционной системой, и структурированные объекты .NET, а не потоки байтов , передаются от одного этапа к другому. Использование объектов и этапов выполнения в среде выполнения PowerShell устраняет необходимость сериализации структур данных или их извлечения путем явного синтаксического анализа вывода текста. [37]Объект также может инкапсулировать определенные функции, которые работают с содержащимися данными, которые становятся доступными команде получателя для использования. [38] [39] Для последнего командлета в конвейере PowerShell автоматически передает свой выходной объект Out-Default
командлету, который преобразует объекты в поток объектов форматирования, а затем отображает их на экране. [40] [41]
Поскольку все объекты PowerShell являются объектами .NET, у них есть общий .ToString()
метод, который извлекает текстовое представление данных в объекте. Кроме того, PowerShell позволяет указывать определения форматирования, поэтому текстовое представление объектов можно настроить, выбрав, какие элементы данных отображать и каким образом. Однако для обеспечения обратной совместимости, если внешний исполняемый файл используется в конвейере, он получает текстовый поток, представляющий объект, вместо прямой интеграции с системой типов PowerShell. [42] [43] [44]
Сценарии [ править ]
Windows PowerShell включает динамически типизированный язык сценариев, который может выполнять сложные операции с помощью командлетов в обязательном порядке . Язык сценариев поддерживает переменные, функции, ветвления ( if-then-else
), петли ( while
, do
, for
и foreach
), структурированная обработка ошибок / исключений и закрытия / лямбда - выражения , [45] , а также интеграцию с .NET. Переменные в сценариях PowerShell имеют префикс$
. Переменным можно присвоить любое значение, включая вывод командлетов. Строки могут быть заключены в одинарные или двойные кавычки: при использовании двойных кавычек переменные будут раскрыты, даже если они заключены в кавычки. Заключение пути к файлу в фигурные скобки, перед которым стоит знак доллара (как в ${C:\foo.txt}
), создает ссылку на содержимое файла. Если он используется как L-значение , все, что ему присвоено, будет записано в файл. При использовании в качестве значения R будет прочитано содержимое файла. Если объект назначен, он сериализуется перед сохранением. [ необходима цитата ]
Доступ к членам объекта можно получить с помощью .
нотации, как в синтаксисе C #. PowerShell предоставляет специальные переменные, такие как $args
, который представляет собой массив всех аргументов командной строки, переданных функции из командной строки, и $_
, который ссылается на текущий объект в конвейере. [46] PowerShell также предоставляет массивы и ассоциативные массивы . Язык сценариев PowerShell также немедленно оценивает арифметические выражения, введенные в командной строке, и анализирует распространенные сокращения, такие как ГБ, МБ и КБ. [47] [48]
Используя function
ключевое слово, PowerShell обеспечивает создание функций следующей общей формы: [49]
имя функции ( $ Param1 , $ Param2 ) { инструкции }
Определенная функция вызывается в любой из следующих форм: [49]
имя значение1 значение2 имя -Param1 значение1 -Param2 значение2
PowerShell поддерживает именованные параметры, позиционные параметры, параметры переключения и динамические параметры. [49]
PowerShell позволяет вызывать любые методы .NET, указав их пространства имен в квадратных скобках ( []
), а затем используя пару двоеточий ( ::
) для обозначения статического метода. [50] Например, [System.Console]::WriteLine("PowerShell")
. Объекты создаются с помощью New-Object
командлета. Вызов методов .NET-объектов осуществляется с использованием обычной .
записи. [50]
PowerShell принимает строки , как необработанные, так и экранированные . Строка, заключенная в одинарные кавычки, является необработанной строкой, а строка, заключенная в двойные кавычки, - это экранированная строка. PowerShell рассматривает прямые и фигурные кавычки как эквивалент. [51]
PowerShell поддерживает следующий список специальных символов: [52]
Характер | Описание |
---|---|
`0 | Ноль |
`а | Тревога |
`б | Backspace |
`е | Побег |
`f | Подача формы |
`п | Новая линия |
`г | Возврат каретки |
`т | Горизонтальная вкладка |
`u {x} | Управляющая последовательность Unicode |
`v | Вертикальная табуляция |
-% | Прекратить синтаксический анализ |
Для обработки ошибок PowerShell предоставляет механизм обработки исключений на основе .NET . В случае ошибок Exception
выбрасываются объекты, содержащие информацию об ошибке ( объекте), которые перехватываются с помощью try ... catch
конструкции (хотя trap
конструкция также поддерживается). PowerShell можно настроить на возобновление выполнения в автоматическом режиме, не создавая исключения; это можно сделать одной командой, одним сеансом или постоянно. [53]
Сценарии, написанные с использованием PowerShell, можно заставить сохраняться в сеансах либо в .ps1
файле, либо в .psm1
файле (последний используется для реализации модуля). Позже можно использовать либо весь сценарий, либо отдельные функции сценария. Сценарии и функции работают аналогично командлетам в том смысле, что они могут использоваться как команды в конвейерах, а параметры могут быть привязаны к ним. Объекты конвейера можно беспрепятственно передавать между функциями, скриптами и командлетами. Чтобы предотвратить непреднамеренный запуск сценариев, выполнение сценариев по умолчанию отключено и должно быть включено явно. [54] Включение сценариев может быть выполнено на уровне системы, пользователя или сеанса. Сценарии PowerShell могут быть подписаны для проверки их целостности и подлежат безопасности доступа для кода.. [55]
Язык сценариев PowerShell поддерживает двоичную префиксную нотацию, аналогичную научной нотации, поддерживаемой многими языками программирования в семействе C. [56]
Хостинг [ править ]
Можно также использовать PowerShell, встроенный в приложение управления, которое использует среду выполнения PowerShell для реализации функций управления. Для этого PowerShell предоставляет API управляемого хостинга . С помощью API - интерфейсов, приложение может создать экземпляр пространства выполнения (один Конкретизацию выполнения PowerShell), который работает в приложении процесса и подвергаются воздействию как объект. [6] Состояние области выполнения заключено в объект. Когда пространство выполнения создается, среда выполнения Windows PowerShell инициализирует создание экземпляра, включая инициализацию поставщиков и перечисление командлетов, и обновляетRunspace
SessionState
SessionState
возражать соответственно. Затем необходимо открыть пространство выполнения для синхронной или асинхронной обработки. После этого его можно использовать для выполнения команд. [ необходима цитата ]
Чтобы выполнить команду, конвейер (представленный Pipeline
объектом) должен быть создан и связан с пространством выполнения. Затем объект конвейера заполняется командлетами, составляющими конвейер. Для последовательных операций (как в сценарии PowerShell) объект конвейера создается для каждого оператора и вкладывается в другой объект конвейера. [6] Когда трубопровод создан, Windows PowerShell вызывает процессор конвейера, который решает командлеты в свои сборки ( командный процессор ) и добавляет ссылку на них в трубопровод, и связывают их с InputPipe
, OutputPipe
и ErrorOutputPipe
объектами, для представления соединение с трубопроводом. Типы проверяются, а параметры связываются с помощью отражения.. [6] Как только конвейер настроен, хост вызывает Invoke()
метод для выполнения команд или его асинхронный эквивалент - InvokeAsync()
. Если конвейер имеет Write-Host
командлет в конце конвейера, он записывает результат на экран консоли. Если нет, результаты передаются хосту, который может либо применить дальнейшую обработку, либо отобразить сам вывод. [ необходима цитата ]
Microsoft Exchange Server 2007 использует API-интерфейсы хостинга для предоставления графического интерфейса управления. Каждая операция, представленная в графическом интерфейсе пользователя, сопоставляется с последовательностью команд PowerShell (или конвейеров). Хост создает конвейер и выполняет их. Фактически, интерактивная консоль PowerShell сама по себе является хостом PowerShell, который интерпретирует сценарии, введенные в командной строке, создает необходимые Pipeline
объекты и вызывает их. [ необходима цитата ]
Конфигурация желаемого состояния [ править ]
DSC позволяет декларативно указать, как должна быть настроена программная среда. [57]
После запуска конфигурации DSC гарантирует, что система получит состояние, описанное в конфигурации. Конфигурации DSC идемпотентны. Configuration Manager Локального (LCM) периодически опрашивает систему с помощью управляющего потоком , описанного ресурсов (императивные куски DSC) , чтобы убедиться , что состояние конфигурации сохраняется.
Версии [ править ]
Первоначально использовавшее кодовое имя «Монада», PowerShell впервые был публично показан на конференции профессиональных разработчиков в октябре 2003 года в Лос-Анджелесе. Все основные выпуски по-прежнему поддерживаются, и каждый основной выпуск имеет обратную совместимость с предыдущими версиями.
Windows PowerShell 1.0 [ править ]
PowerShell 1.0 был выпущен в ноябре 2006 года для Windows XP SP2 , Windows Server 2003 SP1 и Windows Vista . [58] Это дополнительный компонент Windows Server 2008 .
Windows PowerShell 2.0 [ править ]
PowerShell 2.0 интегрирован с Windows 7 и Windows Server 2008 R2 [59] и выпущен для Windows XP с пакетом обновления 3, Windows Server 2003 с пакетом обновления 2 и Windows Vista с пакетом обновления 1. [60] [61]
PowerShell v2 включает изменения языка сценариев и API размещения, а также более 240 новых командлетов. [62] [63]
Новые функции PowerShell 2.0 включают: [64] [65] [66]
- Удаленное взаимодействие PowerShell . Используя WS-Management , PowerShell 2.0 позволяет запускать сценарии и командлеты на удаленном компьютере или большом наборе удаленных компьютеров.
- Фоновые задания : также называемые PSJob , они позволяют асинхронно вызывать последовательность команд (скрипт) или конвейер. Задания можно запускать на локальном компьютере или на нескольких удаленных машинах. Интерактивный командлет в PSJob блокирует выполнение задания до тех пор, пока не будет предоставлен ввод пользователя.
- Транзакции : включите командлет, и разработчики смогут выполнять транзакционные операции . PowerShell 2.0 включает командлеты транзакций для запуска, фиксации и отката PSTransaction, а также функции для управления и направления транзакции в участвующие командлеты и операции поставщика. Поставщик реестра PowerShell поддерживает транзакции.
- Расширенные функции : это командлеты, написанные с использованием языка сценариев PowerShell. Первоначально эта функция называлась «командлетами сценария», но позже была переименована в «расширенные функции». [67]
- SteppablePipelines : Это позволяет пользователю контролировать , когда
BeginProcessing()
,ProcessRecord()
иEndProcessing()
функцию командлетов называется. - Модули : это позволяет разработчикам и администраторам сценариев организовывать и разделять сценарии PowerShell в автономные многоразовые блоки. Код из модуля выполняется в собственном автономном контексте и не влияет на состояние вне модуля. Модули могут определять среду с ограниченным пространством выполнения с помощью сценария. У них есть постоянное состояние, а также публичные и частные члены.
- Язык данных : зависящее от домена подмножество языка сценариев PowerShell, которое позволяет отделить определения данных от сценариев и позволяет импортировать локализованные строковые ресурсы в сценарий во время выполнения ( интернационализация сценария ).
- Отладка сценария : позволяет устанавливать точки останова в сценарии или функции PowerShell. Точки останова могут быть установлены на строках, строках и столбцах, командах и доступе для чтения или записи переменных. Он включает набор командлетов для управления точками останова с помощью скрипта.
- Событие : эта функция позволяет прослушивать, перенаправлять и действовать в отношении событий управления и системы. Событие позволяет узлам PowerShell получать уведомления об изменениях состояния их управляемых сущностей. Он также позволяет сценариям PowerShell подписываться на ObjectEvents , PSEvents и WmiEvents и обрабатывать их синхронно и асинхронно.
- Интегрированная среда сценариев Windows PowerShell (ISE) : PowerShell 2.0 включает в себя хост PowerShell на основе графического интерфейса, который предоставляет интегрированный отладчик, подсветку синтаксиса , завершение вкладок и до 8 консолей с поддержкой PowerShell Unicode (пространства выполнения) в пользовательском интерфейсе с вкладками, а также возможность для запуска только выбранных частей в скрипте.
- Передача файлов по сети : встроенная поддержка приоритетной, регулируемой и асинхронной передачи файлов между машинами с помощью фоновой интеллектуальной службы передачи (BITS). [68]
- Новые командлеты : Включая
Out-GridView
, которые отображают табличные данные в объекте WPF GridView , в системах, которые это позволяют, и если ISE установлен и включен. - Новые операторы :
-Split
,-Join
, и Splatting (@
) операторы. - Обработка исключений с помощью Try-Catch-finally : в отличие от других языков .NET, это позволяет использовать несколько типов исключений для одного блока catch.
- Вложенные Here-Strings : PowerShell Here-Strings были улучшены и теперь могут вкладываться. [69]
- Блочные комментарии : PowerShell 2.0 поддерживает блочные комментарии с использованием
<#
и в#>
качестве разделителей. [70] - Новые API : новые API-интерфейсы варьируются от передачи большего контроля над анализатором PowerShell и средой выполнения хосту до создания и управления коллекцией Runspaces ( RunspacePools ), а также возможности создавать Restricted Runspaces, которые позволяют использовать только настроенное подмножество PowerShell. вызван. Новые API также поддерживают участие в управляемой транзакции Windows PowerShell.
Windows PowerShell 3.0 [ править ]
PowerShell 3.0 интегрирован с Windows 8 и Windows Server 2012 . Microsoft также сделала PowerShell 3.0 доступным для Windows 7 с пакетом обновления 1, для Windows Server 2008 с пакетом обновления 1 и для Windows Server 2008 R2 с пакетом обновления 1. [71] [72]
PowerShell 3.0 является частью более крупного пакета Windows Management Framework 3.0 (WMF3), который также содержит службу WinRM для поддержки удаленного взаимодействия. [72] Microsoft выпустила несколько предварительных версий технологии Community Technology Preview для WMF3. 2 декабря 2011 года была выпущена ранняя версия Windows Management Framework 3.0 от сообщества (CTP 2). [73] Windows Management Framework 3.0 была выпущена для общедоступной версии в декабре 2012 года [74] и включена в Windows 8 и Windows Server 2012 по умолчанию. [75]
Новые функции PowerShell 3.0 включают: [72] [76] : 33–34.
- Запланированные задания : можно запланировать выполнение заданий на заранее установленное время и дату.
- Возможность подключения к сеансу: сеансы можно отключать и повторно подключать. Удаленные сеансы стали более терпимыми к временным сбоям сети.
- Улучшенное написание кода : добавлено автозавершение кода (IntelliSense) и фрагменты . PowerShell ISE позволяет пользователям использовать диалоговые окна для ввода параметров командлетов PowerShell.
- Поддержка делегирования : административные задачи можно делегировать пользователям, у которых нет разрешений для этого типа задач, без предоставления им постоянных дополнительных разрешений.
- Обновление справки : документацию справки можно обновить с помощью команды Update-Help.
- Автоматическое определение модуля : модули загружаются неявно при вызове команды из этого модуля. Автозавершение кода работает и для выгруженных модулей.
- Новые команды : были добавлены десятки новых модулей, включая функции для управления дисками
get-WmiObject win32_logicaldisk
, томами, брандмауэрами, сетевыми подключениями и управлением принтерами, которые ранее выполнялись через WMI. [ требуется дальнейшее объяснение ]
Windows PowerShell 4.0 [ править ]
PowerShell 4.0 интегрирован с Windows 8.1 и с Windows Server 2012 R2 . Microsoft также сделала PowerShell 4.0 доступным для Windows 7 SP1 , Windows Server 2008 R2 SP1 и Windows Server 2012 . [77]
Новые функции PowerShell 4.0 включают:
- Конфигурация желаемого состояния : [78] [79] [80] Декларативные языковые расширения и инструменты, которые позволяют развертывать и управлять данными конфигурации для систем, использующих стандарты управления DMTF и протокол WS-Management.
- Новая политика выполнения по умолчанию : на серверах Windows политика выполнения по умолчанию теперь RemoteSigned.
- Save-Help : теперь справку можно сохранять для модулей, установленных на удаленных компьютерах.
- Расширенная отладка : отладчик теперь поддерживает рабочие процессы отладки, удаленное выполнение скриптов и сохранение сеансов отладки при повторных подключениях сеансов PowerShell.
- Переключатель -PipelineVariable : новый повсеместный параметр, позволяющий отображать текущий объект конвейера как переменную для целей программирования.
- Сетевая диагностика для управления физическими и виртуализированными сетевыми коммутаторами Hyper-V
- Синтаксис методов Where и ForEach предоставляет альтернативный метод фильтрации и перебора объектов.
Windows PowerShell 5.0 [ править ]
Windows Management Framework (WMF) 5.0 RTM, которая включает PowerShell 5.0, была повторно выпущена для Интернета 24 февраля 2016 г. после первоначального выпуска с серьезной ошибкой. [81]
Ключевые особенности включают:
class
Ключевое слово new , создающее классы для объектно-ориентированного программирования.- Новое
enum
ключевое слово, которое создает перечисления OneGet
командлеты для поддержки диспетчера пакетов Chocolatey [82]- Расширение поддержки управления коммутаторами до сетевых коммутаторов уровня 2 . [83]
- Отладка фоновых заданий PowerShell и экземпляров PowerShell, размещенных в других процессах (каждый из которых называется «пространством выполнения»)
- Конфигурация желаемого состояния (DSC) Local Configuration Manager (LCM) версии 2.0
- Частичные конфигурации DSC
- Мета-конфигурации DSC Local Configuration Manager
- Создание ресурсов DSC с использованием классов PowerShell
Windows PowerShell 5.1 [ править ]
Он был выпущен вместе с юбилейным обновлением Windows 10 [84] 2 августа 2016 г. и в Windows Server 2016 . [85] PackageManagement теперь поддерживает прокси, PSReadLine теперь поддерживает ViMode, и были добавлены два новых командлета: Get-TimeZone и Set-TimeZone. Модуль LocalAccounts позволяет добавлять / удалять локальные учетные записи пользователей. [86] Предварительная версия PowerShell 5.1 была выпущена для Windows 7, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012 и Windows Server 2012 R2 16 июля 2016 г. [87] и выпущена 19 января 2017 г. [88]
PowerShell 5.1 - это первая версия, которая состоит из двух редакций: Desktop и Core. Версия «Desktop» является продолжением традиционной оболочки Windows PowerShell, работающей на полном стеке .NET Framework. Версия «Core» работает на .NET Core и поставляется в комплекте с Windows Server 2016 Nano Server. В обмен на меньшую занимаемую площадь в последнем отсутствуют некоторые функции, такие как командлеты для управления буфером обмена или присоединения компьютера к домену, командлеты WMI версии 1, командлеты и профили журнала событий. [21] Это была последняя версия PowerShell, созданная исключительно для Windows.
PowerShell Core 6 [ править ]
PowerShell Core 6.0 был впервые анонсирован 18 августа 2016 года, когда Microsoft представила PowerShell Core и свое решение сделать продукт кроссплатформенным , независимым от Windows, бесплатным и открытым исходным кодом. [5] Он стал общедоступным 10 января 2018 года для Windows, macOS и Linux . [89] Он имеет собственный жизненный цикл поддержки и соответствует политике жизненного цикла Microsoft, представленной в Windows 10: поддерживается только последняя версия PowerShell Core. Microsoft планирует выпускать одну минорную версию PowerShell Core 6.0 каждые шесть месяцев. [90]
Наиболее значительным изменением в этой версии PowerShell является распространение на другие платформы. Для администраторов Windows эта версия PowerShell не включала никаких важных новых функций. В интервью сообществу 11 января 2018 г. команду PowerShell попросили перечислить 10 самых интересных вещей, которые могут произойти для ИТ-специалиста по Windows, который перейдет с Windows PowerShell 5.1 на PowerShell Core 6.0; в ответ Ангел Кальво из Microsoft назвал только два: кроссплатформенный и открытый. [91]
По словам Microsoft, одной из новых функций PowerShell 6.1 является «Совместимость с более чем 1900 существующими командлетами в Windows 10 и Windows Server 2019 ». [92] Тем не менее, в полной версии журнала изменений нет подробностей об этих командлетах. [93] Позднее Microsoft заявляет, что этого числа было недостаточно, поскольку PowerShell Core не смог заменить Windows PowerShell 5.1 и добиться успеха в Windows. [94] Однако он был популярен в Linux. [94]
PowerShell Core 6.2 ориентирован в первую очередь на повышение производительности, исправление ошибок и улучшения командлетов и языка меньшего размера, которые улучшают качество жизни пользователей. [95]
PowerShell 7 [ править ]
PowerShell 7 - это продукт, заменяющий продукты PowerShell Core 6.x, а также Windows PowerShell 5.1, которая является последней поддерживаемой версией Windows PowerShell. [96] [94] Основное внимание при разработке уделялось тому, чтобы сделать PowerShell 7 жизнеспособной заменой Windows PowerShell 5.1, то есть иметь почти равный с Windows PowerShell с точки зрения совместимости с модулями, поставляемыми с Windows. [97]
Новые функции PowerShell 7 включают: [98]
-Parallel
Переключатель дляForEach-Object
командлета помощи ручки параллельной обработки- Почти паритет с Windows PowerShell с точки зрения совместимости со встроенными модулями Windows
- Новый просмотр ошибок
Get-Error
командлет- Операторы цепочки конвейера (
&&
и||
), которые позволяют условное выполнение следующего командлета в конвейере - Оператор ?: Для тернарной операции
??=
Оператор , который только присваивает значение переменной , когда текущее значение переменной является нулевым??
Оператор нулевой связывающей- Кросс-платформенный
Invoke-DscResource
(экспериментальный) - Возврат
Out-GridView
командлета - Возврат
-ShowWindow
переключателя дляGet-Help
Сравнение командлетов с аналогичными командами [ править ]
В следующей таблице содержится выбор командлетов, поставляемых с PowerShell, с указанием аналогичных команд в других известных интерпретаторах командной строки. Многие из этих похожих команд входят в готовые к использованию как псевдонимы в PowerShell, что упрощает работу людей, знакомых с другими распространенными оболочками.
PowerShell (командлет) | PowerShell (псевдоним) | Командная строка Windows | Оболочка Unix | Описание |
---|---|---|---|---|
Get-ChildItem | gci, dir, ls | реж | ls | Список всех файлов и папок в текущей или заданной папке |
Тестовое соединение [a] | пинг | пинг | пинг | Отправляет эхо-запросы ICMP на указанный компьютер с текущего компьютера или инструктирует другой компьютер сделать это |
Get-Content | gc, тип, кот | тип | Кот | Получает содержимое файла |
Get-Command | гсм | помощь | тип , который , compgen | Список доступных команд |
Получить помощь | помогите, чувак | помощь | кстати , человек | Печатает документацию по команде на консоли |
Clear-Host | cls, ясно | cls | Чисто | Очищает экран [b] |
Копировать элемент | cpi, copy, cp | копировать , xcopy , robocopy | cp | Копирует файлы и папки в другое место |
Переместить предмет | ми, двигаться, мв | двигаться | мв | Перемещает файлы и папки в новое место |
Убрать предмет | ри, дель, стирание, rmdir, rd, rm | del , стереть , rmdir , rd | rm , rmdir | Удаляет файлы или папки |
Rename-Item | рни, рен, мв | ren , переименовать | мв | Переименовывает отдельный файл, папку, жесткую ссылку или символическую ссылку |
Get-Location | gl, cd, pwd | CD | pwd | Отображает рабочий путь (текущая папка) |
Pop-Location | popd | popd | popd | Изменяет рабочий путь к месту, которое было помещено в стек последним. |
Push-Location | толкать | толкать | толкать | Сохраняет рабочий путь в стек |
Set-Location | sl, cd, chdir | cd , chdir | CD | Меняет рабочий путь |
Тройник-Объект | тройник | Нет данных | тройник | Каналы вводят в файл или переменную, передавая ввод по конвейеру |
Запись-вывод | эхо, написать | эхо | эхо | Выводит строки или другие объекты на стандартный вывод |
Get-Process | gps, ps | tlist, [c] список задач [d] | пс | Список всех запущенных процессов |
Остановить процесс | spps, убить | убить , [c] taskkill [d] | убить [е] | Останавливает запущенный процесс |
Выбрать строку | sls | findstr | найти , grep | Печатает линии, соответствующие шаблону |
Установить переменную | св, установить | набор | env, экспорт, набор, setenv | Создает или изменяет содержимое переменной среды |
Invoke-WebRequest | iwr, | локон [100] | wget , завиток | Получает содержимое с веб-страницы в Интернете |
Примечания
- ^ Хотя внешняякоманда ping остается доступной для PowerShell, выходные данные Test-Connection представляют собой структурированный объект, который можно проверять программно. [99]
- ^ Clear-Host реализован как предопределенная функция PowerShell.
- ^ a b Доступно в Windows NT 4 , Windows 98 Resource Kit , Windows 2000 Support Tools
- ^ a b Представлено в Windows XP Professional Edition
- ^ Также используется в UNIX для отправки процессу любого сигнала , сигнал «Завершить» является просто значением по умолчанию.
- ^
curl
иwget
псевдонимы отсутствуют в PowerShell Core, чтобы не мешать вызову собственных команд с похожими именами.
Расширения имен файлов [ править ]
Расширение | Описание |
---|---|
.ps1 | Файл сценария [101] |
.psd1 | Файл манифеста модуля; обычно поставляется с модулем сценария или двоичным модулем [102] |
.psm1 | Файл скриптового модуля [103] |
.dll | DLL- совместимый [a] файл двоичного модуля [104] |
.ps1xml | Файл определений формата и типа [44] [105] |
.xml | XML- совместимый [b] файл сериализованных данных [106] |
.psc1 | Файл консоли [107] |
.pssc | Файл конфигурации сеанса [108] |
.psrc | Файл возможностей ролей [109] |
- ^ Библиотека динамической компоновки (DLL) не является форматом только для PowerShell. Это общий формат для хранения скомпилированного кода сборки .NET.
- ^ XML не является форматом только для PowerShell. Это популярный формат обмена информацией.
Поддержка приложений [ править ]
Заявление | Версия | Командлеты | Провайдер | Графический интерфейс управления |
---|---|---|---|---|
Сервер обмена | 2007 г. | 402 | да | да |
Windows Server | 2008 г. | да | да | Нет |
Microsoft SQL Server | 2008 г. | да | да | Нет |
Microsoft SharePoint | 2010 г. | да | да | Нет |
System Center Configuration Manager | 2012 R2 | 400+ | да | Нет |
System Center Operations Manager | 2007 г. | 74 | да | Нет |
Диспетчер виртуальных машин System Center | 2007 г. | да | да | да |
System Center Data Protection Manager | 2007 г. | да | Нет | Нет |
Сервер вычислительного кластера Windows | 2007 г. | да | да | Нет |
Microsoft Transporter Suite для Lotus Domino [110] | 08.02.0012 | 47 | Нет | Нет |
Microsoft PowerTools для Open XML [111] | 1.0 | 33 | Нет | Нет |
IBM WebSphere MQ [112] | 6.0.2.2 | 44 | Нет | Нет |
Надстройки IoT Core [113] | 74 | Неизвестный | Неизвестный | |
Командная консоль Quest Management Shell для Active Directory [114] | 1,7 | 95 | Нет | Нет |
Командование спецназа специального назначения [115] | 1.0 | да | Нет | да |
VMware vSphere PowerCLI [116] | 6.5 R1 | 500+ | да | да |
Информационные службы Интернета [117] | 7.0 | 54 | да | Нет |
Центр устранения неполадок Windows 7 [118] | 6.1 | да | Нет | да |
Набор средств развертывания Microsoft [119] | 2010 г. | да | да | да |
Набор инструментов NetApp PowerShell [120] [121] | 4.2 | 2000+ | да | да |
Планировщик JAMS - система доступа к заданиям и управления [122] | 5.0 | 52 | да | да |
Автоматизация МАУ [123] | 0,8 | 432 | Нет | Нет |
Dell Equallogic [124] | 3.5 | 55 | Нет | Нет |
LOGINventory [125] | 5,8 | да | да | да |
SePSX [126] | 0.4.1 | 39 | Нет | Нет |
Альтернативная реализация [ править ]
Проект назван Паши (название каламбур на хорошо известный « Баш » Unix оболочка [127] ) была была с открытым исходным кодом и кросс-платформенным повторным внедрением PowerShell через рамку Mono . Pash был создан Игорем Мучником, написан на C # и выпущен под лицензией GNU General Public License . Разработка Pash застопорилась в 2008 году, [127] была перезапущена на GitHub в 2012 году [128] и окончательно остановлена в 2016 году, когда PowerShell был официально сделан с открытым исходным кодом и кроссплатформенным. [129]
См. Также [ править ]
- Общая информационная модель
- Сравнение командных оболочек
- Сравнение языков программирования
- Управление предприятием через Интернет
- Хост сценариев Windows
- Терминал Windows
Ссылки [ править ]
- ^ «PowerShell / PowerShell» . GitHub . Проверено 12 февраля 2021 .
- ^ "v7.2.0-preview.3 Release of PowerShell" . Репозиторий GitHub PowerShell . Проверено 12 февраля 2021 .
- ^ "PowerShell для любой системы!" . 12 июня 2017 г. - через GitHub.
- ^ Snover, Джеффри (25 мая 2008). «PowerShell и WPF: WTF» . Блог Windows PowerShell . Microsoft.
- ^ a b c Брайт, Питер (18.08.2016). «PowerShell - это последняя версия Microsoft с открытым исходным кодом, которая появится в Linux, OS X» . Ars Technica . Condé Nast . Архивировано 9 апреля 2020 года . Проверено 12 мая 2020 .
- ^ a b c d e «Как работает Windows PowerShell» . Сеть разработчиков Microsoft . Microsoft . Проверено 27 ноября 2007 .
- ^ Truher, Джим (декабрь 2007 г.). «Расширение Windows PowerShell с помощью настраиваемых команд» . Журнал MSDN . Microsoft. Архивировано из оригинала 6 октября 2008 года.
- ↑ Лоу, Скотт (4 января 2007 г.). «Exchange 2007: привыкните к командной строке» . TechRepublic . CBS Interactive . Архивировано 16 ноября 2018 года . Проверено 12 мая 2020 .
- ^ Сновер, Джеффри (2007-11-13). "Поддержка SQL Server для PowerShell!" . Блог Windows PowerShell (запись в блоге). Microsoft. Архивировано из оригинала на 2007-11-15 . Проверено 13 ноября 2007 .
- ^ Драган, Ричард В. (23 апреля 2003 г.). «Windows Server 2003 обеспечивает повсеместные улучшения» . Отзывы. Журнал ПК . Зифф Дэвис .
Отличительной особенностью здесь является то, что практически все административные утилиты теперь работают из командной строки (и большинство из них доступны через telnet).
- ^ Биггар и Харбо (2017-09-14). «Человек, стоящий за Windows PowerShell» . Быть непрерывным (подкаст). Heavybit . Проверено 14 сентября 2017 .
- ^ Snover, Джеффри (2 августа 2002). «Манифест монады - исток Windows PowerShell» . Блог Windows PowerShell (запись в блоге). Microsoft .
- ^ "Windows PowerShell (монада) прибыла" . Блог Windows PowerShell . Microsoft . 25 апреля 2006 г.
- ^ Snover, Джеффри (15 ноября 2006). «Windows PowerShell и Windows Vista» . Блог Windows PowerShell (запись в блоге). Microsoft .
- ^ «Windows Management Framework (Windows PowerShell 2.0, WinRM 2.0 и BITS 4.0)» . Поддержка . Microsoft . 30 сентября, 2013. Архивировано из оригинального 13 октября 2013 года .
- ^ "Что такое надоедливый и почему я должен заботиться?" . 14 декабря 2015.
- ^ Snover, Джеффри (18 августа 2016). «PowerShell имеет открытый исходный код и доступен в Linux» . Блог Microsoft Azure . Microsoft .
- ^ «PowerShell / PowerShell» . GitHub . Проверено 18 августа 2016 .
- ^ Хансен, Кеннет; Кальво, Ангел (18 августа 2016 г.). «PowerShell для Linux и с открытым исходным кодом!» . Блог Windows PowerShell . Microsoft .
- ↑ Фоли, Мэри Джо (18 августа 2016 г.). «Microsoft Open Source PowerShell; переносит его в Linux и Mac OS X» . ZDNet . CBS Interactive .
- ^ a b «PowerShell на сервере Nano Server» . TechNet . Microsoft . 20 октября 2016 г.
- ^ Пайетт, Брюс (2007). Windows PowerShell в действии . Серия Manning Pubs Co. Мэннинг. п. 27. ISBN 9781932394900. Проверено 22 июля 2016 .
Основной язык PowerShell основан на грамматике POSIX 1003.2 для оболочки Korn .
- ^ "about_Command_Precedence" . TechNet . Microsoft . 8 мая 2014 года.
- ^ «Система расширенных типов Windows PowerShell» . Проверено 28 ноября 2007 .
- ^ a b c «Командлеты Windows PowerShell» . Проверено 28 ноября 2007 .
- ^ «Создание вашего первого командлета» . Проверено 28 ноября 2007 .
- ^ "Get-Verb" . TechNet . Microsoft . 8 мая 2014 года.
- ^ «Обзор командлета» . MSDN . Microsoft . 8 мая 2014 года.
- ^ «Добавление параметров, обрабатывающих ввод из командной строки» . Проверено 28 ноября 2007 .
- ^ «Добавление параметров, которые обрабатывают входные данные конвейера» . Проверено 28 ноября 2007 .
- ^ «Провайдеры Windows PowerShell» . Проверено 14 октября 2010 .
- ^ Примечания к выпуску PowerShell V2
- ^ Yoshizawa, Tomoaki; Рамос, Дурваль (29 сентября 2012 г.). «Командлеты PowerShell 1.0» . Статьи TechNet . Microsoft.
- ^ Yoshizawa, Tomoaki (10 июля 2012). «Командлеты PowerShell 2.0» . Статьи TechNet . Microsoft.
- Перейти ↑ Wilson, Ed (2013). «1: Обзор Windows PowerShell 3.0» . Windows Powershell 3.0 шаг за шагом . Севастополь, Калифорния: Microsoft Press . ISBN 978-0-7356-7000-6. OCLC 829236530 .
Windows PowerShell 3.0 содержит около 1000 командлетов в Windows 8.
- Перейти ↑ Wilson, Ed (2015). «1: Обзор Windows PowerShell 5.0» . Windows PowerShell Step by Step (Третье изд.). Редмонд, Вашингтон: Microsoft Press . ISBN 978-1-5093-0043-3. OCLC 927112976 .
Windows PowerShell 5.0 включает около 1300 командлетов в Windows 10.
- ^ «Руководство пользователя Windows PowerShell: трубопровод и конвейер в Windows PowerShell» . TechNet . Microsoft . Проверено 27 сентября 2011 .
- ^ Джонс, Дон (2008). «Windows PowerShell - переосмысление конвейера» . Microsoft TechNet . Microsoft . Проверено 28 ноября 2007 .
- ^ «Концепции объектов Windows PowerShell» . Архивировано из оригинального 19 августа 2007 года . Проверено 28 ноября 2007 .
- ^ «Как ДЕЙСТВИТЕЛЬНО работает форматирование и вывод PowerShell» . Проверено 28 ноября 2007 .
- ^ "Подробнее - Как на самом деле работает форматирование PowerShell?" . Проверено 28 ноября 2007 .
- ^ "about_Pipelines" . TechNet . Microsoft . 8 мая 2014 года.
- ^ "about_Objects" . TechNet . Microsoft . 8 мая 2014 года.
- ^ a b "about_Format.ps1xml" . TechNet . Microsoft . 8 мая 2014 года.
- ^ «Анонимные функции и блоки кода в PowerShell» . Проверено 21 января 2012 .
- ^ «Введение в переменные Windows PowerShell» . Проверено 28 ноября 2007 .
- ^ «Преобразование байтов» . Совет недели по Windows PowerShell . Проверено 15 ноября 2013 года .
- ^ Ravikanth (20 мая 2013). «Преобразование в единицы размера (КБ, МБ, ГБ, ТБ и ПБ) без использования множителей PowerShell» . Журнал PowerShell .
- ^ a b c "about_Functions" . Microsoft TechNet . Microsoft . 17 октября 2013 . Проверено 15 ноября 2013 года .
- ^ a b «Легкое тестирование с помощью Windows PowerShell» . Проверено 28 ноября 2007 .
- ↑ Ангелопулос, Алекс; Карен, Бемовски (4 декабря 2007 г.). «PowerShell сообразила умные котировки» . Windows для ИТ-специалистов . Пентон Медиа . Проверено 15 ноября 2013 года .
- ^ «О специальных символах» . Powershell / Скрипты. Microsoft . 8 июня 2017 года . Проверено 20 июня 2019 года .
- ^ "Ловушка [Исключение] {" В PowerShell "}" . Проверено 28 ноября 2007 .
- ^ «Запуск сценариев Windows PowerShell» . Проверено 28 ноября 2007 .
- ^ "about_Signing" . Microsoft TechNet . Microsoft . 17 октября 2013 . Проверено 15 ноября 2013 года .
- ^ Ли Холмс (сентябрь 2006 г.). Краткий справочник по Windows PowerShell . O'Reilly Media.
- ^ eslesar. «Обзор конфигурации желаемого состояния Windows PowerShell» . msdn.microsoft.com .
- ^ Чанг, Леонард; Сновер, Джеффри; Кумаравел, Арул (14 ноября 2006 г.). «Готово! Выпущена Windows PowerShell 1.0!» . Блог Windows PowerShell . Microsoft .
- ^ "PowerShell будет установлен по умолчанию на Windows Server 08 R2 (WS08R2) и Windows 7 (W7)!" . Блог Windows PowerShell . Microsoft . 2008-10-28 . Проверено 27 сентября 2011 .
- ^ "Windows Management Framework уже здесь!" . 2009-10-27 . Проверено 30 октября 2009 .
- ^ «База знаний службы поддержки Microsoft: Windows Management Framework (Windows PowerShell 2.0, WinRM 2.0 и BITS 4.0)» . Support.microsoft.com. 2011-09-23 . Проверено 27 сентября 2011 .
- ^ «574 причины, почему мы так гордимся и оптимистично относимся к W7 и WS08R2» . Блог Windows PowerShell . Microsoft . 2008-10-29 . Проверено 27 сентября 2011 .
- ^ Сновер, Джеффри (2008). «PowerShell: создание управляемых веб-служб» . Архивировано из оригинального 13 октября 2008 года . Проверено 19 июля 2015 года .
- ^ «Что нового в CTP PowerShell 2.0» . Проверено 28 ноября 2007 .
- ^ «Windows PowerShell V2 Community Technology Preview 2 (CTP2) - releaseNotes» . Архивировано из оригинала 6 мая 2008 года . Проверено 5 мая 2008 .
- ^ «Различия между PowerShell 1.0 и PowerShell 2.0» . Проверено 26 июня 2010 .
- ↑ Джонс, Дон (май 2010 г.). «Windows PowerShell: написание командлетов в сценарии» . Журнал TechNet . Microsoft.
- ^ «GoGrid Snap-in - Управление облачными службами с помощью PowerShell» . Блог Windows PowerShell . Microsoft . 2008-10-14 . Проверено 27 сентября 2011 .
- ^ "Emit-XML" . Блог Windows PowerShell . Microsoft . 2008-10-17 . Проверено 27 сентября 2011 .
- ^ «Блокировать комментарии в версии 2» . Блог Windows PowerShell . Microsoft . 2008-06-14 . Проверено 27 сентября 2011 .
- ↑ Ли, Томас (13 августа 2012 г.). "PowerShell Version 3 - это RTM!" . Под лестницей . Проверено 13 августа 2012 .
- ^ a b c «Windows Management Framework 3.0» . Центр загрузок . Microsoft . 4 сентября 2012 . Проверено 8 ноября 2012 .
- ^ «Windows Management Framework 3.0 Community Technology Preview (CTP) # 2 доступна для загрузки» . Блог Windows PowerShell . Microsoft . 2 декабря 2011 г.
- ^ «Windows Management Framework 3.0» . Центр загрузок . Microsoft . 3 декабря 2012 г.
- ^ Jofre, JuanPablo (14 декабря 2016). «Системные требования Windows PowerShell» . Сеть разработчиков Microsoft . Microsoft . Проверено 20 апреля 2017 года .
- ^ Ханикатт, Джерри (2012). Вулли, Валери (ред.). Представляем Windows 8: обзор для ИТ-специалистов . Редмонд, Вашингтон: Microsoft Press . ISBN 978-0-7356-7050-1.
- ^ «Windows Management Framework 4.0 теперь доступна» . Microsoft . 24 октября 2013 . Проверено 4 ноября 2013 года .
- ↑ Леви, Шей (25 июня 2013 г.). «Новые возможности Windows PowerShell 4.0» . Журнал PowerShell . Проверено 26 июня 2013 года .
- ^ «Требуемая конфигурация состояния в Windows Server 2012 R2 PowerShell» . Канал 9 . Microsoft . 3 июня 2013 . Проверено 26 июня 2013 года .
- ↑ Холл, Адриан (7 июня 2013 г.). «Мысли от Microsoft TechEd North America» . Блоги: Советы и хитрости . Splunk . Проверено 26 июня 2013 года .
- ^ «Пакеты Windows Management Framework (WMF) 5.0 RTM были переизданы» . Блог Windows PowerShell . Microsoft . 24 февраля 2016 г.
- ^ «Вопросы и ответы» . GitHub . Проверено 21 апреля 2015 года .
- ^ Сновер, Джеффри (2014-04-03). «Предварительная версия Windows Management Framework V5» . blogs.technet.com . Microsoft . Архивировано из оригинала на 2014-06-30 . Проверено 21 апреля 2015 .
- ^ говорит Яап Брассер (2 августа 2016 г.). «#PSTip Новые команды PowerShell в юбилейном обновлении Windows 10» .
- ^ «Что нового в Windows Server 2016 Standard Edition, часть 9 - Управление и автоматизация» .
- ^ "Модуль Microsoft.PowerShell.LocalAccounts" . technet.microsoft.com .
- ^ «Анонсирование Windows Management Framework (WMF) 5.1 Preview» .
- ^ "WMF 5.1" . Центр загрузки Microsoft .
- Перейти ↑ Aiello, Joey (11 января 2018). «PowerShell Core 6.0: общедоступно (GA) и поддерживается!» . Блог группы разработчиков PowerShell . Microsoft. Архивировано 11 июня 2018 года . Проверено 11 июня 2018 .
- ^ Айелло, Джоуи; Уилер, Шон (10 января 2018 г.). «Жизненный цикл поддержки PowerShell Core» . Документы Microsoft . Microsoft .
- ↑ Calvo, Angel (11 января 2018). «10 самых интересных причин для миграции» . PowerShell AMA . Microsoft .
- ^ Айелло, Джо (2018-09-13). «Представляем PowerShell Core 6.1» . devblogs.microsoft.com . Microsoft . Проверено 1 июня 2019 .
- ^ «PowerShell / PowerShell» . GitHub . Проверено 22 июня 2020 .
- ^ a b c Ли, Стив (2019-04-05). «Следующий выпуск PowerShell - PowerShell 7» . Microsoft . Проверено 1 июня 2019 .
- ^ Ли, Стив (2019-03-28). «Общедоступность PowerShell Core 6.2» . devblogs.microsoft.com . Microsoft . Проверено 1 июня 2019 .
- ^ Mackie, Курт (2019-05-30). «Microsoft выпускает предварительную версию PowerShell 7» . 1105 Media Inc . Проверено 1 июня 2019 .
- ^ Ли, Стив (30 мая 2019 г.). «Дорожная карта PowerShell 7» . devblogs.microsoft.com . Microsoft . Проверено 12 августа 2020 .
- ^ PowerShell 7, предварительная версия 5 | PowerShell
- ^ «Тестовое соединение» . Документация PowerShell . Microsoft . 9 августа 2015.
- ^ Tar и Curl приходят в Windows! - Техническое сообщество Microsoft - 382409
- ↑ Уиллер, Шон (2 июня 2020 г.). «О скриптах» . Документы Microsoft . Microsoft.
- ^ Уиллер, Шон; Сматлак, Дэвид; Уилсон, Чейз (16 октября 2019 г.). «Как написать манифест модуля PowerShell» . Документы . Microsoft.
- ^ Уиллер, Шон; Сматлак, Давид (22 ноября 2019 г.). «Как написать модуль сценария PowerShell» . Документы Microsoft . Microsoft.
- ↑ Уиллер, Шон (13 ноября 2016 г.). «Как написать двоичный модуль PowerShell» . Документы Microsoft . Microsoft.
- ^ Уиллер, Шон; Хофре, Хуан Пабло; Воробьев, Сергей; Николаев, Кирилл; Коултер, Дэвид (2 июня 2020 г.). "О Types.ps1xml" . Документы Microsoft . Microsoft.
- ^ Уиллер, Шон. «Экспорт-Clixml» . Документы Microsoft . Microsoft.
- ^ Уиллер, Шон; Хофре, Хуан Пабло; Воробьев, Сергей; Николаев, Кирилл; Коултер, Дэвид. «Экспорт-Консоль» . Документы Microsoft . Microsoft.
- ↑ Уиллер, Шон (2 июня 2020 г.). «О файлах конфигурации сеанса» . Документы Microsoft . Microsoft.
- ↑ Уиллер, Шон (2 июня 2020 г.). «New-PSRoleCapabilityFile» . Документы Microsoft . Microsoft.
- ^ "Microsoft Transporter Suite для Lotus Domino" . Проверено 7 марта 2008 .
- ^ «PowerTools для Open XML» . Проверено 20 июня 2008 .
- ^ «MO74: WebSphere MQ - библиотека Windows PowerShell» . Проверено 5 декабря 2007 .
- ^ «Параметры командной строки надстроек IoT Core» . Проверено 13 июня 2020 .
- ^ «Команды PowerShell для Active Directory от Quest Software» . Проверено 2 июля 2008 .
- ^ «Удаленное взаимодействие PowerShell через групповую политику» . Проверено 7 декабря 2007 .
- ^ "VMware vSphere PowerCLI" . Проверено 9 сентября 2014 .
- ^ «Windows PowerShell: IIS7 PowerShell Provider Tech Preview 2» . Проверено 3 июля 2008 .
- ^ «Престижность команде диагностики Win7» . Проверено 15 июня 2009 .
- ↑ Майкл, Нихаус (10 июля 2009 г.). «Новая функция MDT 2010 №16: поддержка PowerShell» . Проверено 27 октября 2014 .
- ^ «Престижность NetApp за Data ONTAP PowerShell ToolKit» . Проверено 15 июня 2010 .
- ^ "Объявление о наборе инструментов PowerShell 4.2" . Проверено 7 сентября 2016 .
- ^ «Гетерогенное планирование заданий с помощью PowerShell» . Проверено 15 сентября 2010 .
- ^ «Расширения PowerShell UIAutomation» . Проверено 16 февраля 2012 .
- ^ «EqualLogic HIT-ME с PowerShell» . Проверено 9 марта 2012 .
- ^ de: LOGINventory
- ^ "Расширения Selenium PowerShell" . Проверено 20 августа 2012 .
- ^ a b "Паш" . SourceForge . Dice Holdings, Inc. Retrieved 2011-09-27 .
- ^ «Проект Паш» . Проверено 10 апреля 2013 .
- ^ «Pash теперь устарел · Проблема № 429 · Pash-Project / Pash» . GitHub . Проверено 26 ноября 2019 .
Дальнейшее чтение [ править ]
- Окли, Энди (2005). Монада (также известная как PowerShell) . O'Reilly Media . ISBN 0-596-10009-4.
- Холмс, Ли (2006). Краткий справочник по Windows PowerShell . O'Reilly Media . ISBN 0-596-52813-2.
- Холмс, Ли (2007). Поваренная книга Windows PowerShell . O'Reilly Media . ISBN 978-0-596-52849-2.
- Ватт, Эндрю (2007). Профессиональная оболочка Windows PowerShell . Wrox Press . ISBN 978-0-471-94693-9.
- Кумаравел, Арул; Белый, Джон; Найсин Ли, Майкл; Хаппелл, Скотт; Се, Гохуэй; Вутукури, Кришна К. (2008). Профессиональное программирование Windows PowerShell: оснастки, командлеты, хосты и поставщики . Wrox Press . ISBN 978-0-470-17393-0.
- Копчинский, Тайсон; Хэндли, Пит; Шоу, Марко (2009). Windows PowerShell Unleashed (2-е изд.). Pearson Education . ISBN 978-0-672-32988-3.
- Джонс, Дон; Хикс, Джеффри (2010). Windows PowerShell 2.0: TFM (3-е изд.). Sapien Technologies. ISBN 978-0-9821314-2-8.
- Финке, Дуглас (2012). Windows PowerShell для разработчиков . O'Reilly Media . ISBN 978-1-4493-2270-0.
- Уилсон, Эд (2013). Windows PowerShell 3.0 шаг за шагом . Microsoft Press . ISBN 978-0-7356-6339-8.
- Уилсон, Эд (2014). Рекомендации по Windows PowerShell . Microsoft Press . ISBN 978-0-7356-6649-8.
Внешние ссылки [ править ]
В Викиверситете есть учебные ресурсы о PowerShell |
- Официальный веб-сайт
- PowerShell на GitHub
- Руководство по выживанию Windows PowerShell на TechNet Wiki