~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 434184C3724E3E47296497261A7F8D9A__1715677020 ✰
Заголовок документа оригинал.:
✰ PowerShell - Wikipedia ✰
Заголовок документа перевод.:
✰ PowerShell — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/PowerShell ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/43/9a/434184c3724e3e47296497261a7f8d9a.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/43/9a/434184c3724e3e47296497261a7f8d9a__translat.html ✰
Дата и время сохранения документа:
✰ 21.06.2024 13:28:23 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 14 May 2024, at 11:57 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

PowerShell — Википедия Jump to content

PowerShell

Из Википедии, бесплатной энциклопедии

PowerShell
Снимок экрана сеанса PowerShell 7 в терминале Windows
Парадигма Императивный , конвейерный , объектно-ориентированный , функциональный и рефлексивный.
Разработано Джеффри Сновер , Брюс Пайетт, Джеймс Труэр (и др.)
Разработчик Майкрософт
Впервые появился 14 ноября 2006 г .; 17 лет назад ( 14 ноября 2006 )
Стабильная версия
7.4.2 / 11 апреля 2024 г .; 2 месяца назад ( 11.04.2024 ) [1]
Дисциплина набора текста Сильный , безопасный , неявный и динамичный
Язык реализации С#
Платформа PowerShell: .NET
Windows PowerShell: .NET Framework
ТЫ
Лицензия МОЯ лицензия [2] (но компонент Windows остается проприетарным )
Расширения имен файлов
  • .ps1 (скрипт)
  • .ps1xml (XML-документ)
  • .psc1 (консольный файл)
  • .psd1 (файл данных)
  • .psm1 (модуль сценариев)
  • .pssc (файл конфигурации сеанса)
  • .psrc (файл возможностей роли)
  • .cdxml (XML-документ определения командлета)
Веб-сайт Майкрософт /powershell
Под влиянием
Python , Ksh , Perl , C# , CL , DCL , SQL , Tcl , Tk , [3] Босс , Марионетка

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

PowerShell [ править ]

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

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

Релиз-кандидат 2 версии 1 PowerShell был выпущен 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, .NET Framework и другом программном обеспечении. Командлеты PowerShell «обтекают» существующие функциональные возможности. Целью этой тактики является предоставление удобного и более согласованного интерфейса между администраторами и широкого спектра базовых функций. При использовании PowerShell администратору не нужно знать кодирование .NET, WMI или низкоуровневого API, а вместо этого он может сосредоточиться на использовании командлетов, предоставляемых PowerShell. В этом отношении PowerShell создает мало новых функций, вместо этого сосредотачиваясь на том, чтобы сделать существующие функции более доступными для определенной аудитории. [25]

Грамматика [ править ]

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

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

Именованные команды [ править ]

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

  • командлеты ( программы .NET Framework , предназначенные для взаимодействия с PowerShell)
  • Скрипты PowerShell (файлы с суффиксом .ps1)
  • Функции PowerShell
  • Автономные исполняемые программы

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

типов Система расширенных

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

Командлеты [ править ]

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

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

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

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

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

Версия Командлеты Ссылка
Windows PowerShell 1.0
129
[38]
Windows PowerShell 2.0
632
[39]
Windows PowerShell 3.0
около 1000
[40]
Windows PowerShell 4.0 ?
Windows PowerShell 5.0
около 1300
[41]
Windows PowerShell 5.1
1,586
[ нужна цитата ]
PowerShell Core 6.0 ?
PowerShell Core 6.1 ?
PowerShell Core 6.2 ?
PowerShell 7.0
1,507
[ нужна цитата ]
PowerShell 7.1 ?
PowerShell 7.2 ?
PowerShell 7.4
1,656

Командлеты можно добавлять в оболочку через оснастки (устарело в версии 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]

function   Verb-Noun   { 
   param   ( 
     # Определение статических параметров 
   ) 
   Dynamicparam   { 
     # Определение динамических параметров 
   } 
   Begin   { 
     # Набор инструкций для запуска в начале конвейера 
   } 
   process   { 
     # Основные наборы инструкций, выполняемые для каждого элемента в конвейере 
   } 
   end   { 
     # Набор инструкций для запуска в конце конвейера 
   } 
 } 

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

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

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

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

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

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

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

Специальные символы PowerShell
Последовательность Значение
`0 Нулевой
Тревога
Backspace
Escape (начиная с PowerShell 6)
Подача формы
Новая линия
Возврат каретки
Горизонтальная вкладка
`u{x} Escape-последовательность Юникода (начиная с PowerShell 6)
`v Вертикальная вкладка
--% Относитесь к любому персонажу с этого момента буквально.

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

Сценарии, написанные с использованием PowerShell, можно сохранять между сеансами либо в .ps1 файл или .psm1файл (последний используется для реализации модуля). В дальнейшем можно будет использовать либо весь скрипт, либо отдельные функции в скрипте. Скрипты и функции работают аналогично командлетам: их можно использовать как команды в конвейерах и к ним можно привязывать параметры. Объекты конвейера можно легко передавать между функциями, скриптами и командлетами. Чтобы предотвратить непреднамеренный запуск сценариев, выполнение сценариев отключено по умолчанию и должно быть включено явно. [59] Включение сценариев может выполняться на уровне системы, пользователя или сеанса. Сценарии PowerShell можно подписать для проверки их целостности, и на них распространяется действие безопасности доступа к коду . [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-Hostcmdlet в конце конвейера, он записывает результат на экран консоли. В противном случае результаты передаются на хост, который может либо применить дальнейшую обработку, либо отобразить сам вывод. [ нужна цитата ]

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]

  • Удаленное взаимодействие PowerShell . Используя WS-Management , PowerShell 2.0 позволяет запускать сценарии и командлеты на удаленном компьютере или большом наборе удаленных компьютеров.
  • Фоновые задания : также называемые PSJob , они позволяют асинхронно вызывать последовательность команд (скрипт) или конвейер. Задания можно запускать на локальном компьютере или на нескольких удаленных компьютерах. Интерактивный командлет в PSJob блокирует выполнение задания до тех пор, пока не будет предоставлен пользовательский ввод.
  • Транзакции : включите командлет, и разработчики смогут выполнять транзакционные операции . PowerShell 2.0 включает командлеты транзакций для запуска, фиксации и отката PSTransaction, а также функции для управления транзакцией и направления ее на участвующий командлет и операции поставщика. Поставщик реестра PowerShell поддерживает транзакции.
  • Расширенные функции : это командлеты, написанные с использованием языка сценариев PowerShell. Первоначально эта функция называлась «командлетами сценариев», но позже была переименована в «расширенные функции». [72]
  • SteppablePipelines : позволяет пользователю контролировать, когда BeginProcessing(), ProcessRecord() и EndProcessing() вызываются функции командлета.
  • Модули : это позволяет разработчикам и администраторам сценариев организовывать и разделять сценарии PowerShell в автономные модули многократного использования. Код модуля выполняется в своем собственном автономном контексте и не влияет на состояние вне модуля. Модули могут определять среду ограниченного пространства выполнения с помощью сценария. У них есть постоянное состояние, а также публичные и частные члены.
  • Язык данных : специфичное для предметной области подмножество языка сценариев PowerShell, которое позволяет отделять определения данных от сценариев и импортировать локализованные строковые ресурсы в сценарий во время выполнения ( интернационализация сценариев ).
  • Отладка сценариев : позволяет точки останова устанавливать в сценарии или функции PowerShell. Точки останова могут быть установлены для строк, строк и столбцов, команд и доступа к переменным для чтения или записи. Он включает в себя набор командлетов для управления точками останова с помощью сценария.
  • Eventing : эта функция позволяет прослушивать, пересылать и действовать в отношении событий управления и системы. Обработка событий позволяет узлам PowerShell получать уведомления об изменениях состояния их управляемых объектов. Это также позволяет сценариям PowerShell подписываться на ObjectEvents , PSEvents и WmiEvents и обрабатывать их синхронно и асинхронно.
  • Интегрированная среда сценариев Windows PowerShell (ISE) . PowerShell 2.0 включает хост PowerShell на основе графического пользовательского интерфейса, который обеспечивает встроенный отладчик, подсветку синтаксиса , завершение табуляции и до 8 консолей PowerShell с поддержкой Unicode (пространства выполнения) в пользовательском интерфейсе с вкладками, а также возможность для запуска только выбранных частей сценария.
  • Передача файлов по сети : встроенная поддержка приоритетной, регулируемой и асинхронной передачи файлов между компьютерами с использованием фоновой интеллектуальной службы передачи (BITS). [73]
  • Новые командлеты : в том числе Out-GridView, который отображает табличные данные в объекте WPF GridView , в системах, которые это позволяют, а также если ISE установлен и включен.
  • Новые операторы : -Split, -Join, и Сплаттинг ( @) операторы.
  • Обработка исключений с помощью Try-Catch-Finally : в отличие от других языков .NET, это позволяет использовать несколько типов исключений для одного блока catch.
  • Вложенные строки PowerShell : строки были улучшены и теперь могут быть вложенными. [74]
  • Блокировать комментарии : PowerShell 2.0 поддерживает блочные комментарии, используя <# и #> в качестве разделителей. [75]
  • Новые API . Новые API варьируются от передачи хосту большего контроля над синтаксическим анализатором PowerShell и средой выполнения до создания и управления коллекцией пространств выполнения ( RunspacePools), а также возможность создавать ограниченные пространства выполнения , которые позволяют вызывать только настроенное подмножество PowerShell. Новые API также поддерживают участие в транзакциях, управляемых PowerShell.

Windows PowerShell 3.0 [ править ]

PowerShell 3.0 интегрирован с Windows 8 и Windows Server 2012 . Microsoft также сделала PowerShell 3.0 доступным для Windows 7 с пакетом обновления 1, для Windows Server 2008 с пакетом обновления 1 и для Windows Server 2008 R2 с пакетом обновления 1. [76] [77]

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

Новые функции PowerShell 3.0 включают в себя: [77] [81] : 33–34 

  • Запланированные задания . Запуск заданий можно запланировать на заданное время и дату с помощью инфраструктуры планировщика задач Windows .
  • Подключение сеанса : сеансы можно отключать и повторно подключать. Удаленные сеансы стали более терпимы к временным сбоям в сети.
  • Улучшенное написание кода : автодополнение кода (IntelliSense) и фрагменты добавлены . PowerShell ISE позволяет пользователям использовать диалоговые окна для заполнения параметров командлетов PowerShell.
  • Поддержка делегирования : административные задачи можно делегировать пользователям, у которых нет разрешений для этого типа задач, без предоставления им постоянных дополнительных разрешений.
  • Обновление справки : справочную документацию можно обновить с помощью команды Update-Help.
  • Автоматическое обнаружение модулей : модули загружаются неявно при каждом вызове команды из этого модуля. Дополнение кода работает и для выгруженных модулей.
  • Новые команды : добавлены десятки новых модулей, включая функции управления дисками. get-WmiObject win32_logicaldisk, тома, брандмауэры, сетевые подключения и принтеры, которые ранее выполнялись через WMI. [ нужны дальнейшие объяснения ]

Windows PowerShell 4.0 [ править ]

PowerShell 4.0 интегрирован с Windows 8.1 и Windows Server 2012 R2 . Microsoft также сделала PowerShell 4.0 доступным для Windows 7 SP1 , Windows Server 2008 R2 SP1 и Windows Server 2012 . [82]

Новые функции PowerShell 4.0 включают в себя:

  • Желаемая конфигурация состояния : [83] [84] [85] Расширения и инструменты декларативного языка, которые позволяют развертывать данные конфигурации и управлять ими для систем с использованием DMTF стандартов управления WS-Management. и протокола
  • Новая политика выполнения по умолчанию . На серверах Windows политика выполнения по умолчанию теперь RemoteSigned.
  • Save-Help : теперь можно сохранять справку для модулей, установленных на удаленных компьютерах.
  • Улучшенная отладка . Отладчик теперь поддерживает рабочие процессы отладки, удаленное выполнение сценариев и сохранение сеансов отладки при повторном подключении сеанса PowerShell.
  • Переключатель -PipelineVariable : новый вездесущий параметр, позволяющий представить текущий объект конвейера как переменную для целей программирования.
  • Диагностика сети для управления физическими и Hyper-V. виртуализированными сетевыми коммутаторами
  • Синтаксис методов Where и ForEach предоставляет альтернативный метод фильтрации и перебора объектов.

Windows PowerShell 5.0 [ править ]

Значок PowerShell 5.0

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

Ключевые особенности:

  • Новый class ключевое слово , создающее классы для объектно-ориентированного программирования
  • Новый enum ключевое слово, которое создает перечисления
  • OneGet командлеты для поддержки Chocolatey менеджера пакетов [87]
  • Расширение поддержки управления коммутаторами на уровня 2 . сетевые коммутаторы [88]
  • Отладка фоновых заданий PowerShell и экземпляров PowerShell, размещенных в других процессах (каждый из которых называется «пространством выполнения»).
  • Конфигурация желаемого состояния (DSC) Локальный диспетчер конфигурации (LCM) версии 2.0
  • Частичные конфигурации DSC
  • Метаконфигурации DSC Local Configuration Manager
  • Создание ресурсов DSC с использованием классов PowerShell.

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]

  • The -Parallel переключатель для ForEach-Object командлет, помогающий обрабатывать параллельную обработку
  • Почти паритет с Windows PowerShell с точки зрения совместимости со встроенными модулями Windows.
  • Новый вид ошибок
  • The Get-Error командлет
  • Операторы цепочки трубопроводов ( && и ||), которые позволяют условно выполнить следующий командлет в конвейере.
  • Оператор ?: для троичной операции.
  • The ?? оператор объединения нулей
  • The ??= оператор для присваивания нулевого объединения
  • Кросс-платформенный Invoke-DscResource (экспериментальный)
  • Возвращение Out-GridView командлет
  • Возвращение -ShowWindow переключатель для Get-Help

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 -superset Windows-1252, также известного как ISO-8859-1 , которая не поддерживает Unicode ). [108] [98] Раньше UTF-8 использовался по умолчанию для других, но не для всех вещей.

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

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

Сравнение командлетов PowerShell с внутренними и внешними командами других интерпретаторов командной строки.
PowerShell (командлет) PowerShell (псевдоним) Командная строка Windows оболочка Unix Описание
Get-ChildItem gci, скажем, лс [а] ты лс Перечисляет все файлы и папки в текущей или заданной папке.
Тестовое соединение [б] пинг пинг пинг Отправляет эхо-запросы ICMP на указанный компьютер с текущего компьютера или дает указание сделать это другому компьютеру.
Получить контент GC, тип, кот тип кот Получает содержимое файла
Команда Get гкм помогите , где тип , который , компген Перечисляет доступные команды и получает путь к команде
Получить помощь помоги, чувак [а] помощь кстати , чувак Печатает документацию команды на консоли.
Очистить-Хост кл, ясно клс прозрачный Очищает экран [с]
Копировать-элемент cpi, копия, cp копирование , xcopy , робокопия КП Копирует файлы и папки в другое место
Переместить элемент ми, двигаться, МВ двигаться МВ Перемещает файлы и папки в новое место
Убрать предмет ри, дел, стереть, rmdir, rd, rm del , стереть , rmdir , rd rm , rmdir Удаляет файлы или папки
Переименовать-элемент рни, рен, мв Рен , переименуй МВ Переименовывает один файл, папку, жесткую ссылку или символическую ссылку.
Получить местоположение гл, компакт-диск, PWD CD страдающий Отображает рабочий путь (текущая папка)
Поп-локация попд попд попд Изменяет рабочий путь на место, последнее добавленное в стек.
Push-местоположение толчок толчок толчок Сохраняет рабочий путь в стек
Установить-Местоположение влево, вправо, вправо компакт-диск , каталог CD Меняет рабочий путь
Тройник-объект тройник тройник Перенаправляет входные данные в файл или переменную, передавая входные данные по конвейеру.
Вывод записи эхо, напиши эхо эхо Выводит строки или другие объекты на стандартный вывод.
Get-Process GPS, пс список , [д] список заданий [Это] пс Перечисляет все запущенные процессы
Остановить процесс спс, убей убить , [д] тасккилл [Это] убийство [ф] Останавливает запущенный процесс
Select-String слс находить , findstr схватить Печатает линии, соответствующие шаблону
Установить переменную св, набор набор env, экспорт, набор, setenv Создает или изменяет содержимое переменной среды
Invoke-WebRequest iwr, локон, wget [г] завиток [110] wget , локон Получает содержимое веб-страницы в Интернете.

Примечания

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

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

Расширение Описание
.ps1 Файл сценария [111]
.psd1 Файл манифеста модуля; обычно поставляется с модулем сценария или двоичным модулем [112]
.psm1 Файл модуля скрипта [113]
.dll DLL -совместимый [а] файл двоичного модуля [114]
.ps1xml Файл определений формата и типа [49] [115]
.xml XML -совместимый [б] сериализованный файл данных [116]
.psc1 Консольный файл [117]
.pssc Файл конфигурации сеанса [118]
.psrc Файл возможностей роли [119]
  1. ^ Библиотека динамической компоновки (DLL) не является форматом только для PowerShell. Это универсальный формат для хранения скомпилированного .NET . кода сборки
  2. ^ XML не является форматом только для PowerShell. Это популярный формат обмена информацией.

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

Приложение Версия Командлеты Поставщик Графический интерфейс управления
Сервер обмена 2007 402 Да Да
Windows-сервер 2008 Да Да Нет
Microsoft SQL-сервер 2008 Да Да Нет
Microsoft SharePoint 2010 Да Да Нет
Диспетчер конфигурации системного центра 2012 Р2 400+ Да Нет
Менеджер по эксплуатации системного центра 2007 74 Да Нет
Диспетчер виртуальных машин System Center 2007 Да Да Да
Менеджер по защите данных System Center 2007 Да Нет Нет
Сервер вычислительного кластера Windows 2007 Да Да Нет
Microsoft Transporter Suite для Lotus Domino [120] 08.02.0012 47 Нет Нет
Microsoft PowerTools для Open XML [121] 1.0 33 Нет Нет
IBM WebSphere MQ [122] 6.0.2.2 44 Нет Нет
IoT Core Дополнения [123] 74 Un­known Un­known
Оболочка управления квестами для Active Directory [124] 1.7 95 Нет Нет
Командование специального программного обеспечения для специальных операций [125] 1.0 Да Нет Да
VMware vSphere PowerCLI [126] 6,5 Р1 500+ Да Да
Информационные службы Интернета [127] 7.0 54 Да Нет
Windows 7 Центр устранения неполадок [128] 6.1 Да Нет Да
Набор средств развертывания Microsoft [129] 2010 Да Да Да
Набор инструментов NetApp PowerShell [130] [131] 4.2 2000+ Да Да
JAMS Scheduler – система доступа и управления заданиями [132] 5.0 52 Да Да
Автоматизация пользовательского интерфейса [133] 0.8 432 Нет Нет
Делл Экваллогик [134] 3.5 55 Нет Нет
ВОЙТИВ инвентарь [135] 5.8 Да Да Да
SePSX [136] 0.4.1 39 Нет Нет

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

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

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

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

  1. ^ «Выпуск версии 7.4.2 PowerShell · PowerShell/PowerShell» . Репозиторий PowerShell/PowerShell . Майкрософт . Получено 29 апреля 2024 г. — через GitHub.com .
  2. ^ «PowerShell для каждой системы!» . 12 июня 2017 г. — через GitHub.com .
  3. ^ Сновер, Джеффри (25 мая 2008 г.). «PowerShell и WPF: WTF» . Блог Windows PowerShell . Майкрософт.
  4. ^ Перейти обратно: а б с д Брайт, Питер (18 августа 2016 г.). «PowerShell — это последняя версия Microsoft с открытым исходным кодом, предназначенная для Linux, OS X» . Арс Техника . Конде Наст . Архивировано из оригинала 9 апреля 2020 года . Проверено 12 мая 2020 г.
  5. ^ «Анонсируем сборку 14971 Windows 10 Insider Preview для ПК» .
  6. ^ «PowerShell заменяет командную строку» .
  7. ^ Перейти обратно: а б с д Это "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 (Monad) прибыла» . Блог 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» . Гитхаб . Проверено 18 августа 2016 г.
  22. ^ Хансен, Кеннет; Кальво, Анхель (18 августа 2016 г.). «PowerShell в Linux и с открытым исходным кодом!» . Блог Windows PowerShell . Майкрософт .
  23. ^ Фоли, Мэри Джо (18 августа 2016 г.). «Microsoft открывает исходный код PowerShell; переносит его в Linux и Mac OS X» . ЗДНет . CBS Интерактив .
  24. ^ Перейти обратно: а б «PowerShell на Nano Server» . ТехНет . Майкрософт . 20 октября 2016 г.
  25. ^ Джонс, Дон (2020). Оболочка идеи: нерассказанная история PowerShell . Дон Ганнон-Джонс. п. 45. ИСБН  978-1-9536450-3-6 .
  26. ^ Пайетт, Брюс (2008). 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. ^ Перейти обратно: а б с «Командлеты 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. ^ "about_Pipelines" . ТехНет . Майкрософт . 8 мая 2014 г.
  48. ^ "о_Объектах" . ТехНет . Майкрософт . 8 мая 2014 г.
  49. ^ Перейти обратно: а б "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. ^ Перейти обратно: а б с "about_Functions" . Microsoft TechNet . Майкрософт . 17 октября 2013 года . Проверено 15 ноября 2013 г.
  55. ^ Перейти обратно: а б «Облегченное тестирование с помощью 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. ^ "about_Signing" . 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)» . Поддержка.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. ^ «Эмит-XML» . Блог Windows PowerShell . Майкрософт . 17 октября 2008 года . Проверено 27 сентября 2011 г.
  75. ^ «Блокировать комментарии в V2» . Блог Windows PowerShell . Майкрософт . 14 июня 2008 года . Проверено 27 сентября 2011 г.
  76. ^ Ли, Томас (13 августа 2012 г.). «PowerShell версии 3 — это первоначальная первоначальная версия!» . Под лестницей . Проверено 13 августа 2012 г.
  77. ^ Перейти обратно: а б с «Среда управления Windows 3.0» . Центр загрузки . Майкрософт . 4 сентября 2012 года . Проверено 8 ноября 2012 г.
  78. ^ «Windows Management Framework 3.0 Community Technology Preview (CTP) #2 доступна для загрузки» . Блог Windows PowerShell . Майкрософт . 2 декабря 2011 г.
  79. ^ «Среда управления Windows 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. ^ «ВМФ 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. ^ Перейти обратно: а б «Понимание кодировки файлов в 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» . Гитхаб . Проверено 22 июня 2020 г.
  101. ^ Перейти обратно: а б с Ли, Стив (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 г.

Дальнейшее чтение [ править ]

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 434184C3724E3E47296497261A7F8D9A__1715677020
URL1:https://en.wikipedia.org/wiki/PowerShell
Заголовок, (Title) документа по адресу, URL1:
PowerShell - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)