Глава 2. справочная система

Фильтрация по левому краю

Результаты команд, приведенные в этой главе, отфильтрованы по подмножеству. Например, использовался с параметром Name для фильтрации списка служб, которые были возвращены только службе времени Windows.

В конвейере всегда нужно как можно раньше отфильтровать результаты по параметрам поиска. Это выполняется с помощью параметров в первой команде или той, которая расположена в крайнем левом углу.
Иногда этот способ называется фильтрация слева.

В следующем примере используется параметр Name для немедленной фильтрации результатов только в службе времени Windows.

Нередко встречаются примеры, в которых команда передается для выполнения фильтрации.

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

Хотя это может быть не так важно в следующем примере, но представьте, что вы запрашиваете список пользователей Active Directory. Вы точно хотите вернуть данные для нескольких тысяч учетных записей пользователей из Active Directory только для передачи их в другую команду, которая фильтрует учетные записи в небольшом подмножестве? Я советую всегда выполнять фильтрацию по левому краю, даже если это кажется неважным

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

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

Команда в предыдущем примере не возвращает результаты, так как свойство CanStopAndContinue не существует при передаче результатов из в . Именно это свойство было «не выбрано». По сути, оно было отфильтровано. Обратная последовательность и выдает нужные результаты.

Развертывание на Nano Server

В этих указаниях предполагается, что Nano Server — это операционная система для удаленного управления, в которой уже работает какая-либо версия PowerShell. Дополнительные сведения см. в разделе о средстве создания образов Nano Server.

Двоичные файлы PowerShell можно развернуть двумя разными способами:

  1. Автономно — подключите виртуальный жесткий диск Nano Server и распакуйте содержимое ZIP-файла в выбранное расположение в этом образе.
  2. В сети — передайте ZIP-файл через сеанс PowerShell и распакуйте его в выбранное расположение.

В обоих случаях требуется ZIP-пакет выпуска Windows 10 семейства x64. Выполните команды в экземпляре PowerShell с ролью администратора.

Автономное развертывание PowerShell

  1. С помощью любой служебной программы ZIP распакуйте пакет в каталог, находящийся внутри подключенного образа Nano Server.
  2. Отключите образ и загрузите его.
  3. Подключитесь к встроенному экземпляру Windows PowerShell.
  4. Следуйте инструкциям, чтобы создать конечную точку удаленного взаимодействия с помощью .

Автономное PowerShell в сети

Разверните PowerShell в Nano Server, выполнив действия ниже.

Если вам требуется удаленное взаимодействие на основе WSMan, следуйте инструкциям, чтобы создать конечную точку удаленного взаимодействия с помощью .

Назначение

Windows PowerShell является ключевым инструментом управления, в отличие от Microsoft Management Console (MMC). Возможно, вы знаете, что консоль MMC сама по себе во многих случаях оказывается бесполезной. Для того, чтобы сделать ее полезной, необходимо добавлять оснастки. Оснастки дают специфические возможности управления продуктами и технологиями, например, возможность администрирования активной директории или Exchange Server.

Windows PowerShell действует по такому же принципу. Несмотря на то, что оболочка выполняет множество полезных функций, ее возможности предполагается расширять с помощью всевозможных оснасток и модулей. Windows PowerShell сама по себе не содержит эти оснастки и модули; они устанавливаются параллельно с тем продуктом, функцией или технологией, к которой они относятся. Другими словами, если вы хотите с помощью Windows PowerShell управлять службами Active Directory Domain Services, вам необходимо установить соответствующий модуль. Этот модуль устанавливается вместе с ролью Active Directory Domain Services. Некоторые модули также могут быть установлены параллельно с удаленным сервером Windows Remote Server Administration Toolkit (RSAT), что делает возможным установить модули, имеющие отношение к серверу, на клиентской операционной системе, например, Windows 7.

Некоторые модули можно загрузить отдельно. Например, на сайте CodePlex Web (www.codeplex.com) можно найти ряд проектов, имеющих отношение к Windows PowerShell со сторонних открытых источников. Многие из этих проектов имеют вид оснастки или модуля. К ним относится, например, популярный проект Windows PowerShell Community Extensions, который можно скачать с www.codeplex.com/powershellcx. Отдельно стоит упомянуть, что некоторые оснастки и модули помимо требований Windows PowerShell могут иметь свои собственные системные требования. Например, модулям может потребоваться конкретная версия Windows или Microsoft .NET Framework. В документации к каждому модулю или оснастке должны быть указаны специфические системные требования, помимо базовых требований оболочки.

Установщик PowerShell 7

Когда откроется мастер установки, нажмите «Next», чтобы установить PowerShell 7.

На следующем экране выберите папку, где будут размещены файлы PowerShell 7 и нажмите «Next»:

Затем вы решаете, какие дополнительные функции включить при установке. Вы можете включить или отключить следующие пять параметров:

  • Add PowerShell to Path Environment Variable: добавляет PowerShell в переменную среды Windows Path и позволяет вызывать PowerShell из любой другой оболочки или терминала.
  • Register Windows Event Logging Manifest: добавляет PowerShell в манифест регистрации событий Windows и позволяет регистрировать события из экземпляра PowerShell.
  • Enable PowerShell remoting: Включает возможность удалённого запуска команд на этой системе.
  • Add ‘Open here’ context menus to Explorer: добавляет параметр в контекстное меню, вызываемое правой кнопкой мыши, который открывает экземпляр PowerShell в папке, которую вы щёлкнули.
  • Add ‘Run with PowerShell 7-preview’ context menus for PowerShell files: добавляет параметр в контекстное меню, вызываемое правой кнопкой мыши, который для файлов PowerShell предлагает выполнить скрипт с помощью PowerShell 7.

Нажмите «Next» после выбора всех дополнительных функций, которые вы хотите.

На этом окне вы можете выбрать, хотите ли вы, чтобы PowerShell обновлялся с помощью службы обновления Windows. Вы по-прежнему можете обновлять PowerShell как вручную, так и вместе с обновлениями Windows.

Нажмите «Next» после выбора опций обновления.

Нажмите «Intall», чтобы начать установку. Появится приглашение UAC с запросом прав администратора для установки пакета. Нажмите «Да», чтобы продолжить.

После завершения работы мастера установки нажмите «Готово» для выхода.

Требования к операционной системе

Windows PowerShell 5.1

Windows PowerShell 5.1 выполняется в следующих версиях Windows: Для запуска Windows PowerShell 5.1 установите Windows Management Framework 5.1. Дополнительные сведения см. в статье Установка и настройка WMF 5.1.

Версия Windows Требования к системе
Windows Server 2022 Устанавливается по умолчанию
Windows Server 2019 Устанавливается по умолчанию
Windows Server 2016 Устанавливается по умолчанию
Windows Server 2012 R2 Установите Windows Management Framework 5.1
Windows Server 2012 Установите Windows Management Framework 5.1
Windows Server 2008 R2 с пакетом обновления 1 (SP1) Установите Windows Management Framework 5.1
Windows 11 Устанавливается по умолчанию
Windows 10 версии 1607 и выше Устанавливается по умолчанию
Windows 10 версии 1507, 1511 Установите Windows Management Framework 5.1
Windows 8.1 Установите Windows Management Framework 5.1
Windows 7 с пакетом обновления 1 (SP1) Установите Windows Management Framework 5.1

Windows PowerShell 5.0

Windows PowerShell 5.0 работает в следующих версиях Windows. Для запуска Windows PowerShell 5.0 установите Windows Management Framework 5.1. Дополнительные сведения см. в статье Установка и настройка WMF 5.1. Windows Management Framework 5.1 заменяет Windows Management Framework 5.0.

Версия Windows Требования к системе
Windows Server 2022 Более поздняя версия устанавливается по умолчанию
Windows Server 2019 Более поздняя версия устанавливается по умолчанию
Windows Server 2016 Более поздняя версия устанавливается по умолчанию
Windows Server 2012 R2 Установите Windows Management Framework 5.1
Windows Server 2012 Установите Windows Management Framework 5.1
Windows Server 2008 R2 с пакетом обновления 1 (SP1) Установите Windows Management Framework 5.1
Windows 11 Более поздняя версия устанавливается по умолчанию
Windows 10 версии 1607 и выше Более поздняя версия устанавливается по умолчанию
Windows 10 версии 1507, 1511 Устанавливается по умолчанию
Windows 8.1 Установите Windows Management Framework 5.1
Windows 7 с пакетом обновления 1 (SP1) Установите Windows Management Framework 5.1

Windows PowerShell 4.0

Windows PowerShell 4.0 выполняется в следующих версиях Windows: Чтобы запустить Windows PowerShell 4.0, установите указанную версию Windows Management Framework для вашей операционной системы.

Версия Windows Требования к системе
Windows 8.1 Устанавливается по умолчанию
Windows Server 2012 R2 Устанавливается по умолчанию
Windows 7 с пакетом обновления 1 (SP1) Установите Windows Management Framework 4.0
Windows Server 2008 R2 с пакетом обновления 1 (SP1) Установите Windows Management Framework 4.0

Windows PowerShell 3.0

Windows PowerShell 3.0 выполняется в следующих версиях Windows: Чтобы запустить Windows PowerShell 3.0, установите указанную версию Windows Management Framework для вашей операционной системы.

Версия Windows Требования к системе
Windows 8 Устанавливается по умолчанию
Windows Server 2012 Устанавливается по умолчанию
Windows 7 с пакетом обновления 1 (SP1) Установите Windows Management Framework 3.0
Windows Server 2008 R2 с пакетом обновления 1 (SP1) Установите Windows Management Framework 3.0
Windows Server 2008 с пакетом обновления 2 (SP2) Установите Windows Management Framework 3.0

Сценарии, функции и модули в Windows PowerShell

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

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

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

Важно!

По умолчанию выполнение сценариев в Windows запрещено! Для того чтобы посмотреть политику выполнения сценариев выполните командлет Get-ExecutionPolicy. В результате он вернет действующую политику, например:

  • Restricted – блокируется выполнение любых сценариев (значение по умолчанию);
  • AllSigned – разрешено выполнение сценариев, которые имеют цифровую подпись;
  • RemoteSigned – разрешено выполнение локальных сценариев, все скачанные сценарии должны иметь цифровую подпись;
  • Unrestricted — разрешено выполнение любых сценариев (не рекомендуется, так как небезопасно!).

Для разрешения выполнения сценариев необходимо использовать командлет Set-ExecutionPolicy с одним из вышеперечисленных параметров.

Например, для разрешения выполнения локальных сценариев выполним следующую команду, и согласимся с внесением изменений, нажав Y.

  
   Set-ExecutionPolicy RemoteSigned

В сценарии можно передавать параметры, делать их обязательными или задавать значение по умолчанию.

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

Для этого необходимо указать ключевое слово Function и затем в фигурных скобках {} написать алгоритм работы этой функции, т.е. набор команд (например, какая-нибудь часто используемая процедура: создать пользователя с определенными правами, очистить определенные каталоги и так далее). Потом необходимо сохранить все это в сценарий, но только уже с расширением .psm1, так как этот файл будет являться уже модулем.

Это еще не все, этот файл необходимо поместить в каталог, в котором PowerShell ищет модули. Таких каталогов несколько (специальный каталог в профиле пользователя, каталог, где установлен PowerShell), их можно посмотреть в переменных окружения PowerShell. Для этого выполните следующую команду

  
   Get-ChildItem Env:\PSModulePath | Format-Table -AutoSize

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

В комплект поставки модулей больше не входит PowerShell

По различным причинам совместимости следующие модули больше не включаются в PowerShell.

  • ISE
  • Microsoft.PowerShell.LocalAccounts
  • Microsoft.PowerShell.ODataUtils
  • Microsoft.PowerShell.Operation.Validation
  • PSScheduledJob
  • PSWorkflow
  • PSWorkflowUtility

Рабочий процесс PowerShell

Рабочий процесс PowerShell — это компонент Windows PowerShell на основе Windows Workflow Foundation (WF). Он позволяет создавать надежные модули Runbook для долго выполняющихся или параллелизованных задач.

Из-за отсутствия поддержки Windows Workflow Foundation в .NET Core мы удалили рабочий процесс PowerShell из PowerShell.

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

Если нужно возобновить выполнение скрипта после перезагрузки операционной системы с помощью контрольных точек, рекомендуем использовать планировщик задач. Он позволит запустить скрипт при запуске ОС. Но скрипт должен поддерживать свое собственное состояние (например, сохранять его в файле).

Изменения API

Удален класс

Класс был удален из для повышения производительности. Этот класс используется только командлетом и не должен влиять на пользователей.

Удален как поддерживаемый язык в Add-Type

Раньше для компиляции кода Visual Basic использовался командлет . Visual Basic редко использовался с . Мы удалили эту функцию, чтобы уменьшить размер PowerShell.

Удалена поддержка

Ранее при создании пространства выполнения PowerShell программными средствами с помощью API можно было использовать прежние версии или более новые версии классов .
Это изменение удалило поддержку , и теперь поддерживается только .

Удаление свойств и из

Свойство объекта не рекомендуется использовать с CoreCLR. Конечные пользователи не должны использовать это значение для определения совместимости.

Свойство было привязано к версии сборки Windows, однако эта функция недоступна на платформах, отличных от Windows. Используйте свойство , чтобы получить точную версию сборки PowerShell.

Реализован анализ escape-символов в Юникоде

или преобразуются в соответствующий символ Юникода. Для вывода литерала добавьте escape-символ в виде обратного апострофа: .

Проблема привязки параметра с в функциях PS

Отменено использование и

Очистка кода, связанного с использованием и в System. Management. Automation.

Эти незначительные критические изменения в основном влияют на код поставщика справки.

  • Измените общедоступные конструкторы на внутренние конструкторы. Мы больше не поддерживаем рабочий процесс, поэтому имеет смысл запретить пользователям создавать экземпляры .
  • Удалите тип System. Management. Automation.DebugSource, так как он используется только для отладки рабочего процесса.
  • Удалите перегрузку из отладчика абстрактного класса, который используется только для отладки рабочего процесса.
  • Удалите ту же перегрузку из производного класса RemotingJobDebugger.

Устранен перенос возвращаемого результата в при преобразовании в делегат

Когда преобразуется в тип делегата для использования в контексте C#, перенос результата в приводит к ненужным проблемам.

  • Когда значение преобразуется в возвращаемый тип-делегат, по сути разворачивается. Поэтому не требуется.
  • Если возвращаемый тип-делегат — , он переносится в , что затрудняет работу с ним в коде C#.

В результате этого изменения возвращается базовый объект.

Изменения в веб-командлетах

Базовый API .NET веб-командлетов был изменен на . Это изменение предоставляет множество преимуществ. Тем не менее это изменение вместе с недостатком взаимодействия с Internet Explorer привело к нескольким критическим изменениям в и .

  • теперь поддерживает только основной анализ HTML. всегда возвращает объект . Свойства и были удалены.
  • Значения теперь имеют тип , а не .
  • теперь является объектом .
  • Свойство в исключениях веб-командлетов теперь является объектом .
  • Строгий анализ заголовка RFC теперь является поведением по умолчанию для параметров и . Это можно обойти с помощью .
  • Схемы URI и больше не поддерживаются.
  • Параметры больше не обрабатываются.
  • В настоящее время в macOS нет проверки подлинности на основе сертификатов.
  • Использование в URI завершится ошибкой. Используйте URI или передайте параметр , чтобы подавить ошибку.
  • теперь создает неустранимую ошибку, если попытки перенаправления превышают указанный предел, вместо возвращения результатов последнего перенаправления.
  • В PowerShell 6.2 мы внесли изменения в кодировку UTF-8 по умолчанию для ответов JSON. Если для ответа JSON не указан набор символов, по умолчанию должна использоваться кодировка UTF-8 в соответствии с RFC 8259.
  • По умолчанию задана кодировка UTF-8 для ответов
  • Параметр , позволяющий использовать заголовки , которые не соответствуют стандартам
  • Добавлен параметр для упрощенной поддержки
  • Соответствующая, не учитывающая регистр обработка ключей отношения
  • Добавлен параметр для веб-командлетов

Invoke-RestMethod возвращает полезные сведения, если данные не возвращаются.

Если API возвращал только значение , сериализовал его в качестве строки , а не . Это изменение исправляет логику в , чтобы надлежащим образом сериализовать одно допустимое значение литерала JSON как .

Теперь веб-командлеты выдают предупреждение, если отправляется по незашифрованным подключениям

Где находятся все Служебные и Стандартные программы Windows 10

Чтобы найти список всех имеющихся служебных и стандартных программ Windows, следует нажать на большую кнопку «Пуск» в левом нижнем углу. На рис. 1 она находится внизу слева и обведена в красную рамку. Появится окно «Пуск», которое можно прокручивать вниз.

Рис. 1. Меню кнопки «Пуск» в Windows 10.

В окне «Пуск»имеется список программ по алфавиту. Сначала, нарушая алфавитный списк, там могут быть «Часто используемые» программы, хотя их может и не быть.

Затем идет список программ в соответствии с английским алфавитом, а еще ниже будут стоять в алфавитном порядке программы на русском языке.  На рис. 1 показаны две английских буквы «A» и «C». После каждой из них идет список тех программ, названия которых начинаются с этой буквы.

Понадобится скролить (листать вниз) список, например, прокручивая колесико мышки на себя, то есть, вниз. Тогда можно будет увидеть русскую букву «С» (не путаем с английской буквой «С», которая внешне выглядит совершенно так же). После русской «С» будут находиться все Служебные и все Стандартные программы.

Рис. 2. Где найти Служебные и Стандартные программы в меню «Пуск» Windows 10.

 Чтобы увидеть Служебные программы, надо рядом с надписью «Служебные – Windows» кликнуть по маленькому треугольничку, который обозначен цифрой 1 на рис. 2. Откроются все служебные программы (рис. 3).

Рис. 3. Список Служебных программ Windows 10.

Аналогичным образом, можно около надписи «Стандартные – Windows» щелкнуть по значку в виде треугольничка (цифра 2 на рис. 2). В итоге появится список всех стандартных программ (рис. 4).

Рис. 4. Список Стандартных программ Windows 10.

Среди списка программ можно выбрать какую-то одну. Если кликнуть по любой программе, она откроется и сразу же появится на экране.

Переменные среды PowerShell

Функции PowerShell могут использовать переменные среды для хранения настроек пользователя.
Эти переменные работают подобно переменным предпочтений, но они наследуются дочерними сеансами сеансов, в которых они созданы. Дополнительные сведения о переменных предпочтений см. в разделе about_Preference_Variables.

Ниже перечислены переменные среды, в которых хранятся настройки.

  • PSExecutionPolicyPreference

    Хранит политику выполнения, заданную для текущего сеанса. Эта переменная среды существует только в том случае, если задана политика выполнения для одного сеанса.
    Это можно сделать двумя разными способами.

    • Запустите сеанс из командной строки с помощью параметра ExecutionPolicy , чтобы задать политику выполнения для сеанса.

    • Используйте командлет . Используйте параметр Scope со значением «Process».

      Подробнее см. в разделе about_Execution_Policies.

  • псмодулеаналисискачепас

    PowerShell обеспечивает контроль над файлом, используемым для кэширования данных о модулях и их командлетах. Кэш считывается при запуске во время поиска команды и записывается в фоновом потоке после импорта модуля.

    Расположение кэша по умолчанию:

    • Windows PowerShell 5.1: .
    • PowerShell 6,0 и более поздние версии:
    • значение по умолчанию не Windows:

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

    Примечание

    Если обнаружение команд работает неправильно, например, в IntelliSense отображаются несуществующие команды, можно удалить файл кэша. Кэш создается повторно при следующем запуске PowerShell.

    Чтобы изменить расположение кэша по умолчанию, задайте переменную среды перед запуском PowerShell. Изменения этой переменной среды влияют только на дочерние процессы. Значение должно быть полным путем (включая имя файла), на создание и запись файлов по которому у среды PowerShell есть разрешение.

    Чтобы отключить файловый кэш, укажите в качестве этого значения недопустимое расположение, например:

    Это задает путь к устройству NUL . PowerShell не удается выполнить запись в путь, но ошибка не возвращается. Вы можете увидеть ошибки, о которых сообщили с помощью трассировки:

  • псдисаблемодулеаналисискачеклеануп

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

    Установка этой переменной среды вступает в силу немедленно в текущем процессе.

  • PSModulePath

    Переменная среды содержит список расположений папок, в которых выполняется поиск модулей и ресурсов.

    По умолчанию действующие расположения, назначенные, являются:

    • Расположения на уровне системы. Эти папки содержат модули, поставляемые с PowerShell. Модули хранятся в расположении. кроме того, это расположение, в котором устанавливаются модули управления Windows.

    • Модули, установленные пользователем: это модули, установленные пользователем.
      имеет параметр области , который позволяет указать, установлен ли модуль для текущего пользователя или для всех пользователей. Дополнительные сведения см. в разделе Install-Module.

      • в Windows расположением определяемой пользователем области CurrentUser является папка. Областью ALLUSERS является расположение .
      • в системах, отличных от Windows, расположением определенной пользователем области CurrentUser является папка. Областью ALLUSERS является расположение .

    Кроме того, программы установки, устанавливающие модули в других каталогах, например каталог Program Files, могут добавлять свои расположения к значению .

    Дополнительные сведения см. в разделе about_PSModulePath.

  • POWERSHELL_UPDATECHECK

    Настроить уведомления об обновлениях можно с помощью переменной среды . Поддерживаются следующие значения.

    • отключает функцию уведомления об обновлении
    • то же самое, что не определяет :
      • В общедоступных выпусках выводятся уведомления об обновлениях для общедоступных выпусков.
      • В предварительных выпусках и релизах-кандидатах выводятся уведомления об обновлениях для общедоступных и предварительных выпусков.
    • уведомления об обновлениях только для выпусков долгосрочного обслуживания (LTS)

    Дополнительные сведения см. в разделе about_Update_Notifications.

  • POWERSHELL_TELEMETRY_OPTOUT

    Чтобы отказаться от телеметрии, задайте для переменной среды значение , или .

    Дополнительные сведения см. в разделе about_Telemetry.

Параметры переключателя

Windows PowerShell предоставляет тип System. Management. Automation. переключатель , который позволяет определить параметр, значение которого автоматически устанавливается в, если параметр не указан при вызове командлета. Везде, где это возможно, используйте параметры переключения вместо логических параметров.

Рассмотрим следующий пример. по умолчанию несколько командлетов Windows PowerShell не передают выходной объект в конвейер. Однако эти командлеты имеют параметр Switch, который переопределяет поведение по умолчанию. Если параметр указан при вызове этих командлетов, командлет возвращает выходной объект в конвейер.

Если требуется, чтобы параметр имел значение по умолчанию , если параметр не указан в вызове, рассмотрите возможность отменять смысл параметра. Например, вместо присвоения атрибуту параметра логического значения , объявите свойство как тип System. Management. Automation. переключатель , а затем задайте для параметра значение по умолчанию .

Чтобы определить параметр переключателя, объявите свойство как тип System. Management. Automation. переключатель , как показано в следующем примере.

Чтобы командлет действовал для параметра, если он указан, используйте следующую структуру в одном из методов обработки ввода.

Архивы двоичных файлов

Для поддержки расширенных сценариев развертывания на платформах Linux доступны архивы двоичных файлов PowerShell.

Примечание

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

  • Стабильный выпуск: https://aka.ms/powershell-release?tag=stable
  • Предварительный выпуск: https://aka.ms/powershell-release?tag=preview
  • Выпуск LTS: https://aka.ms/powershell-release?tag=lts

Зависимости

PowerShell создает переносимые двоичные файлы для всех дистрибутивов Linux. Но среда выполнения .NET Core, как и PowerShell, требует различные зависимости для разных дистрибутивов.

На следующей диаграмме показаны официально поддерживаемые зависимости .NET Core 2.0 для различных дистрибутивов Linux.

OS Зависимости
Ubuntu 16.04 libc6, libgcc1, libgssapi-krb5-2, liblttng-ust0, libstdc++6, libcurl3, libunwind8, libuuid1, zlib1g, libssl1.0.0, libicu55
Ubuntu 17.10 libc6, libgcc1, libgssapi-krb5-2, liblttng-ust0, libstdc++6, libcurl3, libunwind8, libuuid1, zlib1g, libssl1.0.0, libicu57
Ubuntu 18.04 libc6, libgcc1, libgssapi-krb5-2, liblttng-ust0, libstdc++6, libcurl3, libunwind8, libuuid1, zlib1g, libssl1.0.0, libicu60
Debian 8 (Jessie) libc6, libgcc1, libgssapi-krb5-2, liblttng-ust0, libstdc++6, libcurl3, libunwind8, libuuid1, zlib1g, libssl1.0.0, libicu52
Debian 9 (Stretch) libc6, libgcc1, libgssapi-krb5-2, liblttng-ust0, libstdc++6, libcurl3, libunwind8, libuuid1, zlib1g, libssl1.0.2, libicu57
CentOS 7 Oracle Linux 7 RHEL 7 libunwind, libcurl, openssl-libs, libicu
openSUSE 42.3 libcurl4, libopenssl1_0_0, libicu52_1
openSUSE Leap 15 libcurl4, libopenssl1_0_0, libicu60_2
Fedora 27 Fedora 28 libunwind, libcurl, openssl-libs, libicu, compat-openssl10

Чтобы развернуть двоичные файлы PowerShell в дистрибутивах Linux, для которых официальная поддержка не предусмотрена, необходимо специально установить необходимые пакеты, чтобы выполнить все требования, касающиеся зависимостей, для целевой ОС. Например, наш Dockerfile для Amazon Linux сначала устанавливает зависимости, а затем извлекает архив Linux .

Установка — архивы двоичных файлов

В приведенном ниже примере показано, как установить двоичный архив для 64-разрядных версий. Выберите правильный двоичный архив, соответствующий типу процессора для вашей платформы.

  • powershell-7.1.4-linux-arm32.tar.gz
  • powershell-7.1.4-linux-arm64.tar.gz
  • powershell-7.1.4-linux-x64.tar.gz

Установка PowerShell 7

Для обеспечения гибких возможностей и в связи с требованиями ИТ-специалистов, инженеров DevOps, а также разработчиков доступно несколько вариантов установки PowerShell 7. В большинстве случаев варианты установки можно сократить до следующих методов:

  • развертывание PowerShell с помощью ;
  • развертывание PowerShell с помощью .

Примечание

MSI-пакет можно развернуть и обновить с помощью таких продуктов для управления, как System Center Configuration Manager (SCCM). Скачайте пакеты на странице выпусков GitHub.

Для развертывания MSI-пакета требуются привилегии администратора. ZIP-пакет может развернуть любой пользователь. Установка с помощью ZIP-пакета — это самый простой способ установить PowerShell 7 для тестирования перед полной установкой.

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

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Ваша ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: