stringtranslate.com

PowerShell

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

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

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

Поддержка 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 ). Семейство Windows 9x поставлялось в комплекте с COMMAND.COM , средой командной строки MS-DOS. Однако семейства Windows NT и Windows CE поставлялись с новым cmd.exe , который сильно напоминал COMMAND.COM. Обе среды поддерживают несколько основных внутренних команд и примитивный язык сценариев ( пакетные файлы ), которые можно использовать для автоматизации различных задач. Однако они не могут автоматизировать все аспекты графического пользовательского интерфейса (GUI) Windows, поскольку эквиваленты операций в командной строке ограничены, а язык сценариев элементарен.

Microsoft попыталась устранить некоторые из этих недостатков, представив в 1998 году Windows Script Host в составе 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 должен был стать новым расширяемым интерфейсом командной строки со свежим дизайном, способным автоматизировать ряд основных административных задач. Microsoft впервые публично продемонстрировала Monad на конференции профессионального развития в Лос-Анджелесе в октябре 2003 года. Несколько месяцев спустя они открыли частную бета-версию, которая в конечном итоге привела к созданию публичной бета-версии. Microsoft опубликовала первую публичную бета-версию Monad 17 июня 2005 г., бета-версию 2 — 11 сентября 2005 г., а бета-версию 3 — 10 января 2006 г.

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 для Linux 7.3.1 в Ubuntu 22.10

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 поставляется с платформой тестирования для PowerShell. [19]

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

Система расширенного типа

Система расширенных типов PowerShell ( ETS ) основана на системе типов .NET, но с расширенной семантикой (например, наборами свойств и сторонней расширяемостью). Например, он позволяет создавать различные представления объектов, предоставляя только подмножество полей данных, свойств и методов, а также определяя пользовательское форматирование и поведение сортировки. Эти представления сопоставляются с исходным объектом с помощью файлов конфигурации на основе 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 можно подписать для проверки их целостности, и на них распространяется действие безопасности доступа к коду . [60]

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

Хостинг

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

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

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

Желаемая конфигурация состояния

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

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

Версии

Первоначально под кодовым названием «Монад» PowerShell был впервые показан публично на конференции профессиональных разработчиков в октябре 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. Ранняя версия Windows Management Framework 3.0 2 (CTP 2) от сообщества была выпущена 2 декабря 2011 года. [78] Windows Management Framework 3.0 была выпущена для общего доступа в декабре 2012 года [79] и включена в состав Windows 8 и Windows. Сервер 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 [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». Версия «Настольная версия» является продолжением традиционной оболочки Windows PowerShell, работающей на стеке .NET Framework. Версия «Core» работает на .NET Core и поставляется в комплекте с Windows Server 2016 Nano Server. В обмен на меньший размер в последнем отсутствуют некоторые функции, такие как командлеты для управления буфером обмена или присоединения компьютера к домену, командлеты WMI версии 1, командлеты и профили журнала событий. [24] Это была финальная версия PowerShell, созданная исключительно для Windows.

PowerShell Core 6.

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

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

6.1

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

6.2

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

PowerShell 7

PowerShell 7 — это замена продуктов PowerShell Core 6.x, а также Windows PowerShell 5.1, последней поддерживаемой версии Windows PowerShell. [103] [101] При разработке основное внимание уделялось тому, чтобы сделать PowerShell 7 жизнеспособной заменой Windows PowerShell 5.1, то есть иметь почти паритет с Windows PowerShell с точки зрения совместимости с модулями, поставляемыми с Windows. [104]

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

PowerShell 7.2

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

PowerShell 7.3

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

PowerShell 7.4

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

Сравнение командлетов с похожими командами

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

Примечания

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

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

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

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

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

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

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

Рекомендации

  1. ^ «Выпуск версии 7.4.1 PowerShell · PowerShell/PowerShell» . Репозиторий PowerShell/PowerShell . Майкрософт . Получено 11 января 2024 г. — через GitHub.com .
  2. ^ «PowerShell для каждой системы!». 12 июня 2017 г. — через GitHub.com .
  3. Сновер, Джеффри (25 мая 2008 г.). «PowerShell и WPF: WTF». Блог Windows PowerShell . Майкрософт.
  4. ↑ abc Брайт, Питер (18 августа 2016 г.). «PowerShell — это последняя версия Microsoft с открытым исходным кодом, доступная для Linux, OS X». Арс Техника . Конде Наст . Архивировано из оригинала 9 апреля 2020 года . Проверено 12 мая 2020 г.
  5. ^ «Анонсируем сборку 14971 Windows 10 Insider Preview для ПК» .
  6. ^ «PowerShell заменяет командную строку» .
  7. ^ abcde "powershell" . Проверено 13 марта 2023 г.
  8. ^ Труэр, Джим (декабрь 2007 г.). «Расширение Windows PowerShell с помощью пользовательских команд». Журнал MSDN . Майкрософт. Архивировано из оригинала 6 октября 2008 года.
  9. Лоу, Скотт (4 января 2007 г.). «Exchange 2007: привыкните к командной строке». Техреспублика . CBS Интерактив . Архивировано из оригинала 16 ноября 2018 года . Проверено 12 мая 2020 г.
  10. Сновер, Джеффри (13 ноября 2007 г.). «Поддержка SQL Server для PowerShell!». Блог Windows PowerShell (публикация в блоге). Майкрософт. Архивировано из оригинала 15 ноября 2007 года . Проверено 13 ноября 2007 г.
  11. Драган, Ричард В. (23 апреля 2003 г.). «Windows Server 2003 обеспечивает всесторонние улучшения». PCMag.com . Зифф Дэвис . Отличительной особенностью является то, что практически все утилиты администратора теперь работают из командной строки (и большинство из них доступны через telnet).
  12. ^ Джонс, Дон (2020). Оболочка идеи: нерассказанная история PowerShell . Дон Ганнон-Джонс. п. 25. ISBN 978-1-9536450-3-6.
  13. ^ Джеффри П. Сновер (8 августа 2002 г.). «Манифест Монады» (PDF) . Блог Windows PowerShell . Майкрософт . Проверено 2 апреля 2021 г.
  14. Биггар и Харбо (14 сентября 2017 г.). «Человек, стоящий за Windows PowerShell». Быть непрерывным (Подкаст). Хэвибит . Проверено 14 сентября 2017 г.
  15. ^ «Windows PowerShell (Монада) прибыла» . Блог Windows PowerShell . Майкрософт . 25 апреля 2006 г.
  16. Сновер, Джеффри (15 ноября 2006 г.). «Windows PowerShell и Windows Vista». Блог Windows PowerShell (публикация в блоге). Майкрософт .
  17. ^ «Windows Management Framework (Windows PowerShell 2.0, WinRM 2.0 и BITS 4.0)» . Поддерживать . Майкрософт . 30 сентября 2013 г. Архивировано из оригинала 13 октября 2013 г.
  18. Поузи, Брайен (6 октября 2009 г.). «10 причин, почему вам следует научиться использовать PowerShell». Техреспублика . Проверено 2 апреля 2021 г.
  19. ^ «Что такое Пестер и почему меня это должно волновать?». 14 декабря 2015 г.
  20. Сновер, Джеффри (18 августа 2016 г.). «PowerShell имеет открытый исходный код и доступен в Linux». Блог Microsoft Azure . Майкрософт .
  21. ^ «PowerShell/PowerShell». Гитхаб . Проверено 18 августа 2016 г.
  22. ^ Хансен, Кеннет; Кальво, Анхель (18 августа 2016 г.). «PowerShell в Linux и с открытым исходным кодом!». Блог Windows PowerShell . Майкрософт .
  23. Фоли, Мэри Джо (18 августа 2016 г.). «Microsoft PowerShell с открытым исходным кодом; переносит его в Linux и Mac OS X». ЗДНет . CBS Интерактив .
  24. ^ ab «PowerShell на Nano Server». ТехНет . Майкрософт . 20 октября 2016 г.
  25. ^ Джонс, Дон (2020). Оболочка идеи: нерассказанная история PowerShell . Дон Ганнон-Джонс. п. 45. ИСБН 978-1-9536450-3-6.
  26. ^ Пайетт, Брюс (2007). Windows PowerShell в действии. Серия Manning Pubs Co. Мэннинг. п. 27. ISBN 9781932394900. Проверено 22 июля 2016 г. Основной язык PowerShell основан на грамматике POSIX 1003.2 для оболочки Korn .
  27. ^ Джонс, Дон (2020). Оболочка идеи: нерассказанная история PowerShell . Дон Ганнон-Джонс. п. 109. ИСБН 978-1-9536450-3-6.
  28. ^ "about_Command_Precedence". ТехНет . Майкрософт . 8 мая 2014 г.
  29. Уиллер, Шон (7 сентября 2021 г.). «о синтаксическом анализе — PowerShell». Документы Майкрософт . Проверено 5 декабря 2021 г.
  30. ^ «Система расширенных типов Windows PowerShell» . Проверено 28 ноября 2007 г.
  31. ^ abc «Командлеты Windows PowerShell» . Проверено 28 ноября 2007 г.
  32. ^ «Создание первого командлета» . Проверено 28 ноября 2007 г.
  33. ^ "Получить-Глагол" . ТехНет . Майкрософт . 8 мая 2014 г.
  34. ^ «Обзор командлета». MSDN . Майкрософт . 8 мая 2014 г.
  35. ^ «Добавление параметров, обрабатывающих ввод командной строки» . Проверено 28 ноября 2007 г.
  36. ^ «Добавление параметров, обрабатывающих входные данные конвейера» . Проверено 28 ноября 2007 г.
  37. ^ «Поставщики Windows PowerShell» . Проверено 14 октября 2010 г.
  38. ^ Ёсидзава, Томоаки; Рамос, Дюрвал (29 сентября 2012 г.). «Командлеты PowerShell 1.0». Статьи ТехНет . Майкрософт.
  39. Ёсидзава, Томоаки (10 июля 2012 г.). «Командлеты PowerShell 2.0». Статьи ТехНет . Майкрософт.
  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» . ТехНет . Майкрософт . Проверено 27 сентября 2011 г.
  43. ^ Джонс, Дон (2008). «Windows PowerShell – переосмысление конвейера». Microsoft TechNet . Майкрософт . Проверено 28 ноября 2007 г.
  44. ^ «Концепции объектов Windows PowerShell». Архивировано из оригинала 19 августа 2007 года . Проверено 28 ноября 2007 г.
  45. ^ «Как ДЕЙСТВИТЕЛЬНО работает форматирование и вывод PowerShell» . Проверено 28 ноября 2007 г.
  46. ^ «Подробнее - Как на самом деле работает форматирование PowerShell?» . Проверено 28 ноября 2007 г.
  47. ^ "О_Пайплайнах". ТехНет . Майкрософт . 8 мая 2014 г.
  48. ^ "О_Объектах". ТехНет . Майкрософт . 8 мая 2014 г.
  49. ^ ab "about_Format.ps1xml". ТехНет . Майкрософт . 8 мая 2014 г.
  50. ^ «Анонимные функции и блоки кода в PowerShell» . Проверено 21 января 2012 г.
  51. ^ «Введение в переменные Windows PowerShell» . Проверено 28 ноября 2007 г.
  52. ^ «Преобразование байтов». Совет недели по Windows PowerShell . Проверено 15 ноября 2013 г.
  53. Равикант (20 мая 2013 г.). «Преобразование в единицы размера (КБ, МБ, ГБ, ТБ и ПБ) без использования множителей PowerShell». Журнал PowerShell .
  54. ^ abc "about_Functions". Microsoft TechNet . Майкрософт . 17 октября 2013 года . Проверено 15 ноября 2013 г.
  55. ^ ab «Облегченное тестирование с помощью Windows PowerShell» . Проверено 28 ноября 2007 г.
  56. ^ Ангелопулос, Алекс; Карен, Бемовски (4 декабря 2007 г.). «PowerShell стал умнее в отношении смарт-кавычек». Windows ИТ-специалист . Пентон Медиа . Проверено 15 ноября 2013 г.
  57. ^ «О специальных персонажах». Powershell/Сценарии. Майкрософт . 8 июня 2017 г. Проверено 20 июня 2019 г.
  58. ^ "Ловушка [Исключение] {"В PowerShell"}" . Проверено 28 ноября 2007 г.
  59. ^ «Выполнение сценариев Windows PowerShell». Майкрософт . Проверено 28 ноября 2007 г.
  60. ^ "о_подписи". Microsoft TechNet . Майкрософт . 17 октября 2013 года . Проверено 15 ноября 2013 г.
  61. ^ Ли Холмс (сентябрь 2006 г.). Краткий справочник по Windows PowerShell . О'Рейли Медиа.
  62. Эслесар (23 мая 2023 г.). «Обзор конфигурации желаемого состояния Windows PowerShell». msdn.microsoft.com .
  63. ^ Чанг, Леонард; Сновер, Джеффри; Кумаравель, Арул (14 ноября 2006 г.). «Это завершение! Выпущена Windows PowerShell 1.0!». Блог Windows PowerShell . Майкрософт .
  64. ^ «PowerShell будет установлен по умолчанию в Windows Server 08 R2 (WS08R2) и Windows 7 (W7)!». Блог Windows PowerShell . Майкрософт . 28 октября 2008 года . Проверено 27 сентября 2011 г.
  65. ^ «Windows Management Framework уже здесь!». 27 октября 2009 года . Проверено 30 октября 2009 г.
  66. ^ «База знаний поддержки Microsoft: платформа управления Windows (Windows PowerShell 2.0, WinRM 2.0 и BITS 4.0)» . Support.microsoft.com. 23 сентября 2011 года . Проверено 27 сентября 2011 г.
  67. ^ «574 причины, почему мы так гордимся и оптимистичны в отношении W7 и WS08R2» . Блог Windows PowerShell . Майкрософт . 29 октября 2008 года . Проверено 27 сентября 2011 г.
  68. ^ Сновер, Джеффри (2008). «PowerShell: создание управляемых веб-служб». Архивировано из оригинала 13 октября 2008 года . Проверено 19 июля 2015 г.
  69. ^ «Что нового в CTP PowerShell 2.0» . Проверено 28 ноября 2007 г.
  70. ^ «Windows PowerShell V2 Community Technology Preview 2 (CTP2) – примечания к выпуску» . Майкрософт . Архивировано из оригинала 6 мая 2008 года . Проверено 5 мая 2008 г.
  71. ^ «Различия между PowerShell 1.0 и PowerShell 2.0». Архивировано из оригинала 17 сентября 2010 года . Проверено 26 июня 2010 г.
  72. ^ Джонс, Дон (май 2010 г.). «Windows PowerShell: написание командлетов в сценарии». Журнал ТехНет . Майкрософт.
  73. ^ «Оснастка GoGrid — управление облачными сервисами с помощью PowerShell» . Блог Windows PowerShell . Майкрософт . 14 октября 2008 года . Проверено 27 сентября 2011 г.
  74. ^ "Emit-XML". Блог Windows PowerShell . Майкрософт . 17 октября 2008 года . Проверено 27 сентября 2011 г.
  75. ^ «Блокировать комментарии в V2» . Блог Windows PowerShell . Майкрософт . 14 июня 2008 года . Проверено 27 сентября 2011 г.
  76. Ли, Томас (13 августа 2012 г.). «PowerShell версии 3 — это первоначальная первоначальная версия!». Под лестницей . Проверено 13 августа 2012 г.
  77. ^ abc «Windows Management Framework 3.0». Центр загрузки . Майкрософт . 4 сентября 2012 года . Проверено 8 ноября 2012 г.
  78. ^ «Windows Management Framework 3.0 Community Technology Preview (CTP) # 2, доступная для загрузки» . Блог Windows PowerShell . Майкрософт . 2 декабря 2011 г.
  79. ^ «Windows Management Framework 3.0» . Центр загрузки . Майкрософт . 3 декабря 2012 г.
  80. Хофре, ХуанПабло (14 декабря 2016 г.). «Системные требования Windows PowerShell». Сеть разработчиков Microsoft . Майкрософт . Проверено 20 апреля 2017 г.
  81. ^ Ханикатт, Джерри (2012). Вулли, Валери (ред.). Знакомство с Windows 8: обзор для ИТ-специалистов. Редмонд, Вашингтон: Microsoft Press . ISBN 978-0-7356-7050-1.
  82. ^ «Теперь доступна Windows Management Framework 4.0» . Майкрософт . 24 октября 2013 года . Проверено 4 ноября 2013 г.
  83. ^ Леви, Шей (25 июня 2013 г.). «Новые возможности Windows PowerShell 4.0». Журнал PowerShell . Проверено 26 июня 2013 г.
  84. ^ «Конфигурация желаемого состояния в Windows Server 2012 R2 PowerShell» . Канал 9 . Майкрософт . 3 июня 2013. Архивировано из оригинала 26 декабря 2013 года . Проверено 26 июня 2013 г.
  85. Холл, Адриан (7 июня 2013 г.). «Мысли Microsoft TechEd в Северной Америке». Блоги: Советы и рекомендации . Спланк . Проверено 26 июня 2013 г.
  86. ^ «Пакеты Windows Management Framework (WMF) 5.0 RTM были переизданы» . Блог Windows PowerShell . Майкрософт . 24 февраля 2016 г.
  87. ^ «Вопросы и ответы». Гитхаб . Проверено 21 апреля 2015 г.
  88. Сновер, Джеффри (3 апреля 2014 г.). «Предварительная версия Windows Management Framework V5». blogs.technet.com . Майкрософт . Архивировано из оригинала 30 июня 2014 года . Проверено 21 апреля 2015 г.
  89. говорит Яап Брассер (2 августа 2016 г.). «#PSTip Новые команды PowerShell в юбилейном обновлении Windows 10».
  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» . 16 июля 2016 г.
  93. ^ "WMF 5.1" . Центр загрузки Microsoft .
  94. Айелло, Джоуи (11 января 2018 г.). «PowerShell Core 6.0: общедоступен (GA) и поддерживается!». Блог команды PowerShell . Майкрософт. Архивировано из оригинала 11 июня 2018 года . Проверено 11 июня 2018 г.
  95. ^ Айелло, Джоуи; Уилер, Шон (10 января 2018 г.). «Жизненный цикл поддержки PowerShell Core». Документы Майкрософт . Майкрософт .
  96. Кальво, Анхель (11 января 2018 г.). «10 самых интересных причин для миграции». PowerShell АМА . Майкрософт .
  97. ^ sdwheeler (3 августа 2023 г.). «Что нового в PowerShell Core 6.0». Learn.microsoft.com . Проверено 11 декабря 2023 г. Кодировка по умолчанию — UTF-8 без спецификации, за исключением New-ModuleManifest.
  98. ^ ab «Понимание кодировки файлов в VS Code и PowerShell — PowerShell». Learn.microsoft.com . 29 ноября 2023 г. . Проверено 11 декабря 2023 г.
  99. Айелло, Джоуи (13 сентября 2018 г.). «Анонс PowerShell Core 6.1». devblogs.microsoft.com . Майкрософт . Проверено 1 июня 2019 г.
  100. ^ «PowerShell/PowerShell». Гитхаб . Проверено 22 июня 2020 г.
  101. ^ abc Ли, Стив (5 апреля 2019 г.). «Следующий выпуск PowerShell – PowerShell 7». Майкрософт . Проверено 1 июня 2019 г.
  102. Ли, Стив (28 марта 2019 г.). «Общая доступность PowerShell Core 6.2». devblogs.microsoft.com . Майкрософт . Проверено 1 июня 2019 г.
  103. Маки, Курт (30 мая 2019 г.). «Microsoft выпускает предварительную версию PowerShell 7». 1105 Медиа Инк . Проверено 1 июня 2019 г.
  104. Ли, Стив (30 мая 2019 г.). «Дорожная карта PowerShell 7». devblogs.microsoft.com . Майкрософт . Проверено 12 августа 2020 г.
  105. ^ «PowerShell 7 Preview 5 | PowerShell» . 23 октября 2019 года. Архивировано из оригинала 15 февраля 2020 года . Проверено 5 марта 2020 г.
  106. ^ «PowerShell 7.2 — это новая версия оболочки Microsoft следующего поколения» . itfoss.net . 12 ноября 2021 г.
  107. ^ «Выпуск v7.3.0 для PowerShell · PowerShell/PowerShell» . Гитхаб . Архивировано из оригинала 9 ноября 2022 года . Проверено 7 марта 2022 г.
  108. ^ «Веб-командлеты устанавливают кодировку кодировки по умолчанию на UTF8 от CarloToso · Запрос на извлечение № 18219 · PowerShell/PowerShell» . Гитхаб . Проверено 11 декабря 2023 г.
  109. ^ «Тест-соединение». Документация PowerShell . Майкрософт . 9 августа 2015 г.
  110. ^ «Tar и Curl приходят в Windows! - Техническое сообщество Microsoft - 382409» . 22 марта 2019 года. Архивировано из оригинала 11 сентября 2020 года . Проверено 17 мая 2020 г.
  111. Уилер, Шон (2 июня 2020 г.). «О скриптах». Документы Майкрософт . Майкрософт.
  112. ^ Уилер, Шон; Сматлак, Дэвид; Уилсон, Чейз (16 октября 2019 г.). «Как написать манифест модуля PowerShell». Документы . Майкрософт.
  113. ^ Уилер, Шон; Сматлак, Дэвид (22 ноября 2019 г.). «Как написать модуль сценариев PowerShell». Документы Майкрософт . Майкрософт.
  114. Уиллер, Шон (13 ноября 2016 г.). «Как написать двоичный модуль PowerShell». Документы Майкрософт . Майкрософт.
  115. ^ Уиллер, Шон; Хофре, Хуан Пабло; Воробьев Сергей; Николаев Кирилл; Коултер, Дэвид (2 июня 2020 г.). «О Types.ps1xml». Документы Майкрософт . Майкрософт.
  116. ^ Уилер, Шон. «Экспорт-Clixml». Документы Майкрософт . Майкрософт.
  117. ^ Уиллер, Шон; Хофре, Хуан Пабло; Воробьев Сергей; Николаев Кирилл; Коултер, Дэвид. «Экспорт-Консоль». Документы Майкрософт . Майкрософт.
  118. Уилер, Шон (2 июня 2020 г.). «О файлах конфигурации сеанса». Документы Майкрософт . Майкрософт.
  119. Уилер, Шон (2 июня 2020 г.). «Новый-PSRoleCapabilityFile». Документы Майкрософт . Майкрософт.
  120. ^ «Microsoft Transporter Suite для Lotus Domino» . Майкрософт . Проверено 7 марта 2008 г.
  121. ^ «PowerTools для Open XML» . Проверено 20 июня 2008 г.
  122. ^ «MO74: WebSphere MQ — библиотека Windows PowerShell» . Проверено 5 декабря 2007 г.
  123. ^ «Параметры командной строки надстроек IoT Core» . Проверено 13 июня 2020 г.
  124. ^ «Команды PowerShell для Active Directory от Quest Software» . Проверено 2 июля 2008 г.
  125. ^ «Удаленное взаимодействие PowerShell через групповую политику» . Проверено 7 декабря 2007 г.
  126. ^ «VMware vSphere PowerCLI». Архивировано из оригинала 30 декабря 2014 года . Проверено 9 сентября 2014 г.
  127. ^ «Технический обзор поставщика IIS7 PowerShell 2» . Блог Windows PowerShell . Архивировано из оригинала 4 февраля 2010 года . Проверено 3 июля 2008 г.
  128. ^ «Слава команде диагностики Win7» . Проверено 15 июня 2009 г.
  129. Майкл, Нихаус (10 июля 2009 г.). «Новая функция MDT 2010 № 16: поддержка PowerShell» . Проверено 27 октября 2014 г.
  130. ^ «Славность NetApp за Data ONTAP PowerShell ToolKit» . Проверено 15 июня 2010 г.
  131. ^ «Объявление о PowerShell Toolkit 4.2» . 23 июня 2016 г. Проверено 7 сентября 2016 г.
  132. ^ «Гетерогенное планирование заданий с помощью PowerShell» . Проверено 15 сентября 2010 г.
  133. ^ «Расширения PowerShell UIAutomation» . Архивировано из оригинала 17 августа 2016 года . Проверено 16 февраля 2012 г.
  134. ^ «EqualLogic HIT-ME с PowerShell» . Проверено 9 марта 2012 г.
  135. ^ де: LOGINventory
  136. ^ «Расширения Selenium PowerShell». Архивировано из оригинала 19 января 2013 года . Проверено 20 августа 2012 г.
  137. ^ "Паш". СоурсФордж . Dice Holdings, Inc. Проверено 27 сентября 2011 г.
  138. ^ "Проект Паш". Гитхаб . Проверено 10 апреля 2013 г.
  139. ^ «Pash устарел · Проблема № 429 · Pash-Project/Pash» . Гитхаб . Проверено 26 ноября 2019 г.

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

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