Windows powershell: что это за программа

Deploying on Nano Server

These instructions assume that the Nano Server is a «headless» OS that has a version of PowerShell
is already running on it. For more information, see the
Nano Server Image Builder documentation.

PowerShell binaries can be deployed using two different methods.

  1. Offline — Mount the Nano Server VHD and unzip the contents of the zip file to your chosen
    location within the mounted image.
  2. Online — Transfer the zip file over a PowerShell Session and unzip it in your chosen location.

In both cases, you need the Windows 10 x64 ZIP release package. Run the commands within an
«Administrator» instance of PowerShell.

Offline Deployment of PowerShell

  1. Use your favorite zip utility to unzip the package to a directory within the mounted Nano Server
    image.
  2. Unmount the image and boot it.
  3. Connect to the built-in instance of Windows PowerShell.
  4. Follow the instructions to create a remoting endpoint using the
    .

Online Deployment of PowerShell

Deploy PowerShell to Nano Server using the following steps.

  • Connect to the built-in instance of Windows PowerShell

  • Copy the file to the Nano Server instance

  • Enter the session

  • Extract the ZIP file

  • If you want WSMan-based remoting, follow the instructions to create a remoting endpoint using the
    .

Сохранение и отзыв последних расположений (Push-Location и Pop-Location)

При изменении расположения полезно отслеживать свое предыдущее расположение и иметь возможность вернуться к нему. Командлет Push-Location в Windows PowerShell создает упорядоченный журнал («стек») путей к каталогам, которые вы открывали, чтобы можно было вернуться на шаг назад по журналу путей к каталогу, используя дополнительный командлет Pop-Location.

Например, Windows PowerShell обычно запускается в корневом каталоге пользователя.

Примечание

Слово стек имеет специальное значение во многих параметрах программирования, включая .NET Framework. Например, в физическом стеке элементов последний элемент, помещенный в стек, является первым элементом, который можно извлечь из него. Добавление элемента в стек в разговорной речи называется «проталкиванием» элемента в стек. Извлечение элемента из стека в разговорной речи называется «выводом» элемента из стека.

Чтобы передать текущее расположение в стек, а затем переместить его в папку локальных параметров, введите:

После этого можно передать расположение локальных параметров в стек и переместить его в папку Temp, введя следующее:

Чтобы убедиться, что каталоги изменены, введите команду Get-Location:

После этого можно перейти в последний открытый каталог, введя команду Pop-Location, и проверить изменение, введя команду Get-Location:

Как и в случае с командлетом Set-Location, можно включить параметр -PassThru при вводе командлета Pop-Location, чтобы открыть указанный каталог:

Кроме того, можно использовать командлеты расположения с сетевыми путями. Если у вас есть сервер FS01 с общей папкой Public, можно изменить расположение, введя

или

Для изменения расположения на любой доступный диск можно использовать команды Push-Location и Set-Location. Например, если у вас есть локальный дисковод компакт-дисков с буквой диска D, содержащий компакт-диск с данными, вы можете изменить расположение на дисковод компакт-дисков, введя команду Set-Location D:.

Если дисковод пуст, вы получите следующее сообщение об ошибке:

Контрольные точки

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

Можно установить контрольную точку для рабочего процесса при помощи действия Checkpoint-Workflow . При включении этого действия в модуль Runbook немедленно создается контрольная точка. Если модуль Runbook приостанавливается из-за ошибки, при возобновлении задания оно возобновляется с момента последней заданной контрольной точки.

В следующем примере кода ошибка возникает после того как действие Activity2 вызывает приостановку модуля Runbook. При возобновлении задания оно начинается с запуска Activity2, поскольку это действие было сразу после последней заданной контрольной точки.

Контрольные точки необходимо создавать в модуле Runbook после действий, которые подвержены ошибкам и не должны повторятся, когда возобновляется выполнение модуля. Например, модуль Runbook может создавать виртуальную машину. Контрольную точку следует создавать как до, так и после команды создания виртуальной машины. В случае сбоя создания команды повторяются, когда возобновляется выполнение модуля Runbook. Если создание выполняется успешно, но позднее происходит сбой выполнения Runbook, виртуальная машина не создается повторно при возобновлении Runbook.

Дополнительные сведения о контрольных точках см. в статье Добавление контрольных точек в рабочий процесс сценария.

Install PowerShell via Winget

The command-line tool enables developers to discover, install, upgrade, remove and configure
applications on Windows 10 computers. This tool is the client interface to the Windows Package Manager
service
.

Note

The tool is currently a preview. Not all planned functionality is available at this time.
The tool’s options and features are subject to change. You should not use this method in a
production deployment scenario. See the winget documentation for a list of system requirements
and install instructions.

The following commands can be used to install PowerShell using the published packages:

  1. Search for the latest version of PowerShell

  2. Install a version of PowerShell using the parameter

Обновление существующей версии Windows PowerShell

В пакет установки для PowerShell входит установщик WMF. Версия установщика WMF совпадает с версией PowerShell. Для Windows PowerShell нет отдельного установщика.

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

Windows PS 3.0 PS 4.0 PS 5.0 PS 5.1
Windows 10 (см. примечание 1)Windows Server 2016 установлено
Windows 8.1Windows Server 2012 R2 установлено WMF 5.0 WMF 5.1
Windows 8Windows Server 2012 установлено WMF 4.0 WMF 5.0 WMF 5.1
Windows 7 с пакетом обновления 1 (SP1)Windows Server 2008 R2 с пакетом обновления 1 (SP1) WMF 3.0 WMF 4.0 WMF 5.0 WMF 5.1

Примечание

Если в начальном выпуске Windows 10 включены автоматические обновления, PowerShell обновляется с версии 5.0 до 5.1. Если оригинальная версия Windows 10 не обновлена в Центре обновления Windows, версия PowerShell будет 5.0.

Основные команды для PowerShell

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

  • Get-Help — отображение справочных сведений о командлетах и основных понятиях. В справке описываются командлеты, функции, сценарии и модули, а также объясняются основные понятия, в том числе элементы языка Windows PowerShell.
  • Update-Help — загрузка и установка файлов справки с общей папки или Интернета. После обновлений операционной системы может понадобиться обновление справки — обнаружение, скачивание и установка обновлений для модулей.
  • Get-Command — вывод всех доступных функций и командлетов, с авто заполнением строки. Выбрав интересующую команду, выполните её с Get-Help для быстрого получения справки. Например, ознакомится с Get-Help Remove-AppxPackage.

Заключение

На самом деле Windows PowerShell — это очень полезная программа, которая не раз экономила нам время. Множество инструкций писались на примерах с её использованием. Но даже половина возможностей обновлённой оболочки не была задействована. О работе в ней можно написать значительно больше. Но благодаря основным командам можно ознакомиться со всеми возможностями программы.

Installing the ZIP package

PowerShell binary ZIP archives are provided to enable advanced deployment scenarios. Download one of
the following ZIP archives from the releases page.

  • PowerShell-7.1.4-win-x64.zip
  • PowerShell-7.1.4-win-x86.zip
  • PowerShell-7.1.4-win-arm64.zip
  • PowerShell-7.1.4-win-arm32.zip

Depending on how you download the file you may need to unblock the file using the
cmdlet. Unzip the contents to the location of your choice and run from there. Unlike
installing the MSI packages, installing the ZIP archive doesn’t check for prerequisites. For
remoting over WSMan to work properly, ensure that you’ve met the .

Use this method to install the ARM-based version of PowerShell on computers like the Microsoft
Surface Pro X. For best results, install PowerShell to the to
folder.

Note

You can use this method to install any version of PowerShell including the latest:

  • Stable release: https://aka.ms/powershell-release?tag=stable
  • Preview release: https://aka.ms/powershell-release?tag=preview
  • LTS release: https://aka.ms/powershell-release?tag=lts

Конвейер в PowerShell

Одной из главных возможностей Windows PowerShell является возможность использования конвейера при выполнении команд.

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

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

Например, давайте узнаем название самого большого файла в каталоге «C:\Windows\System32» (простой пример конвейера).

Команда

  
   Get-ChildItem -Path "C:\Windows\System32" -File | Sort-Object length -Descending | Select-Object -First 1

Где,

  • Get-ChildItem – командлет получения объектов в указанном каталоге;
  • Sort-Object – командлет для сортировки объектов, в нашем случае мы сортируем по размеру файла (length -Descending);
  • Select-Object – командлет выбора нужных свойств объекта, в нашем случае мы выводим стандартные поля и только самый первый объект, т.е. большой файл (параметр -First 1).

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

Требования к Microsoft .NET Framework

В следующей таблице приведены требования к .NET Framework для Windows PowerShell.

Версия Требование к .NET
Windows PowerShell 5.1 Требует полную установку Microsoft .NET Framework 4.5. Windows 8.1 и Windows Server 2012 R2 включают Microsoft .NET Framework 4.5 по умолчанию.
Windows PowerShell 5.0 Требует полную установку Microsoft .NET Framework 4.5. Windows 8.1 и Windows Server 2012 R2 включают Microsoft .NET Framework 4.5 по умолчанию.
Windows PowerShell 4.0 Требует полную установку Microsoft .NET Framework 4.5. Windows 8.1 и Windows Server 2012 R2 включают Microsoft .NET Framework 4.5 по умолчанию.
Windows PowerShell 3.0 Требует полную установку Microsoft .NET Framework 4. Windows 8 и Windows Server 2012 содержат Microsoft .NET Framework 4.5 по умолчанию, что удовлетворяет этому требованию.

Используйте следующие ссылки, чтобы загрузить Microsoft .NET Framework из центра загрузки Майкрософт.

Версия Ссылка
.NET Framework 4.5 () Microsoft .NET Framework 4.5
.NET Framework 4 () Microsoft .NET Framework 4 (веб-установщик)

Installing the MSI package

The MSI file looks like . For example:

Once downloaded, double-click the installer and follow the prompts.

The installer creates a shortcut in the Windows Start Menu.

  • By default the package is installed to
  • You can launch PowerShell via the Start Menu or

Note

PowerShell 7.1 installs to a new directory and runs side-by-side with Windows PowerShell 5.1.
PowerShell 7.1 is an in-place upgrade that replaces PowerShell 6.x. or PowerShell 7.0.

  • PowerShell 7.1 is installed to
  • The folder is added to
  • The folder is deleted

If you need to run PowerShell 7.1 side-by-side with other versions, use the
method to install the other version to a different folder.

Administrative install from the command line

MSI packages can be installed from the command line allowing administrators to deploy packages
without user interaction. The MSI package includes the following properties to control the
installation options:

  • ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL — This property controls the option for adding the
    Open PowerShell item to the context menu in Windows Explorer.
  • ADD_FILE_CONTEXT_MENU_RUNPOWERSHELL — This property controls the option for adding the
    Run with PowerShell item to the context menu in Windows Explorer.
  • ENABLE_PSREMOTING — This property controls the option for enabling PowerShell remoting during
    installation.
  • REGISTER_MANIFEST — This property controls the option for registering the Windows Event
    Logging manifest.

The following example shows how to silently install PowerShell with all the install options enabled.

For a full list of command-line options for , see
Command line options.

Registry keys created during installation

Beginning in PowerShell 7.1, the MSI package creates registry keys that store the installation
location and version of PowerShell. These values are located in
. The value of
is unique for each build type (release or preview), major version, and architecture.

Release Architecture Registry Key
7.1.x Release x86
7.1.x Release x64
7.1.x Preview x86
7.1.x Preview x64

This can be used by administrators and developers to find the path to PowerShell. The
values are the same for all preview and minor version releases. The
values are changed for each major release.

Deploying on Nano Server

These instructions assume that the Nano Server is a «headless» OS that has a version of PowerShell
is already running on it. For more information, see the
Nano Server Image Builder documentation.

PowerShell binaries can be deployed using two different methods.

  1. Offline — Mount the Nano Server VHD and unzip the contents of the zip file to your chosen
    location within the mounted image.
  2. Online — Transfer the zip file over a PowerShell Session and unzip it in your chosen location.

In both cases, you need the Windows 10 x64 ZIP release package. Run the commands within an
«Administrator» instance of PowerShell.

Offline Deployment of PowerShell

  1. Use your favorite zip utility to unzip the package to a directory within the mounted Nano Server
    image.
  2. Unmount the image and boot it.
  3. Connect to the built-in instance of Windows PowerShell.
  4. Follow the instructions to create a remoting endpoint using the
    .

Online Deployment of PowerShell

Deploy PowerShell to Nano Server using the following steps.

  • Connect to the built-in instance of Windows PowerShell

  • Copy the file to the Nano Server instance

  • Enter the session

  • Extract the ZIP file

  • If you want WSMan-based remoting, follow the instructions to create a remoting endpoint using the
    .

7.1.3 — 2021-03-11

Engine Updates and Fixes

  • Remove the 32K character limit on the environment block for ()
  • Fix webcmdlets to properly construct URI from body when using ()

Build and Packaging Improvements

Bump .NET SDK to 5.0.4

  • Bump .NET SDK to 5.0.4 (Internal 14775)
  • Disable running markdown link verification in release build CI (, , )
  • Use template that disables component governance for CI ()
  • Declare which variable group is used for checking the blob in the release build ()
  • Add suppress for nuget multi-feed warning ()
  • Disable code signing validation where the file type is not supported ()
  • Install wget on 7 docker image ()
  • Fix install-dotnet download ()
  • Make universal Deb package based on deb package spec ()
  • Fix release build to upload global tool packages to artifacts ()
  • Update component version in test ()
  • Add manual release automation steps and improve changelog script ()
  • Update markdown test packages with security fixes ()
  • Fix a typo in the function ()
  • Disable global tool copy to unblock release

Известные проблемы и их решенияKnown issues and workarounds

Проблема. известная ошибка в политиках безопасности PowerShell вызывает следующие проблемы манифеста в удаленном сеансе:ISSUE: A known bug in PowerShell security policies causes the following issues to manifest within the remote session:

  • Командлет Get-Help возвращает непредвиденные совпадения.Get-Help returns unexpected matches.
  • Get-Command для указанного модуля возвращает пустой список команд.Get-Command on a specified module returns an empty command list.
  • Выполнение командлета из любого из этих модулей вызывает исключение Комманднотфаундексцептион: appx, NetAdapter, NetSecurity, Нетткпип, код устройства PnP.Running a cmdlet from any of these modules throws CommandNotFoundException: Appx, NetAdapter, NetSecurity, NetTCPIP, PnpDevice.
  • Import-Module в любом из перечисленных выше модулей вызывает исключение Пссекуритексцептион с Унаусоризедакцесс.Import-Module on any of the above modules throws PSSecurityException exception with UnauthorizedAccess. Автоматическая загрузка модуля не работает.Module auto loading does not seem to work either.

Решение. Измените политику выполнения в удаленном сеансе PowerShell на RemoteSigned.Workaround: Modify the execution policy within the remote PowerShell session to RemoteSigned. Дополнительные сведения о различных политиках выполнения см. в разделе Использование командлета Set-ExecutionPolicy.For more details on the different execution policies, see Using the Set-ExecutionPolicy Cmdlet.

Проблема. командлеты из некоторых модулей, например NetAdapter, иногда не видны.ISSUE: Cmdlets from some modules such as NetAdapter are sometimes not visible. Например, командлет Get-Module NetAdapter возвращает пустой список.For example, Get-Module NetAdapter returns an empty list.

Обходное решение. Используйте параметр-Force с командлетом Import-Module.Workaround: Use the -Force parameter with Import-Module. Например, .For example, .

Ошибка. при задании для политики выполнения значения «AllSigned» удаленное взаимодействие PowerShell прекращается.ISSUE: Setting execution policy to «AllSigned» breaks PowerShell remoting. Последующие попытки создания удаленного сеанса завершаются ошибкой с помощью SecurityException Load Typesv3. ps1xml.Subsequent attempts to create a remote session fail with a SecurityException loading Typesv3.ps1xml.

Обходное решение. Используйте WinRS. exe для восстановления политики выполнения PowerShell:Workaround: Use winrs.exe to restore PowerShell’s execution policy:

  • Изменить кодовую страницу консолиChange console code page
  • Вход в удаленную оболочку cmd. exe Log on to a remote cmd.exe shell
  • В удаленном cmd. exe измените соответствующий раздел реестра Within remote cmd.exe, modify the appropriate registry key
  • Выход из удаленного сеанса cmd. exe Exit remote cmd.exe session

Другие известные проблемыOther known issues

  • В скриптах PowerShell атрибуты для класса или перечисления PowerShell не работают.In PowerShell scripts, attributes to PowerShell class or enumeration do not work. Добавление результатов с атрибутами в следующем вызываемом исключении: тип должен быть объектом типа среды выполнения.Adding attributed results in the following exception thrown: Type must be a runtime Type object.

  • Исходящее удаленное взаимодействие CIM и PowerShell не поддерживается.Outbound CIM and PowerShell remoting is not supported. Соответствующие функции в командлетах, связанных с проверяющей стороной, не будут работать.Relevant functionality in relying cmdlets will not work. К ним относятся ввод-PSSession, Get-Job, Receive-Job, Import-Module, Invoke-Command и Copy-Item.These include Enter-PSSession, Get-Job, Receive-Job, Import-Module, Invoke-Command, and Copy-Item.

  • Команды SecureString ConvertFrom-SecureString и ConvertTo-SecureString не работают, если сеанс не создан с помощью проверки подлинности CredSSP.SecureString commands ConvertFrom-SecureString and ConvertTo-SecureString do not work unless the session is created using CredSSP authentication. В противном случае необходимо указать параметр-key.Otherwise, the -Key parameter must be specified. Дополнительные сведения о настройке проверки подлинности CredSSP см. в статье Включение функции второго прыжка PowerShell с помощью CredSSP.For details on configuring CredSSP authentication, see Enable PowerShell “Second-Hop” Functionality with CredSSP.

Deploying on Nano Server

These instructions assume that the Nano Server is a «headless» OS that has a version of PowerShell
is already running on it. For more information, see the
Nano Server Image Builder documentation.

PowerShell binaries can be deployed using two different methods.

  1. Offline — Mount the Nano Server VHD and unzip the contents of the zip file to your chosen
    location within the mounted image.
  2. Online — Transfer the zip file over a PowerShell Session and unzip it in your chosen location.

In both cases, you need the Windows 10 x64 ZIP release package. Run the commands within an
«Administrator» instance of PowerShell.

Offline Deployment of PowerShell

  1. Use your favorite zip utility to unzip the package to a directory within the mounted Nano Server
    image.
  2. Unmount the image and boot it.
  3. Connect to the built-in instance of Windows PowerShell.
  4. Follow the instructions to create a remoting endpoint using the
    .

Online Deployment of PowerShell

Deploy PowerShell to Nano Server using the following steps.

  • Connect to the built-in instance of Windows PowerShell

  • Copy the file to the Nano Server instance

  • Enter the session

  • Extract the ZIP file

  • If you want WSMan-based remoting, follow the instructions to create a remoting endpoint using the
    .

Installing the MSI package

The MSI file looks like . For example:

Once downloaded, double-click the installer and follow the prompts.

The installer creates a shortcut in the Windows Start Menu.

  • By default the package is installed to
  • You can launch PowerShell via the Start Menu or

Note

PowerShell 7.1 installs to a new directory and runs side-by-side with Windows PowerShell 5.1.
PowerShell 7.1 is an in-place upgrade that replaces PowerShell 6.x. or PowerShell 7.0.

  • PowerShell 7.1 is installed to
  • The folder is added to
  • The folder is deleted

If you need to run PowerShell 7.1 side-by-side with other versions, use the
method to install the other version to a different folder.

Administrative install from the command line

MSI packages can be installed from the command line allowing administrators to deploy packages
without user interaction. The MSI package includes the following properties to control the
installation options:

  • ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL — This property controls the option for adding the
    Open PowerShell item to the context menu in Windows Explorer.
  • ADD_FILE_CONTEXT_MENU_RUNPOWERSHELL — This property controls the option for adding the
    Run with PowerShell item to the context menu in Windows Explorer.
  • ENABLE_PSREMOTING — This property controls the option for enabling PowerShell remoting during
    installation.
  • REGISTER_MANIFEST — This property controls the option for registering the Windows Event
    Logging manifest.

The following example shows how to silently install PowerShell with all the install options enabled.

For a full list of command-line options for , see
Command line options.

Registry keys created during installation

Beginning in PowerShell 7.1, the MSI package creates registry keys that store the installation
location and version of PowerShell. These values are located in
. The value of
is unique for each build type (release or preview), major version, and architecture.

Release Architecture Registry Key
7.1.x Release x86
7.1.x Release x64
7.1.x Preview x86
7.1.x Preview x64

This can be used by administrators and developers to find the path to PowerShell. The
values are the same for all preview and minor version releases. The
values are changed for each major release.

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

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

Основная структура

Рабочий процесс Windows PowerShell начинается с ключевого слова Workflow, за которым следует тело скрипта, заключенное в скобки. Имя рабочего процесса следует за ключевым словом Workflow , как это показано в следующем синтаксисе. Имя рабочего процесса совпадает с именем runbook службы автоматизации.

Чтобы добавить параметры в рабочий процесс, используйте ключевое слово Param, как показано в следующем примере синтаксиса. Портал управления предложит пользователю предоставить значения этих параметров при запуске модуля runbook. В этом примере используется дополнительный атрибут Parameter, который указывает, обязателен ли этот параметр.

Именование

Имя рабочего процесса должно соответствовать формату «глагол-существительное», принятому в Windows PowerShell. Список утвержденных глаголов для использования можно найти в статье Approved Verbs for Windows PowerShell Commands (Утвержденные глаголы для команд Windows PowerShell) . Имя рабочего процесса должно соответствовать имени модуля Runbook в службе автоматизации. При импорте модуля Runbook имя файла должно соответствовать имени рабочего процесса и должно заканчиваться на .ps1.

Ограничения

Полный список ограничений и различий синтаксиса между Windows PowerShell и рабочими процессами Windows PowerShell см. в разделе Различия синтаксиса между сценариями и рабочими процессами сценариев.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector