Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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 для Linux 6.0 Alpha 9 в Ubuntu 14.04 x64

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]

Количество командлетов обычно увеличивается с каждой версией:

Трубопровод [ править ]

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]

Для обработки ошибок 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 инициализирует создание экземпляра, включая инициализацию поставщиков и перечисление командлетов, и обновляетRunspaceSessionStateSessionStateвозражать соответственно. Затем необходимо открыть пространство выполнения для синхронной или асинхронной обработки. После этого его можно использовать для выполнения команд. [ необходима цитата ]

Чтобы выполнить команду, конвейер (представленный 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 [ править ]

Windows PowerShell ISE v2.0 в Windows 7 , интегрированная среда разработки для сценариев PowerShell.

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 [ править ]

Значок 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, что упрощает работу людей, знакомых с другими распространенными оболочками.

Примечания

  1. ^ Хотя внешняякоманда ping остается доступной для PowerShell, выходные данные Test-Connection представляют собой структурированный объект, который можно проверять программно. [99]
  2. ^ Clear-Host реализован как предопределенная функция PowerShell.
  3. ^ a b Доступно в Windows NT 4 , Windows 98 Resource Kit , Windows 2000 Support Tools
  4. ^ a b Представлено в Windows XP Professional Edition
  5. ^ Также используется в UNIX для отправки процессу любого сигнала , сигнал «Завершить» является просто значением по умолчанию.
  6. ^ curl иwgetпсевдонимы отсутствуют в PowerShell Core, чтобы не мешать вызову собственных команд с похожими именами.

Расширения имен файлов [ править ]

  1. ^ Библиотека динамической компоновки (DLL) не является форматом только для PowerShell. Это общий формат для хранения скомпилированного кода сборки .NET.
  2. ^ XML не является форматом только для PowerShell. Это популярный формат обмена информацией.

Поддержка приложений [ править ]

Альтернативная реализация [ править ]

Проект назван Паши (название каламбур на хорошо известный « Баш » Unix оболочка [127] ) была была с открытым исходным кодом и кросс-платформенным повторным внедрением PowerShell через рамку Mono . Pash был создан Игорем Мучником, написан на C # и выпущен под лицензией GNU General Public License . Разработка Pash застопорилась в 2008 году, [127] была перезапущена на GitHub в 2012 году [128] и окончательно остановлена ​​в 2016 году, когда PowerShell был официально сделан с открытым исходным кодом и кроссплатформенным. [129]

См. Также [ править ]

  • Общая информационная модель
  • Сравнение командных оболочек
  • Сравнение языков программирования
  • Управление предприятием через Интернет
  • Хост сценариев Windows
  • Терминал Windows

Ссылки [ править ]

  1. ^ «PowerShell / PowerShell» . GitHub . Проверено 12 февраля 2021 .
  2. ^ "v7.2.0-preview.3 Release of PowerShell" . Репозиторий GitHub PowerShell . Проверено 12 февраля 2021 .
  3. ^ "PowerShell для любой системы!" . 12 июня 2017 г. - через GitHub.
  4. ^ Snover, Джеффри (25 мая 2008). «PowerShell и WPF: WTF» . Блог Windows PowerShell . Microsoft.
  5. ^ a b c Брайт, Питер (18.08.2016). «PowerShell - это последняя версия Microsoft с открытым исходным кодом, которая появится в Linux, OS X» . Ars Technica . Condé Nast . Архивировано 9 апреля 2020 года . Проверено 12 мая 2020 .
  6. ^ a b c d e «Как работает Windows PowerShell» . Сеть разработчиков Microsoft . Microsoft . Проверено 27 ноября 2007 .
  7. ^ Truher, Джим (декабрь 2007 г.). «Расширение Windows PowerShell с помощью настраиваемых команд» . Журнал MSDN . Microsoft. Архивировано из оригинала 6 октября 2008 года.
  8. Лоу, Скотт (4 января 2007 г.). «Exchange 2007: привыкните к командной строке» . TechRepublic . CBS Interactive . Архивировано 16 ноября 2018 года . Проверено 12 мая 2020 .
  9. ^ Сновер, Джеффри (2007-11-13). "Поддержка SQL Server для PowerShell!" . Блог Windows PowerShell (запись в блоге). Microsoft. Архивировано из оригинала на 2007-11-15 . Проверено 13 ноября 2007 .
  10. ^ Драган, Ричард В. (23 апреля 2003 г.). «Windows Server 2003 обеспечивает повсеместные улучшения» . Отзывы. Журнал ПК . Зифф Дэвис . Отличительной особенностью здесь является то, что практически все административные утилиты теперь работают из командной строки (и большинство из них доступны через telnet).
  11. ^ Биггар и Харбо (2017-09-14). «Человек, стоящий за Windows PowerShell» . Быть непрерывным (подкаст). Heavybit . Проверено 14 сентября 2017 .
  12. ^ Snover, Джеффри (2 августа 2002). «Манифест монады - исток Windows PowerShell» . Блог Windows PowerShell (запись в блоге). Microsoft .
  13. ^ "Windows PowerShell (монада) прибыла" . Блог Windows PowerShell . Microsoft . 25 апреля 2006 г.
  14. ^ Snover, Джеффри (15 ноября 2006). «Windows PowerShell и Windows Vista» . Блог Windows PowerShell (запись в блоге). Microsoft .
  15. ^ «Windows Management Framework (Windows PowerShell 2.0, WinRM 2.0 и BITS 4.0)» . Поддержка . Microsoft . 30 сентября, 2013. Архивировано из оригинального 13 октября 2013 года .
  16. ^ "Что такое надоедливый и почему я должен заботиться?" . 14 декабря 2015.
  17. ^ Snover, Джеффри (18 августа 2016). «PowerShell имеет открытый исходный код и доступен в Linux» . Блог Microsoft Azure . Microsoft .
  18. ^ «PowerShell / PowerShell» . GitHub . Проверено 18 августа 2016 .
  19. ^ Хансен, Кеннет; Кальво, Ангел (18 августа 2016 г.). «PowerShell для Linux и с открытым исходным кодом!» . Блог Windows PowerShell . Microsoft .
  20. Фоли, Мэри Джо (18 августа 2016 г.). «Microsoft Open Source PowerShell; переносит его в Linux и Mac OS X» . ZDNet . CBS Interactive .
  21. ^ a b «PowerShell на сервере Nano Server» . TechNet . Microsoft . 20 октября 2016 г.
  22. ^ Пайетт, Брюс (2007). Windows PowerShell в действии . Серия Manning Pubs Co. Мэннинг. п. 27. ISBN 9781932394900. Проверено 22 июля 2016 . Основной язык PowerShell основан на грамматике POSIX 1003.2 для оболочки Korn .
  23. ^ "about_Command_Precedence" . TechNet . Microsoft . 8 мая 2014 года.
  24. ^ «Система расширенных типов Windows PowerShell» . Проверено 28 ноября 2007 .
  25. ^ a b c «Командлеты Windows PowerShell» . Проверено 28 ноября 2007 .
  26. ^ «Создание вашего первого командлета» . Проверено 28 ноября 2007 .
  27. ^ "Get-Verb" . TechNet . Microsoft . 8 мая 2014 года.
  28. ^ «Обзор командлета» . MSDN . Microsoft . 8 мая 2014 года.
  29. ^ «Добавление параметров, обрабатывающих ввод из командной строки» . Проверено 28 ноября 2007 .
  30. ^ «Добавление параметров, которые обрабатывают входные данные конвейера» . Проверено 28 ноября 2007 .
  31. ^ «Провайдеры Windows PowerShell» . Проверено 14 октября 2010 .
  32. ^ Примечания к выпуску PowerShell V2
  33. ^ Yoshizawa, Tomoaki; Рамос, Дурваль (29 сентября 2012 г.). «Командлеты PowerShell 1.0» . Статьи TechNet . Microsoft.
  34. ^ Yoshizawa, Tomoaki (10 июля 2012). «Командлеты PowerShell 2.0» . Статьи TechNet . Microsoft.
  35. Перейти ↑ 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.
  36. Перейти ↑ 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.
  37. ^ «Руководство пользователя Windows PowerShell: трубопровод и конвейер в Windows PowerShell» . TechNet . Microsoft . Проверено 27 сентября 2011 .
  38. ^ Джонс, Дон (2008). «Windows PowerShell - переосмысление конвейера» . Microsoft TechNet . Microsoft . Проверено 28 ноября 2007 .
  39. ^ «Концепции объектов Windows PowerShell» . Архивировано из оригинального 19 августа 2007 года . Проверено 28 ноября 2007 .
  40. ^ «Как ДЕЙСТВИТЕЛЬНО работает форматирование и вывод PowerShell» . Проверено 28 ноября 2007 .
  41. ^ "Подробнее - Как на самом деле работает форматирование PowerShell?" . Проверено 28 ноября 2007 .
  42. ^ "about_Pipelines" . TechNet . Microsoft . 8 мая 2014 года.
  43. ^ "about_Objects" . TechNet . Microsoft . 8 мая 2014 года.
  44. ^ a b "about_Format.ps1xml" . TechNet . Microsoft . 8 мая 2014 года.
  45. ^ «Анонимные функции и блоки кода в PowerShell» . Проверено 21 января 2012 .
  46. ^ «Введение в переменные Windows PowerShell» . Проверено 28 ноября 2007 .
  47. ^ «Преобразование байтов» . Совет недели по Windows PowerShell . Проверено 15 ноября 2013 года .
  48. ^ Ravikanth (20 мая 2013). «Преобразование в единицы размера (КБ, МБ, ГБ, ТБ и ПБ) без использования множителей PowerShell» . Журнал PowerShell .
  49. ^ a b c "about_Functions" . Microsoft TechNet . Microsoft . 17 октября 2013 . Проверено 15 ноября 2013 года .
  50. ^ a b «Легкое тестирование с помощью Windows PowerShell» . Проверено 28 ноября 2007 .
  51. Ангелопулос, Алекс; Карен, Бемовски (4 декабря 2007 г.). «PowerShell сообразила умные котировки» . Windows для ИТ-специалистов . Пентон Медиа . Проверено 15 ноября 2013 года .
  52. ^ «О специальных символах» . Powershell / Скрипты. Microsoft . 8 июня 2017 года . Проверено 20 июня 2019 года .
  53. ^ "Ловушка [Исключение] {" В PowerShell "}" . Проверено 28 ноября 2007 .
  54. ^ «Запуск сценариев Windows PowerShell» . Проверено 28 ноября 2007 .
  55. ^ "about_Signing" . Microsoft TechNet . Microsoft . 17 октября 2013 . Проверено 15 ноября 2013 года .
  56. ^ Ли Холмс (сентябрь 2006 г.). Краткий справочник по Windows PowerShell . O'Reilly Media.
  57. ^ eslesar. «Обзор конфигурации желаемого состояния Windows PowerShell» . msdn.microsoft.com .
  58. ^ Чанг, Леонард; Сновер, Джеффри; Кумаравел, Арул (14 ноября 2006 г.). «Готово! Выпущена Windows PowerShell 1.0!» . Блог Windows PowerShell . Microsoft .
  59. ^ "PowerShell будет установлен по умолчанию на Windows Server 08 R2 (WS08R2) и Windows 7 (W7)!" . Блог Windows PowerShell . Microsoft . 2008-10-28 . Проверено 27 сентября 2011 .
  60. ^ "Windows Management Framework уже здесь!" . 2009-10-27 . Проверено 30 октября 2009 .
  61. ^ «База знаний службы поддержки Microsoft: Windows Management Framework (Windows PowerShell 2.0, WinRM 2.0 и BITS 4.0)» . Support.microsoft.com. 2011-09-23 . Проверено 27 сентября 2011 .
  62. ^ «574 причины, почему мы так гордимся и оптимистично относимся к W7 и WS08R2» . Блог Windows PowerShell . Microsoft . 2008-10-29 . Проверено 27 сентября 2011 .
  63. ^ Сновер, Джеффри (2008). «PowerShell: создание управляемых веб-служб» . Архивировано из оригинального 13 октября 2008 года . Проверено 19 июля 2015 года .
  64. ^ «Что нового в CTP PowerShell 2.0» . Проверено 28 ноября 2007 .
  65. ^ «Windows PowerShell V2 Community Technology Preview 2 (CTP2) - releaseNotes» . Архивировано из оригинала 6 мая 2008 года . Проверено 5 мая 2008 .
  66. ^ «Различия между PowerShell 1.0 и PowerShell 2.0» . Проверено 26 июня 2010 .
  67. Джонс, Дон (май 2010 г.). «Windows PowerShell: написание командлетов в сценарии» . Журнал TechNet . Microsoft.
  68. ^ «GoGrid Snap-in - Управление облачными службами с помощью PowerShell» . Блог Windows PowerShell . Microsoft . 2008-10-14 . Проверено 27 сентября 2011 .
  69. ^ "Emit-XML" . Блог Windows PowerShell . Microsoft . 2008-10-17 . Проверено 27 сентября 2011 .
  70. ^ «Блокировать комментарии в версии 2» . Блог Windows PowerShell . Microsoft . 2008-06-14 . Проверено 27 сентября 2011 .
  71. Ли, Томас (13 августа 2012 г.). "PowerShell Version 3 - это RTM!" . Под лестницей . Проверено 13 августа 2012 .
  72. ^ a b c «Windows Management Framework 3.0» . Центр загрузок . Microsoft . 4 сентября 2012 . Проверено 8 ноября 2012 .
  73. ^ «Windows Management Framework 3.0 Community Technology Preview (CTP) # 2 доступна для загрузки» . Блог Windows PowerShell . Microsoft . 2 декабря 2011 г.
  74. ^ «Windows Management Framework 3.0» . Центр загрузок . Microsoft . 3 декабря 2012 г.
  75. ^ Jofre, JuanPablo (14 декабря 2016). «Системные требования Windows PowerShell» . Сеть разработчиков Microsoft . Microsoft . Проверено 20 апреля 2017 года .
  76. ^ Ханикатт, Джерри (2012). Вулли, Валери (ред.). Представляем Windows 8: обзор для ИТ-специалистов . Редмонд, Вашингтон: Microsoft Press . ISBN 978-0-7356-7050-1.
  77. ^ «Windows Management Framework 4.0 теперь доступна» . Microsoft . 24 октября 2013 . Проверено 4 ноября 2013 года .
  78. Леви, Шей (25 июня 2013 г.). «Новые возможности Windows PowerShell 4.0» . Журнал PowerShell . Проверено 26 июня 2013 года .
  79. ^ «Требуемая конфигурация состояния в Windows Server 2012 R2 PowerShell» . Канал 9 . Microsoft . 3 июня 2013 . Проверено 26 июня 2013 года .
  80. Холл, Адриан (7 июня 2013 г.). «Мысли от Microsoft TechEd North America» . Блоги: Советы и хитрости . Splunk . Проверено 26 июня 2013 года .
  81. ^ «Пакеты Windows Management Framework (WMF) 5.0 RTM были переизданы» . Блог Windows PowerShell . Microsoft . 24 февраля 2016 г.
  82. ^ «Вопросы и ответы» . GitHub . Проверено 21 апреля 2015 года .
  83. ^ Сновер, Джеффри (2014-04-03). «Предварительная версия Windows Management Framework V5» . blogs.technet.com . Microsoft . Архивировано из оригинала на 2014-06-30 . Проверено 21 апреля 2015 .
  84. ^ говорит Яап Брассер (2 августа 2016 г.). «#PSTip Новые команды PowerShell в юбилейном обновлении Windows 10» .
  85. ^ «Что нового в Windows Server 2016 Standard Edition, часть 9 - Управление и автоматизация» .
  86. ^ "Модуль Microsoft.PowerShell.LocalAccounts" . technet.microsoft.com .
  87. ^ «Анонсирование Windows Management Framework (WMF) 5.1 Preview» .
  88. ^ "WMF 5.1" . Центр загрузки Microsoft .
  89. Перейти ↑ Aiello, Joey (11 января 2018). «PowerShell Core 6.0: общедоступно (GA) и поддерживается!» . Блог группы разработчиков PowerShell . Microsoft. Архивировано 11 июня 2018 года . Проверено 11 июня 2018 .
  90. ^ Айелло, Джоуи; Уилер, Шон (10 января 2018 г.). «Жизненный цикл поддержки PowerShell Core» . Документы Microsoft . Microsoft .
  91. Calvo, Angel (11 января 2018). «10 самых интересных причин для миграции» . PowerShell AMA . Microsoft .
  92. ^ Айелло, Джо (2018-09-13). «Представляем PowerShell Core 6.1» . devblogs.microsoft.com . Microsoft . Проверено 1 июня 2019 .
  93. ^ «PowerShell / PowerShell» . GitHub . Проверено 22 июня 2020 .
  94. ^ a b c Ли, Стив (2019-04-05). «Следующий выпуск PowerShell - PowerShell 7» . Microsoft . Проверено 1 июня 2019 .
  95. ^ Ли, Стив (2019-03-28). «Общедоступность PowerShell Core 6.2» . devblogs.microsoft.com . Microsoft . Проверено 1 июня 2019 .
  96. ^ Mackie, Курт (2019-05-30). «Microsoft выпускает предварительную версию PowerShell 7» . 1105 Media Inc . Проверено 1 июня 2019 .
  97. ^ Ли, Стив (30 мая 2019 г.). «Дорожная карта PowerShell 7» . devblogs.microsoft.com . Microsoft . Проверено 12 августа 2020 .
  98. ^ PowerShell 7, предварительная версия 5 | PowerShell
  99. ^ «Тестовое соединение» . Документация PowerShell . Microsoft . 9 августа 2015.
  100. ^ Tar и Curl приходят в Windows! - Техническое сообщество Microsoft - 382409
  101. Уиллер, Шон (2 июня 2020 г.). «О скриптах» . Документы Microsoft . Microsoft.
  102. ^ Уиллер, Шон; Сматлак, Дэвид; Уилсон, Чейз (16 октября 2019 г.). «Как написать манифест модуля PowerShell» . Документы . Microsoft.
  103. ^ Уиллер, Шон; Сматлак, Давид (22 ноября 2019 г.). «Как написать модуль сценария PowerShell» . Документы Microsoft . Microsoft.
  104. Уиллер, Шон (13 ноября 2016 г.). «Как написать двоичный модуль PowerShell» . Документы Microsoft . Microsoft.
  105. ^ Уиллер, Шон; Хофре, Хуан Пабло; Воробьев, Сергей; Николаев, Кирилл; Коултер, Дэвид (2 июня 2020 г.). "О Types.ps1xml" . Документы Microsoft . Microsoft.
  106. ^ Уиллер, Шон. «Экспорт-Clixml» . Документы Microsoft . Microsoft.
  107. ^ Уиллер, Шон; Хофре, Хуан Пабло; Воробьев, Сергей; Николаев, Кирилл; Коултер, Дэвид. «Экспорт-Консоль» . Документы Microsoft . Microsoft.
  108. Уиллер, Шон (2 июня 2020 г.). «О файлах конфигурации сеанса» . Документы Microsoft . Microsoft.
  109. Уиллер, Шон (2 июня 2020 г.). «New-PSRoleCapabilityFile» . Документы Microsoft . Microsoft.
  110. ^ "Microsoft Transporter Suite для Lotus Domino" . Проверено 7 марта 2008 .
  111. ^ «PowerTools для Open XML» . Проверено 20 июня 2008 .
  112. ^ «MO74: WebSphere MQ - библиотека Windows PowerShell» . Проверено 5 декабря 2007 .
  113. ^ «Параметры командной строки надстроек IoT Core» . Проверено 13 июня 2020 .
  114. ^ «Команды PowerShell для Active Directory от Quest Software» . Проверено 2 июля 2008 .
  115. ^ «Удаленное взаимодействие PowerShell через групповую политику» . Проверено 7 декабря 2007 .
  116. ^ "VMware vSphere PowerCLI" . Проверено 9 сентября 2014 .
  117. ^ «Windows PowerShell: IIS7 PowerShell Provider Tech Preview 2» . Проверено 3 июля 2008 .
  118. ^ «Престижность команде диагностики Win7» . Проверено 15 июня 2009 .
  119. Майкл, Нихаус (10 июля 2009 г.). «Новая функция MDT 2010 №16: поддержка PowerShell» . Проверено 27 октября 2014 .
  120. ^ «Престижность NetApp за Data ONTAP PowerShell ToolKit» . Проверено 15 июня 2010 .
  121. ^ "Объявление о наборе инструментов PowerShell 4.2" . Проверено 7 сентября 2016 .
  122. ^ «Гетерогенное планирование заданий с помощью PowerShell» . Проверено 15 сентября 2010 .
  123. ^ «Расширения PowerShell UIAutomation» . Проверено 16 февраля 2012 .
  124. ^ «EqualLogic HIT-ME с PowerShell» . Проверено 9 марта 2012 .
  125. ^ de: LOGINventory
  126. ^ "Расширения Selenium PowerShell" . Проверено 20 августа 2012 .
  127. ^ a b "Паш" . SourceForge . Dice Holdings, Inc. Retrieved 2011-09-27 .
  128. ^ «Проект Паш» . Проверено 10 апреля 2013 .
  129. ^ «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 на GitHub
  • Руководство по выживанию Windows PowerShell на TechNet Wiki