stringtranslate.com

PowerShell

PowerShell — это программа автоматизации задач и управления конфигурацией от Microsoft , состоящая из командной строки и связанного языка сценариев . Первоначально являясь компонентом только Windows, известным как Windows PowerShell , он стал кроссплатформенным и открытым 18 августа 2016 года с появлением PowerShell Core . [4] Первый основан на .NET Framework , второй — на .NET (ранее .NET Core).

PowerShell входит в комплект всех поддерживаемых в настоящее время версий Windows , а также может быть установлен на MacOS и Linux . [4] Начиная с Windows 10 сборки 14971, PowerShell заменил командную строку (cmd.exe) и стал командной оболочкой по умолчанию для Проводника . [5] [6]

В PowerShell административные задачи обычно выполняются с помощью командлетов (произносится как command-lets ), которые являются специализированными классами .NET , реализующими определенную операцию. Они работают, получая доступ к данным в различных хранилищах данных, таких как файловая система или реестр Windows , которые предоставляются PowerShell через поставщиков . Сторонние разработчики могут добавлять командлеты и поставщиков в PowerShell. [7] [8] Командлеты могут использоваться скриптами, которые в свою очередь могут быть упакованы в модули. Командлеты работают в тандеме с API .NET .

Поддержка PowerShell для .NET Remoting , WS-Management , CIM и SSH позволяет администраторам выполнять административные задачи как на локальных, так и на удаленных системах Windows. PowerShell также предоставляет API хостинга , с помощью которого среда выполнения PowerShell может быть встроена в другие приложения. Затем эти приложения могут использовать функциональность PowerShell для реализации определенных операций, включая те, которые предоставляются через графический интерфейс . Эта возможность использовалась Microsoft Exchange Server 2007 для предоставления своей функциональности управления в виде командлетов и поставщиков PowerShell и реализации графических инструментов управления в виде хостов PowerShell, которые вызывают необходимые командлеты. [7] [9] Другие приложения Microsoft, включая Microsoft SQL Server 2008, также предоставляют свой интерфейс управления через командлеты PowerShell. [10]

PowerShell включает в себя собственную обширную консольную справку (похожую на man-страницы в оболочках Unix ), доступную через Get-Helpкомандлет. Обновленное содержимое локальной справки можно получить из Интернета через командлет Update-Help. В качестве альтернативы справку из Интернета можно получать в каждом конкретном случае, переключившись -onlineна Get-Help.

Фон

Интерпретатор командной строки (CLI) был неотъемлемой частью большинства операционных систем Microsoft . MS-DOS и Xenix полагались почти исключительно на CLI (хотя MS-DOS 5 также поставлялась с дополнительной графической оболочкой DOS Shell .) Семейство Windows 9x поставлялось в комплекте с COMMAND.COM , средой командной строки MS-DOS. Однако семейства Windows NT и Windows CE поставлялись с новым cmd.exe , который имел сильное сходство с COMMAND.COM. Обе среды поддерживают несколько основных внутренних команд и примитивный язык сценариев ( пакетные файлы ), который можно использовать для автоматизации различных задач. Однако они не могут автоматизировать все аспекты графического пользовательского интерфейса Windows (GUI), поскольку эквиваленты операций в командной строке ограничены, а язык сценариев является элементарным.

Microsoft попыталась устранить некоторые из этих недостатков, представив Windows Script Host в 1998 году с Windows 98 и его хост на основе командной строки, cscript.exe. Он интегрируется с движком Active Script и позволяет писать скрипты на совместимых языках, таких как JScript и VBScript , используя API, предоставляемые приложениями через компонентную объектную модель ( COM ). Его недостатки: его документация не очень доступна, и он быстро приобрел репутацию вектора уязвимости системы после того, как несколько известных компьютерных вирусов использовали слабости в его положениях безопасности. Различные версии Windows предоставляли различные специализированные интерпретаторы командной строки (такие как netsh и WMIC ) со своими собственными наборами команд, но они не были совместимы. Windows Server 2003 далее пытался улучшить опыт командной строки, но поддержка скриптов все еще была неудовлетворительной. [11]

Кермит

К концу 1990-х годов Intel обратилась к Microsoft с просьбой помочь сделать Windows, работающую на процессорах Intel, более подходящей платформой для поддержки разработки будущих процессоров Intel. В то время разработка процессоров Intel осуществлялась на компьютерах Sun Microsystems , работающих под управлением Solaris ( вариант Unix ) на процессорах с архитектурой RISC . Возможность запуска множества скриптов автоматизации KornShell от Intel на Windows была определена как ключевая возможность. Внутри компании Microsoft началась работа по созданию порта Korn Shell для Windows, который носил кодовое название Kermit. [12] В конечном итоге Intel перешла на платформу разработки на основе Linux , которая могла работать на процессорах Intel, что сделало проект Kermit излишним. Однако, имея полностью финансируемую команду, менеджер программы Microsoft Джеффри Сновер понял, что есть возможность создать более универсальное решение проблемы административной автоматизации Microsoft.

Монада

К 2002 году Microsoft начала разрабатывать новый подход к управлению командной строкой, включая CLI под названием Monad (также известный как Microsoft Shell или MSH). Идеи, лежащие в его основе, были опубликованы в августе 2002 года в официальном документе под названием «Манифест монад» его главным архитектором Джеффри Сновером . [13] В интервью 2017 года Сновер объясняет происхождение PowerShell, говоря, что он пытался сделать инструменты Unix доступными в Windows, что не сработало из-за « основных архитектурных различий между Windows и Linux ». В частности, он отметил, что Linux рассматривает все как текстовый файл , тогда как Windows рассматривает все как « API, возвращающий структурированные данные». Они были принципиально несовместимы, что заставило его использовать другой подход. [14]

Monad должен был стать новым расширяемым CLI со свежим дизайном, способным автоматизировать ряд основных административных задач. Microsoft впервые публично продемонстрировала Monad на конференции Professional Development Conference в Лос-Анджелесе в октябре 2003 года. Несколько месяцев спустя они открыли закрытую бета-версию, которая в конечном итоге привела к публичной бета-версии. Microsoft опубликовала первую публичную бета-версию Monad 17 июня 2005 года, Beta 2 — 11 сентября 2005 года, а Beta 3 — 10 января 2006 года.

PowerShell

Первая версия PowerShell

25 апреля 2006 года, вскоре после первоначального объявления Monad, Microsoft объявила, что Monad был переименован в Windows PowerShell , позиционируя его как значительную часть своих предложений по технологиям управления. [15] Release Candidate (RC) 1 PowerShell был выпущен в то же время. Важным аспектом как смены названия, так и RC было то, что теперь это был компонент Windows, а не просто надстройка.

Release Candidate 2 PowerShell версии 1 был выпущен 26 сентября 2006 года, а окончательный релиз в Интернете состоялся 14 ноября 2006 года. PowerShell для более ранних версий Windows был выпущен 30 января 2007 года. [16] Разработка 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-разрядных платформ. [17] В выпуске журнала TechNet Magazine за октябрь 2009 года компания Microsoft назвала владение PowerShell «единственным наиболее важным навыком, который понадобится администратору Windows в ближайшие годы». [18]

Windows 10 поставляется с Pester, набором для проверки скриптов для PowerShell. [19]

PowerShell для Linux 7.3.1 на Ubuntu 22.10

18 августа 2016 года Microsoft объявила [20] , что они сделали PowerShell открытым исходным кодом и кроссплатформенным с поддержкой Windows, macOS , CentOS и Ubuntu . [4] Исходный код был опубликован на GitHub . [21] Переход к открытому исходному коду создал второе воплощение PowerShell под названием «PowerShell Core», которое работает на .NET Core . Оно отличается от «Windows PowerShell», которое работает на полной платформе .NET Framework . [22] Начиная с версии 5.1, PowerShell Core поставляется в комплекте с Windows Server 2016 Nano Server . [23] [24]

Дизайн

Ключевой тактикой проектирования PowerShell было использование большого количества API , которые уже существовали в Windows, Windows Management Instrumentation, .NET Framework и другом программном обеспечении. Командлеты PowerShell «оборачивались» вокруг существующей функциональности. Цель этой тактики — предоставить удобный для администратора, более согласованный интерфейс между администраторами и широким спектром базовых функций. С PowerShell администратору не нужно знать .NET, WMI или низкоуровневое кодирование API, и вместо этого он может сосредоточиться на использовании командлетов, предоставляемых PowerShell. В этом отношении PowerShell создает мало новых функций, вместо этого сосредотачиваясь на том, чтобы сделать существующие функции более доступными для определенной аудитории. [25]

Грамматика

Разработчики PowerShell основали базовую грамматику инструмента на POSIX 1003.2 KornShell . [26]

Однако на язык PowerShell также оказали влияние PHP , Perl и многие другие существующие языки. [27]

Именованные команды

Windows PowerShell может выполнять четыре вида именованных команд: [28]

Если команда является автономной исполняемой программой, PowerShell запускает ее в отдельном процессе ; если это командлет, он выполняется в процессе PowerShell. PowerShell предоставляет интерактивный интерфейс командной строки , в котором можно вводить команды и отображать их вывод. Пользовательский интерфейс предлагает настраиваемое автодополнение клавишей Tab . PowerShell позволяет создавать псевдонимы для командлетов, которые PowerShell текстово транслирует в вызовы исходных команд. PowerShell поддерживает как именованные , так и позиционные параметры для команд. При выполнении командлета работа по привязке значения аргумента к параметру выполняется самим PowerShell, но для внешних исполняемых файлов аргументы анализируются внешним исполняемым файлом независимо от интерпретации PowerShell. [29]

Расширенная система типов

PowerShell Extended Type System ( ETS ) основана на системе типов .NET, но с расширенной семантикой (например, propertySets и сторонняя расширяемость). Например, она позволяет создавать различные представления объектов, предоставляя только подмножество полей данных, свойств и методов, а также указывая пользовательское форматирование и поведение сортировки. Эти представления сопоставляются с исходным объектом с помощью файлов конфигурации на основе XML . [30]

Командлеты

Командлеты — это специализированные команды в среде PowerShell, которые реализуют определенные функции. Это собственные команды в стеке PowerShell. Командлеты следуют шаблону именования Глагол - Существительное , например Get-ChildItem , что делает его самодокументируемым кодом . [31] Командлеты выводят свои результаты в виде объектов, а также могут получать объекты в качестве входных данных, что делает их пригодными для использования в качестве получателей в конвейере. Если командлет выводит несколько объектов, каждый объект в коллекции передается вниз по всему конвейеру до обработки следующего объекта. [31]

Командлеты — это специализированные классы .NET, которые среда выполнения PowerShell создает и вызывает во время выполнения . Командлеты происходят либо от , Cmdletлибо от PSCmdlet, причем последний используется, когда командлету необходимо взаимодействовать со средой выполнения PowerShell. [31] Эти базовые классы определяют определенные методы — BeginProcessing(), ProcessRecord()и EndProcessing()— , которые реализация командлета переопределяет для предоставления функциональности. Всякий раз, когда запускается командлет, PowerShell вызывает эти методы последовательно, причем ProcessRecord()вызывается, если он получает входные данные конвейера. [32] Если передается коллекция объектов, метод вызывается для каждого объекта в коллекции. Класс, реализующий командлет, должен иметь один атрибут .NET — CmdletAttribute— , который указывает глагол и существительное, составляющие имя командлета. Общие глаголы предоставляются в виде перечисления . [ 33] [34]

Если командлет получает либо входные данные конвейера, либо входные данные параметра командной строки, в классе должно быть соответствующее свойство с реализацией мутатора . PowerShell вызывает мутатор со значением параметра или входными данными конвейера, которые сохраняются реализацией мутатора в переменных класса. Затем на эти значения ссылаются методы, реализующие функциональность. Свойства, которые сопоставляются с параметрами командной строки, отмечены ParameterAttribute[35] и устанавливаются перед вызовом BeginProcessing(). Те, которые сопоставляются с входными данными конвейера, также окружены ParameterAttribute, но с ValueFromPipelineустановленным параметром атрибута. [36]

Реализация этих классов командлетов может ссылаться на любой API .NET и может быть на любом языке .NET . Кроме того, PowerShell делает доступными определенные API, такие как , который используется для доступа к специфичным для PowerShell функциям, таким как запись результирующих объектов в конвейер. Командлеты могут напрямую использовать API доступа к данным .NET или использовать инфраструктуру PowerShell поставщиков PowerShell , которые делают хранилища данных адресуемыми с использованием уникальных путей . Хранилища данных предоставляются с использованием букв дисков и иерархий внутри них, адресуемых как каталоги. Windows PowerShell поставляется с поставщиками для файловой системы , реестра , хранилища сертификатов , а также пространств имен для псевдонимов команд, переменных и функций. [37] Windows PowerShell также включает различные командлеты для управления различными системами Windows , включая файловую систему , или с использованием инструментария управления Windows для управления компонентами Windows . Другие приложения могут регистрировать командлеты с помощью PowerShell, тем самым позволяя ему управлять ими, и, если они включают в себя какое-либо хранилище данных (например, базу данных), они также могут добавлять определенных поставщиков. [ необходима цитата ]WriteObject()

Количество командлетов, включенных в базовую установку PowerShell, в целом увеличивается с каждой версией:

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

Трубопровод

PowerShell реализует концепцию конвейера , которая позволяет передавать выходные данные одного командлета другому командлету в качестве входных данных. Как и конвейеры Unix , конвейеры PowerShell могут создавать сложные команды, используя |оператор для соединения этапов. Однако конвейер PowerShell отличается от конвейеров Unix тем, что этапы выполняются в среде выполнения PowerShell, а не как набор процессов, координируемых операционной системой . Кроме того, структурированные объекты .NET, а не потоки байтов , передаются с одного этапа на другой. Использование объектов и выполнение этапов в среде выполнения PowerShell устраняет необходимость сериализации структур данных или их извлечения путем явного анализа текстового вывода. [42] Объект также может инкапсулировать определенные функции, которые работают с содержащимися данными, которые становятся доступными для использования командой-получателем. [43] [44] Для последнего командлета в конвейере PowerShell автоматически передает свой выходной объект командлету Out-Default, который преобразует объекты в поток объектов формата, а затем отображает их на экране. [45] [46]

Поскольку все объекты PowerShell являются объектами .NET, они совместно используют .ToString()метод, который извлекает текстовое представление данных в объекте. Кроме того, PowerShell позволяет указывать определения форматирования, поэтому текстовое представление объектов можно настраивать, выбирая, какие элементы данных отображать и каким образом. Однако для поддержания обратной совместимости , если внешний исполняемый файл используется в конвейере, он получает текстовый поток, представляющий объект, вместо прямой интеграции с системой типов PowerShell. [47] [48] [49]

Скриптинг

Windows PowerShell включает динамически типизированный язык сценариев , который может реализовывать сложные операции с использованием командлетов императивно . Язык сценариев поддерживает переменные, функции, ветвление ( if-then-else), циклы ( while, do, for, и foreach), структурированную обработку ошибок/исключений и замыкания / лямбда-выражения [50] , а также интеграцию с .NET. Переменные в сценариях PowerShell имеют префикс $. Переменным можно присваивать любое значение, включая вывод командлетов. Строки можно заключать как в одинарные, так и в двойные кавычки: при использовании двойных кавычек переменные будут расширяться, даже если они находятся внутри кавычек. Заключение пути к файлу в фигурные скобки с предшествующим знаком доллара (как в ${C:\foo.txt}) создает ссылку на содержимое файла. Если он используется как L-значение , все, что ему назначено, будет записано в файл. При использовании как R-значение , содержимое файла будет прочитано. Если назначен объект, он сериализуется перед сохранением. [ необходима ссылка ]

Доступ к членам объекта можно получить с помощью .нотации, как в синтаксисе C#. PowerShell предоставляет специальные переменные, такие как $args, которая является массивом всех аргументов командной строки, переданных функции из командной строки, и $_, которая ссылается на текущий объект в конвейере. [51] PowerShell также предоставляет массивы и ассоциативные массивы . Язык сценариев PowerShell также немедленно оценивает арифметические выражения, введенные в командной строке, и анализирует общие сокращения, такие как ГБ, МБ и КБ. [52] [53]

Используя functionключевое слово PowerShell обеспечивает создание функций. Простая функция имеет следующий общий вид: [54]

 имя  функции ( [Тип] $Param1 ,  [Тип] $Param2 )  {  # Инструкции }

Однако PowerShell допускает расширенные функции, которые поддерживают именованные параметры, позиционные параметры, параметры переключения и динамические параметры. [54]

функция  Глагол-Существительное  { параметр  ( # Определение статических параметров ) динамическийпараметр  { # Определение динамических параметров } начинать  { # Набор инструкций для запуска в начале конвейера } процесс  { # Основные наборы инструкций, выполняемые для каждого элемента в конвейере } конец  { # Набор инструкций для запуска в конце конвейера }}

Определенная функция вызывается в одной из следующих форм: [54]

имя  значение1  значение2 Глагол-Существительное  -Парам1  значение1  -Парам2  значение2

PowerShell позволяет вызывать любые статические методы .NET, указав их пространства имен, заключенные в скобки ( []), а затем используя пару двоеточий ( ::) для указания статического метода. [55] Например:

[Консоль] :: WriteLine ( "PowerShell" )

Существуют десятки способов создания объектов в PowerShell. После создания можно получить доступ к свойствам и методам экземпляра объекта, используя .нотацию. [55]

PowerShell принимает строки , как необработанные, так и экранированные . Строка, заключенная в одинарные кавычки, является необработанной строкой, а строка, заключенная в двойные кавычки, является экранированной строкой. PowerShell рассматривает прямые и фигурные кавычки как эквивалентные. [56]

PowerShell поддерживает следующий список специальных символов: [57]

Для обработки ошибок PowerShell предоставляет механизм обработки исключений на основе .NET . В случае ошибок Exceptionвыбрасываются объекты, содержащие информацию об ошибке (объект), которые перехватываются с помощью try ... catchконструкции (хотя trapконструкция также поддерживается). PowerShell можно настроить на молчаливое возобновление выполнения, без фактического выбрасывания исключения; это можно сделать либо в одной команде, в одном сеансе, либо постоянно. [58]

Скрипты, написанные с использованием PowerShell, могут сохраняться между сеансами в .ps1файле или .psm1файле (последний используется для реализации модуля). Позже можно использовать либо весь скрипт, либо отдельные функции в скрипте. Скрипты и функции работают аналогично командлетам, в том смысле, что их можно использовать как команды в конвейерах, а параметры можно привязывать к ним. Объекты конвейера можно передавать между функциями, скриптами и командлетами бесшовно. Чтобы предотвратить непреднамеренный запуск скриптов, выполнение скрипта по умолчанию отключено и должно быть включено явно. [59] Включение скриптов может выполняться на уровне системы, пользователя или сеанса. Скрипты PowerShell могут быть подписаны для проверки их целостности и подлежат Code Access Security . [60]

Язык сценариев PowerShell поддерживает двоичную префиксную нотацию, похожую на научную нотацию, поддерживаемую многими языками программирования семейства C. [61]

Хостинг

Можно также использовать PowerShell, встроенный в приложение управления, которое использует среду выполнения PowerShell для реализации функциональности управления. Для этого PowerShell предоставляет управляемый API хостинга . С помощью API приложение может создать экземпляр пространства выполнения (один экземпляр среды выполнения PowerShell), который запускается в процессе приложения и отображается как Runspaceобъект. [7] Состояние пространства выполнения заключено в SessionStateобъект. Когда создается пространство выполнения, среда выполнения Windows PowerShell инициализирует экземпляр, включая инициализацию поставщиков и перечисление командлетов, и обновляет объект SessionStateсоответствующим образом. Затем пространство выполнения должно быть открыто либо для синхронной обработки, либо для асинхронной обработки. После этого его можно использовать для выполнения команд. [ необходима цитата ]

Для выполнения команды Pipelineнеобходимо создать конвейер (представленный объектом) и связать его с пространством выполнения. Затем объект конвейера заполняется командлетами, составляющими конвейер. Для последовательных операций (как в скрипте PowerShell) для каждого оператора создается объект Pipeline, который вкладывается в другой объект Pipeline. [7] Когда создается конвейер, Windows PowerShell вызывает процессор конвейера, который преобразует командлеты в соответствующие сборки ( командный процессор ), добавляет ссылку на них в конвейер и связывает их с объектами InputPipe, OutputPipeи ErrorOutputPipe, чтобы представить соединение с конвейером. Типы проверяются, а параметры привязываются с помощью отражения . [7] После настройки конвейера хост вызывает Invoke()метод для запуска команд или его асинхронный эквивалент . InvokeAsync()Если Write-Hostв конце конвейера есть командлет, он выводит результат на экран консоли. Если нет, результаты передаются хосту, который может либо применить дальнейшую обработку, либо отобразить сам вывод. [ требуется цитата ]

Microsoft Exchange Server 2007 использует API хостинга для предоставления своего графического интерфейса управления. Каждая операция, представленная в графическом интерфейсе, сопоставляется с последовательностью команд PowerShell (или конвейеров). Хост создает конвейер и выполняет их. Фактически, сама интерактивная консоль PowerShell является хостом PowerShell, который интерпретирует скрипты, введенные в командной строке, создает необходимые Pipelineобъекты и вызывает их. [ необходима цитата ]

Конфигурация желаемого состояния

DSC позволяет декларативно указать, как должна быть настроена программная среда. [62]

При запуске конфигурации DSC гарантирует, что система получит состояние, описанное в конфигурации. Конфигурации DSC являются идемпотентными. Локальный менеджер конфигурации (LCM) периодически опрашивает систему, используя поток управления, описанный ресурсами (императивные части DSC), чтобы убедиться, что состояние конфигурации поддерживается.

Версии

Первоначально использовавший кодовое имя «Monad», PowerShell был впервые представлен публике на конференции Professional Developers Conference в октябре 2003 года в Лос-Анджелесе. Все основные выпуски по-прежнему поддерживаются, и каждый основной выпуск имеет обратную совместимость с предыдущими версиями.

Windows PowerShell 1.0

Сеанс Windows PowerShell 1.0 с использованием консоли Windows

PowerShell 1.0 был выпущен в ноябре 2006 года для Windows XP SP2 , Windows Server 2003 SP1 и Windows Vista . [63] Это необязательный компонент Windows Server 2008 .

Windows PowerShell 2.0

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

PowerShell 2.0 интегрирован с Windows 7 и Windows Server 2008 R2 [64] и выпущен для Windows XP с пакетом обновления 3, Windows Server 2003 с пакетом обновления 2 и Windows Vista с пакетом обновления 1. [65] [66]

PowerShell v2 включает изменения в языке сценариев и API хостинга, а также включает более 240 новых командлетов. [67] [68]

Новые возможности PowerShell 2.0 включают: [69] [70] [71]

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. [76] [77]

PowerShell 3.0 является частью более крупного пакета Windows Management Framework 3.0 (WMF3), который также содержит службу WinRM для поддержки удаленного взаимодействия. [77] Microsoft выпустила несколько выпусков Community Technology Preview WMF3. Ранняя версия Community Technology Preview 2 (CTP 2) Windows Management Framework 3.0 была выпущена 2 декабря 2011 года. [78] Windows Management Framework 3.0 был выпущен для широкой публики в декабре 2012 года [79] и включен в Windows 8 и Windows Server 2012 по умолчанию. [80]

Новые возможности PowerShell 3.0 включают: [77] [81] : 33–34 

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. [ 82]

Новые возможности PowerShell 4.0 включают:

Windows PowerShell 5.0

Значок PowerShell 5.0

Windows Management Framework (WMF) 5.0 RTM, включающая PowerShell 5.0, была повторно выпущена в Интернете 24 февраля 2016 года после первоначального выпуска с серьезной ошибкой. [86]

Основные характеристики включают:

Windows PowerShell 5.1

Он был выпущен вместе с Windows 10 Anniversary Update [89] 2 августа 2016 года и в Windows Server 2016. [ 90] PackageManagement теперь поддерживает прокси, PSReadLine теперь имеет поддержку ViMode, а также были добавлены два новых командлета: Get-TimeZone и Set-TimeZone. Модуль LocalAccounts позволяет добавлять/удалять локальные учетные записи пользователей. [91] Предварительная версия PowerShell 5.1 была выпущена для Windows 7, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012 и Windows Server 2012 R2 16 июля 2016 года [92] и была выпущена 19 января 2017 года. [93]

PowerShell 5.1 — первая версия, представленная в двух редакциях «Desktop» и «Core». Редакция «Desktop» является продолжением традиционной Windows PowerShell, работающей на стеке .NET Framework. Редакция «Core» работает на .NET Core и поставляется в комплекте с Windows Server 2016 Nano Server. В обмен на меньший размер в последней отсутствуют некоторые функции, такие как командлеты для управления буфером обмена или присоединения компьютера к домену, командлеты WMI версии 1, командлеты журнала событий и профили. [24] Это была последняя версия PowerShell, созданная исключительно для Windows. Windows PowerShell 5.1 остается предустановленной в Windows 10, Windows 11 и Windows Server 2022, в то время как .NET PowerShell необходимо устанавливать отдельно, и она может работать параллельно с Windows PowerShell. [94] [95]

PowerShell Core 6

PowerShell Core 6.0 был впервые анонсирован 18 августа 2016 года, когда Microsoft представила PowerShell Core и свое решение сделать продукт кроссплатформенным , независимым от Windows, бесплатным и с открытым исходным кодом. [4] Он стал общедоступным 10 января 2018 года для Windows, macOS и Linux . [96] Он имеет свой собственный жизненный цикл поддержки и придерживается политики жизненного цикла Microsoft, введенной в Windows 10: поддерживается только последняя версия PowerShell Core. Microsoft планирует выпускать одну второстепенную версию для PowerShell Core 6.0 каждые шесть месяцев. [97]

Самым значительным изменением в этой версии PowerShell является расширение на другие платформы. Для администраторов Windows эта версия PowerShell не включала никаких крупных новых функций. В интервью с сообществом 11 января 2018 года команду PowerShell попросили перечислить 10 самых захватывающих вещей, которые произойдут для ИТ-специалиста Windows, который перейдет с Windows PowerShell 5.1 на PowerShell Core 6.0; в ответ Энджел Кальво из Microsoft смог назвать только две: кроссплатформенность и открытый исходный код. [98] PowerShell 6 изменил кодировку на UTF-8 в качестве кодировки по умолчанию, за некоторыми исключениями. [99] (PowerShell 7.4 больше меняет на UTF-8) [100]

6.1

По данным Microsoft, одной из новых функций PowerShell 6.1 является «Совместимость с более чем 1900 существующими командлетами в Windows 10 и Windows Server 2019 ». [101] Тем не менее, никаких подробностей об этих командлетах в полной версии журнала изменений найти нельзя. [102] Позже Microsoft заявляет, что этого числа было недостаточно, поскольку PowerShell Core не смог заменить Windows PowerShell 5.1 и завоевать популярность в Windows. [103] Однако он был популярен в Linux. [103]

6.2

PowerShell Core 6.2 в первую очередь ориентирован на улучшение производительности, исправление ошибок, а также на небольшие улучшения командлетов и языка, которые повысили производительность разработчиков. [104]

PowerShell7

PowerShell 7 является заменой продуктов PowerShell Core 6.x, а также Windows PowerShell 5.1, которая является последней поддерживаемой версией Windows PowerShell. [105] [103] Основное внимание при разработке было уделено тому, чтобы сделать PowerShell 7 жизнеспособной заменой Windows PowerShell 5.1, то есть иметь почти такой же уровень совместимости с модулями, которые поставляются с Windows. [106]

Новые функции PowerShell 7 включают: [107]

PowerShell 7.2

PowerShell 7.2 — это следующая версия PowerShell с долгосрочной поддержкой после версии 7.0. Она использует .NET 6.0 и включает универсальные установочные пакеты для Linux. В Windows обновления PowerShell 7.2 и более поздних версий поступают через службу Microsoft Update ; эта функция отсутствовала в PowerShell 6.0 по 7.1. [108]

PowerShell 7.3

Эта версия включает в себя некоторые общие обновления и исправления командлетов, тестирование пакетов, зависящих от фреймворка, в конвейере выпуска, а также улучшения сборки и упаковки. [109]

PowerShell 7.4

PowerShell 7.4 основан на .NET 8. И с этим выпуском веб-командлеты по умолчанию используют кодировку UTF-8 (изменяя ASCII -надмножество Windows-1252, также известное как ISO-8859-1 , которое не поддерживает Unicode ). [110] [100] Ранее UTF-8 использовалось по умолчанию для других, но не для всех вещей.

Сравнение командлетов с аналогичными командами

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

Примечания

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

Расширения имени файла

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

Поддержка приложений

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

Проект под названием Pash , игра слов на широко известном " bash " Unix shell, был кроссплатформенной реализацией PowerShell с открытым исходным кодом через фреймворк Mono . [139] Pash был создан Игорем Мучником, написан на C# и выпущен под лицензией GNU General Public License . Разработка Pash застопорилась в 2008 году, была возобновлена ​​на GitHub в 2012 году, [140] и окончательно прекращена в 2016 году, когда PowerShell был официально сделан кроссплатформенным и открытым исходным кодом. [141]

Смотрите также

Ссылки

  1. ^ "Выпуск v7.4.5 PowerShell". Репозиторий PowerShell/PowerShell . Microsoft . Получено 27 августа 2024 г. – через GitHub.com .
  2. ^ «PowerShell для каждой системы!». 12 июня 2017 г. – через GitHub.com .
  3. ^ Сновер, Джеффри (25 мая 2008 г.). "PowerShell и WPF: WTF". Блог Windows PowerShell . Microsoft.
  4. ^ abcd Брайт, Питер (18 августа 2016 г.). «PowerShell — новейший релиз Microsoft с открытым исходным кодом, который выйдет в Linux и OS X». Ars Technica . Condé Nast . Архивировано из оригинала 9 апреля 2020 г. . Получено 12 мая 2020 г. .
  5. ^ «Анонсируем сборку Windows 10 Insider Preview Build 14971 для ПК».
  6. ^ «PowerShell заменяет командную строку».
  7. ^ abcde "powershell" . Получено 13 марта 2023 г. .
  8. ^ Truher, Jim (декабрь 2007 г.). «Расширение Windows PowerShell с помощью пользовательских команд». Журнал MSDN . Microsoft. Архивировано из оригинала 6 октября 2008 г.
  9. ^ Лоу, Скотт (4 января 2007 г.). «Exchange 2007: привыкаем к командной строке». TechRepublic . CBS Interactive . Архивировано из оригинала 16 ноября 2018 г. . Получено 12 мая 2020 г. .
  10. Snover, Jeffrey (13 ноября 2007 г.). «Поддержка SQL Server для PowerShell!». Блог Windows PowerShell (запись в блоге). Microsoft. Архивировано из оригинала 15 ноября 2007 г. . Получено 13 ноября 2007 г. .
  11. ^ Dragan, Richard V. (23 апреля 2003 г.). «Windows Server 2003 обеспечивает всесторонние улучшения». PCMag.com . Ziff Davis . Отличительной особенностью здесь является то, что практически все утилиты администрирования теперь работают из командной строки (и большинство из них доступны через telnet).
  12. ^ Джонс, Дон (2020). Оболочка идеи: нерассказанная история PowerShell . Дон Гэннон-Джонс. стр. 25. ISBN 978-1-9536450-3-6.
  13. ^ Джеффри П. Сновер (8 августа 2002 г.). «Манифест монады» (PDF) . Блог Windows PowerShell . Microsoft . Получено 2 апреля 2021 г. .
  14. Biggar and Harbaugh (14 сентября 2017 г.). «Человек, стоящий за Windows PowerShell». To Be Continuous (подкаст). Heavybit . Получено 14 сентября 2017 г. .
  15. ^ "Windows PowerShell (Monad) прибыл". Блог Windows PowerShell . Microsoft . 25 апреля 2006 г.
  16. ^ Сновер, Джеффри (15 ноября 2006 г.). «Windows PowerShell и Windows Vista». Блог Windows PowerShell (запись в блоге). Microsoft .
  17. ^ "Windows Management Framework (Windows PowerShell 2.0, WinRM 2.0 и BITS 4.0)". Поддержка . Microsoft . 30 сентября 2013 г. Архивировано из оригинала 13 октября 2013 г.
  18. Posey, Brien (6 октября 2009 г.). «10 причин, по которым вам следует научиться использовать PowerShell». TechRepublic . Получено 2 апреля 2021 г.
  19. ^ «Что такое Pester и почему меня это должно волновать?». 14 декабря 2015 г.
  20. ^ Сновер, Джеффри (18 августа 2016 г.). «PowerShell имеет открытый исходный код и доступен на Linux». Блог Microsoft Azure . Microsoft .
  21. ^ "PowerShell/PowerShell". GitHub . Получено 18 августа 2016 г. .
  22. ^ Хансен, Кеннет; Кальво, Энджел (18 августа 2016 г.). «PowerShell на Linux и с открытым исходным кодом!». Блог Windows PowerShell . Microsoft .
  23. ^ Фоли, Мэри Джо (18 августа 2016 г.). «Microsoft открывает исходные коды PowerShell; переносит его в Linux и Mac OS X». ZDNet . CBS Interactive .
  24. ^ ab "PowerShell на Nano Server". TechNet . Microsoft . 20 октября 2016 г.
  25. ^ Джонс, Дон (2020). Оболочка идеи: нерассказанная история PowerShell . Дон Гэннон-Джонс. стр. 45. ISBN 978-1-9536450-3-6.
  26. ^ Payette, Bruce (2008). Windows PowerShell в действии. Manning Pubs Co Series. Manning. стр. 27. ISBN 9781932394900. Получено 22 июля 2016 г. . Основной язык PowerShell основан на грамматике POSIX 1003.2 для оболочки Korn .
  27. ^ Джонс, Дон (2020). Оболочка идеи: нерассказанная история PowerShell . Дон Гэннон-Джонс. стр. 109. ISBN 978-1-9536450-3-6.
  28. ^ "about_Command_Precedence". TechNet . Microsoft . 8 мая 2014 г.
  29. ^ Уилер, Шон (7 сентября 2021 г.). "about Parsing - PowerShell". Microsoft Docs . Получено 5 декабря 2021 г. .
  30. ^ "Windows PowerShell Extended Type System" . Получено 28 ноября 2007 г. .
  31. ^ abc "Windows PowerShell Cmdlets" . Получено 28 ноября 2007 г. .
  32. ^ "Создание вашего первого командлета" . Получено 28 ноября 2007 г.
  33. ^ "Get-Verb". TechNet . Microsoft . 8 мая 2014 г.
  34. ^ "Обзор командлета". MSDN . Microsoft . 8 мая 2014 г.
  35. ^ "Добавление параметров, обрабатывающих ввод командной строки" . Получено 28 ноября 2007 г. .
  36. ^ "Добавление параметров, обрабатывающих входные данные конвейера" . Получено 28 ноября 2007 г. .
  37. ^ "Поставщики Windows PowerShell" . Получено 14 октября 2010 г.
  38. ^ Ёсидзава, Томоаки; Рамос, Дурвал (29 сентября 2012 г.). "PowerShell 1.0 Cmdlets". Статьи TechNet . Microsoft.
  39. ^ Ёсидзава, Томоаки (10 июля 2012 г.). "PowerShell 2.0 Cmdlets". Статьи TechNet . Microsoft.
  40. ^ Уилсон, Эд (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
  41. ^ Уилсон, Эд (2015). "1: Обзор Windows PowerShell 5.0". Windows PowerShell Шаг за Шагом (Третье изд.). Редмонд, Вашингтон: Microsoft Press . ISBN 978-1-5093-0043-3. OCLC  927112976. Windows PowerShell 5.0 поставляется с примерно 1300 командлетами в Windows 10
  42. ^ «Руководство пользователя Windows PowerShell: конвейеризация и конвейер в Windows PowerShell». TechNet . Microsoft . Получено 27 сентября 2011 г. .
  43. ^ Джонс, Дон (2008). «Windows PowerShell – переосмысление конвейера». Microsoft TechNet . Microsoft . Получено 28 ноября 2007 г. .
  44. ^ "Концепции объектов Windows PowerShell". Архивировано из оригинала 19 августа 2007 г. Получено 28 ноября 2007 г.
  45. ^ "Как на самом деле работает форматирование и вывод PowerShell" . Получено 28 ноября 2007 г.
  46. ^ «Подробнее – Как на самом деле работает форматирование PowerShell?» . Получено 28 ноября 2007 г.
  47. ^ "about_Pipelines". TechNet . Microsoft . 8 мая 2014 г.
  48. ^ "about_Objects". TechNet . Microsoft . 8 мая 2014 г.
  49. ^ ab "about_Format.ps1xml". TechNet . Microsoft . 8 мая 2014 г.
  50. ^ "Анонимные функции и блоки кода в PowerShell" . Получено 21 января 2012 г.
  51. ^ "Введение в переменные Windows PowerShell" . Получено 28 ноября 2007 г.
  52. ^ "Byte Conversion". Совет недели по Windows PowerShell . Получено 15 ноября 2013 г.
  53. Равикант (20 мая 2013 г.). «Преобразование в единицы размера (КБ, МБ, ГБ, ТБ и ПБ) без использования множителей PowerShell». PowerShell Magazine .
  54. ^ abc "about_Functions". Microsoft TechNet . Microsoft . 17 октября 2013 г. . Получено 15 ноября 2013 г. .
  55. ^ ab "Облегченное тестирование с помощью Windows PowerShell" . Получено 28 ноября 2007 г.
  56. ^ Ангелопулос, Алекс; Карен, Бемовски (4 декабря 2007 г.). «PowerShell поумнел насчет умных кавычек». Windows IT Pro . Penton Media . Получено 15 ноября 2013 г. .
  57. ^ "О специальных символах". Powershell / Скриптинг. Microsoft . 8 июня 2017 г. Получено 20 июня 2019 г.
  58. ^ "Trap [Exception] { "In PowerShell" }" . Получено 28 ноября 2007 г.
  59. ^ "Выполнение сценариев Windows PowerShell". Microsoft . Получено 28 ноября 2007 г.
  60. ^ "about_Signing". Microsoft TechNet . Microsoft . 17 октября 2013 г. . Получено 15 ноября 2013 г. .
  61. ^ Ли Холмс (сентябрь 2006 г.). Краткий справочник по Windows PowerShell . O'Reilly Media.
  62. ^ eslesar (23 мая 2023 г.). «Обзор конфигурации требуемого состояния Windows PowerShell». msdn.microsoft.com .
  63. Чанг, Леонард; Сновер, Джеффри; Кумаравел, Арул (14 ноября 2006 г.). «Все кончено! Выпущен Windows PowerShell 1.0!». Блог Windows PowerShell . Microsoft .
  64. ^ "PowerShell будет установлен по умолчанию на Windows Server 08 R2 (WS08R2) и Windows 7 (W7)!". Блог Windows PowerShell . Microsoft . 28 октября 2008 г. Получено 27 сентября 2011 г.
  65. ^ "Windows Management Framework уже здесь!". 27 октября 2009 г. Получено 30 октября 2009 г.
  66. ^ "База знаний поддержки Microsoft: Windows Management Framework (Windows PowerShell 2.0, WinRM 2.0 и BITS 4.0)". Support.microsoft.com. 23 сентября 2011 г. Получено 27 сентября 2011 г.
  67. ^ "574 причины, по которым мы так гордимся и оптимистичны в отношении W7 и WS08R2". Блог Windows PowerShell . Microsoft . 29 октября 2008 г. Получено 27 сентября 2011 г.
  68. ^ Snover, Jeffrey (2008). "PowerShell: Creating Manageable Web Services". Архивировано из оригинала 13 октября 2008 г. Получено 19 июля 2015 г.
  69. ^ "Что нового в CTP PowerShell 2.0" . Получено 28 ноября 2007 г. .
  70. ^ "Windows PowerShell V2 Community Technology Preview 2 (CTP2) – releaseNotes". Microsoft . Архивировано из оригинала 6 мая 2008 г. . Получено 5 мая 2008 г. .
  71. ^ "Различия между PowerShell 1.0 и PowerShell 2.0". Архивировано из оригинала 17 сентября 2010 г. Получено 26 июня 2010 г.
  72. ^ Джонс, Дон (май 2010 г.). «Windows PowerShell: написание командлетов в скрипте». Журнал TechNet . Microsoft.
  73. ^ "GoGrid Snap-in – Managing Cloud Services with PowerShell". Блог Windows PowerShell . Microsoft . 14 октября 2008 г. Получено 27 сентября 2011 г.
  74. ^ "Emit-XML". Блог Windows PowerShell . Microsoft . 17 октября 2008 г. Получено 27 сентября 2011 г.
  75. ^ "Блокировать комментарии в V2". Блог Windows PowerShell . Microsoft . 14 июня 2008 г. Получено 27 сентября 2011 г.
  76. Ли, Томас (13 августа 2012 г.). «PowerShell Version 3 is RTM!». Under The Stairs . Получено 13 августа 2012 г.
  77. ^ abc "Windows Management Framework 3.0". Центр загрузки . Microsoft . 4 сентября 2012 г. . Получено 8 ноября 2012 г. .
  78. ^ "Windows Management Framework 3.0 Community Technology Preview (CTP) #2 доступна для загрузки". Блог Windows PowerShell . Microsoft . 2 декабря 2011 г.
  79. ^ "Windows Management Framework 3.0". Центр загрузки . Microsoft . 3 декабря 2012 г.
  80. ^ Jofre, JuanPablo (14 декабря 2016 г.). «Системные требования Windows PowerShell». Microsoft Developer Network . Microsoft . Получено 20 апреля 2017 г. .
  81. ^ Ханикатт, Джерри (2012). Вулли, Валери (ред.). Знакомство с Windows 8: обзор для ИТ-специалистов. Редмонд, Вашингтон: Microsoft Press . ISBN 978-0-7356-7050-1.
  82. ^ "Windows Management Framework 4.0 теперь доступен". Microsoft . 24 октября 2013 г. . Получено 4 ноября 2013 г. .
  83. Леви, Шей (25 июня 2013 г.). «Новые возможности Windows PowerShell 4.0». PowerShell Magazine . Получено 26 июня 2013 г.
  84. ^ "Desired State Configuration in Windows Server 2012 R2 PowerShell". Channel 9 . Microsoft . 3 июня 2013 г. Архивировано из оригинала 26 декабря 2013 г. Получено 26 июня 2013 г.
  85. ^ Холл, Адриан (7 июня 2013 г.). «Мысли с Microsoft TechEd North America». Блоги: Советы и подсказки . Splunk . Получено 26 июня 2013 г. .
  86. ^ "Пакеты Windows Management Framework (WMF) 5.0 RTM были повторно опубликованы". Блог Windows PowerShell . Microsoft . 24 февраля 2016 г.
  87. ^ "Q and A". GitHub . Получено 21 апреля 2015 г.
  88. ^ Snover, Jeffrey (3 апреля 2014 г.). "Windows Management Framework V5 Preview". blogs.technet.com . Microsoft . Архивировано из оригинала 30 июня 2014 г. . Получено 21 апреля 2015 г. .
  89. ^ говорит Яап Брассер (2 августа 2016 г.). "#PSTip Новые команды PowerShell в Windows 10 Anniversary Update".
  90. ^ «Что нового в Windows Server 2016 Standard Edition, часть 9 – Управление и автоматизация». 4 сентября 2016 г.
  91. ^ "Модуль Microsoft.PowerShell.LocalAccounts". technet.microsoft.com . 16 июня 2016 г.
  92. ^ «Анонс Windows Management Framework (WMF) 5.1 Preview». 16 июля 2016 г.
  93. ^ "WMF 5.1". Центр загрузки Microsoft .
  94. ^ "Что такое Windows PowerShell? - PowerShell". Microsoft Learn . 7 марта 2024 г. Получено 19 августа 2024 г.
  95. ^ «Миграция с Windows PowerShell 5.1 на PowerShell 7 — PowerShell». Microsoft Learn . 2 апреля 2024 г. Получено 19 августа 2024 г.
  96. ^ Айелло, Джоуи (11 января 2018 г.). «PowerShell Core 6.0: Generally Available (GA) and Supported!». Блог команды PowerShell . Microsoft. Архивировано из оригинала 11 июня 2018 г. . Получено 11 июня 2018 г. .
  97. ^ Айелло, Джоуи; Уилер, Шон (10 января 2018 г.). «Жизненный цикл поддержки ядра PowerShell». Microsoft Docs . Microsoft .
  98. ^ Кальво, Энджел (11 января 2018 г.). «10 самых захватывающих причин для миграции». PowerShell AMA . Microsoft .
  99. ^ sdwheeler (3 августа 2023 г.). "Что нового в PowerShell Core 6.0". learn.microsoft.com . Получено 11 декабря 2023 г. Кодировка по умолчанию — UTF-8 без BOM, за исключением New-ModuleManifest
  100. ^ ab "Понимание кодировки файлов в VS Code и PowerShell - PowerShell". learn.microsoft.com . 29 ноября 2023 г. . Получено 11 декабря 2023 г. .
  101. ^ Айелло, Джоуи (13 сентября 2018 г.). «Анонс PowerShell Core 6.1». devblogs.microsoft.com . Microsoft . Получено 1 июня 2019 г. .
  102. ^ "PowerShell/PowerShell". GitHub . Получено 22 июня 2020 г. .
  103. ^ abc Ли, Стив (5 апреля 2019 г.). «Следующий выпуск PowerShell – PowerShell 7». Microsoft . Получено 1 июня 2019 г. .
  104. ^ Ли, Стив (28 марта 2019 г.). «Общая доступность PowerShell Core 6.2». devblogs.microsoft.com . Microsoft . Получено 1 июня 2019 г. .
  105. ^ Mackie, Kurt (30 мая 2019 г.). «Microsoft выпускает предварительную версию PowerShell 7». 1105 Media Inc. Получено 1 июня 2019 г.
  106. ^ Ли, Стив (30 мая 2019 г.). «PowerShell 7 Road Map». devblogs.microsoft.com . Microsoft . Получено 12 августа 2020 г. .
  107. ^ "PowerShell 7 Preview 5 | PowerShell". 23 октября 2019 г. Архивировано из оригинала 15 февраля 2020 г. Получено 5 марта 2020 г.
  108. ^ «PowerShell 7.2 — новая версия оболочки следующего поколения от Microsoft». itsfoss.net . 12 ноября 2021 г.
  109. ^ "Выпуск v7.3.0 PowerShell · PowerShell/PowerShell". GitHub . Архивировано из оригинала 9 ноября 2022 г. . Получено 7 марта 2022 г. .
  110. ^ "Webcmdlets устанавливают кодировку по умолчанию на UTF8 от CarloToso · Pull Request #18219 · PowerShell/PowerShell". GitHub . Получено 11 декабря 2023 г. .
  111. ^ "Test-Connection". Документация PowerShell . Microsoft . 9 августа 2015 г.
  112. ^ "Tar and Curl Come to Windows! - Microsoft Tech Community - 382409". 22 марта 2019 г. Архивировано из оригинала 11 сентября 2020 г. Получено 17 мая 2020 г.
  113. ^ Уиллер, Шон (2 июня 2020 г.). «О скриптах». Microsoft Docs . Microsoft.
  114. ^ Уилер, Шон; Сматлак, Дэвид; Уилсон, Чейз (16 октября 2019 г.). «Как написать манифест модуля PowerShell». Документы . Microsoft.
  115. ^ Уилер, Шон; Сматлак, Дэвид (22 ноября 2019 г.). «Как написать модуль скрипта PowerShell». Microsoft Docs . Microsoft.
  116. ^ Уилер, Шон (13 ноября 2016 г.). «Как написать двоичный модуль PowerShell». Microsoft Docs . Microsoft.
  117. ^ Уиллер, Шон; Джофре, Хуан Пабло; Воробьев, Сергей; Николаев, Кирилл; Коултер, Дэвид (2 июня 2020 г.). "About Types.ps1xml". Microsoft Docs . Microsoft.
  118. ^ Уиллер, Шон. "Экспорт-Clixml". Microsoft Docs . Microsoft.
  119. ^ Уиллер, Шон; Джофре, Хуан Пабло; Воробьев, Сергей; Николаев, Кирилл; Коултер, Дэвид. "Export-Console". Microsoft Docs . Microsoft.
  120. ^ Уилер, Шон (2 июня 2020 г.). «О файлах конфигурации сеанса». Microsoft Docs . Microsoft.
  121. ^ Уиллер, Шон (2 июня 2020 г.). "New-PSRoleCapabilityFile". Microsoft Docs . Microsoft.
  122. ^ "Microsoft Transporter Suite для Lotus Domino". Microsoft . Получено 7 марта 2008 г. .
  123. ^ "PowerTools for Open XML" . Получено 20 июня 2008 г. .
  124. ^ "MO74: WebSphere MQ – Windows PowerShell Library" . Получено 5 декабря 2007 г. .
  125. ^ "Параметры командной строки IoT Core Add-ons" . Получено 13 июня 2020 г. .
  126. ^ "PowerShell Commands for Active Directory by Quest Software" . Получено 2 июля 2008 г. .
  127. ^ "PowerShell Remoting through Group Policy" . Получено 7 декабря 2007 г. .
  128. ^ "VMware vSphere PowerCLI". Архивировано из оригинала 30 декабря 2014 г. Получено 9 сентября 2014 г.
  129. ^ "IIS7 PowerShell Provider Tech Preview 2". Блог Windows PowerShell . Архивировано из оригинала 4 февраля 2010 г. Получено 3 июля 2008 г.
  130. ^ "Kudos to the Win7 Diagnostics Team" . Получено 15 июня 2009 г. .
  131. Майкл, Нихаус (10 июля 2009 г.). "MDT 2010 New Feature #16: PowerShell support" . Получено 27 октября 2014 г. .
  132. ^ "Хвала NetApp за Data ONTAP PowerShell ToolKit" . Получено 15 июня 2010 г. .
  133. ^ "Анонс PowerShell Toolkit 4.2". 23 июня 2016 г. Получено 7 сентября 2016 г.
  134. ^ "Гетерогенное планирование заданий с помощью PowerShell" . Получено 15 сентября 2010 г.
  135. ^ "UIAutomation PowerShell Extensions". Архивировано из оригинала 17 августа 2016 г. Получено 16 февраля 2012 г.
  136. ^ "EqualLogic HIT-ME with PowerShell" . Получено 9 марта 2012 г.
  137. ^ de:LOGINventory
  138. ^ "Selenium PowerShell eXtensions". Архивировано из оригинала 19 января 2013 г. Получено 20 августа 2012 г.
  139. ^ "Pash". SourceForge . Dice Holdings, Inc. Получено 27 сентября 2011 г. .
  140. ^ "Pash Project". GitHub . Получено 10 апреля 2013 г.
  141. ^ "Pash теперь устарел · Выпуск № 429 · Pash-Project/Pash". GitHub . Получено 26 ноября 2019 г. .

Дальнейшее чтение

Внешние ссылки