about_Windows_PowerShell_5.0

КРАТКОЕ ОПИСАНИЕ

Описание новых функций, включенных в Windows PowerShell 5.0.

ПОДРОБНОЕ ОПИСАНИЕ

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

Windows PowerShell 5.0 обеспечивает обратную совместимость. Командлеты, поставщики, модули, оснастки, сценарии, функции и профили, разработанные для Windows PowerShell 4.0, Windows PowerShell 3.0 и Windows PowerShell 2.0, обычно работают в Windows PowerShell 5.0 без изменений.

Windows PowerShell 5.0 устанавливается по умолчанию на Windows Server Technical Preview и Windows Technical Preview. Чтобы установить Windows PowerShell 5.0 в системе Windows Server 2012 R2, Windows 8.1 Корпоративная или Windows 8.1 Профессиональная, скачайте и установите Windows Management Framework 5.0. Прежде чем устанавливать Windows Management Framework 5.0, прочтите сведения о скачивании и убедитесь, что все требования к системе выполнены.

Вы также можете ознакомиться с изменениями в Windows PowerShell 5.0 в статье Новые возможности Windows PowerShell.

НОВЫЕ ВОЗМОЖНОСТИ

Новые функции в Windows PowerShell

  • Начиная с Windows PowerShell 5.0 разработку можно вести с использованием классов, формального синтаксиса и семантики, которые похожи на используемые в других объектно-ориентированных языках программирования. Для поддержки новой функции в язык Windows PowerShell были добавлены Class, Enum и другие ключевые слова. Дополнительные сведения о работе с классами см. в статье "about_Classes".

  • При сотрудничестве с Microsoft Research был добавлен новый командлет ConvertFrom-String. ConvertFrom-String позволяет извлекать и анализировать структурированные объекты из содержимого текстовых строк. Дополнительные сведения см. в статье "ConvertFrom-String".

  • Новый модуль Microsoft.PowerShell.Archive содержит командлеты, позволяющие сжимать файлы и папки в архивы (которые также называют ZIP-файлами), извлекать файлы из существующих ZIP-файлов и обновлять ZIP-файлы с использованием более поздних версий содержащихся в них файлов.

  • Новый модуль OneGet позволяет обнаруживать и устанавливать пакеты программного обеспечения в Интернете. Модуль OneGet — это диспетчер или мультиплексор существующих диспетчеров пакетов (также называемых поставщиками пакетов) для объединения управления пакетами Windows с помощью единого интерфейса Windows PowerShell.

  • Новый модуль PowerShellGet позволяет находить, устанавливать, публиковать и обновлять модули и ресурсы DSC в коллекции ресурсов PowerShell или во внутреннем репозитории модулей, который можно настроить с помощью командлета Register-PSRepository.

  • Командлеты New-Item, Remove-Item и Get-ChildItem были усовершенствованы для поддержки создания символьных ссылок и управления ими. Параметр ItemType для New-Item принимает новое значение SymbolicLink. Теперь символьные ссылки можно создавать в отдельной строке с помощью командлета New-Item.

  • Транскрибирование Windows PowerShell было улучшено и теперь распространяется на все приложения размещения (например, интегрированную среду сценариев Windows), а не только узел консоли (powershell.exe). Параметры транскрибирования (в том числе включение записи во всей системе) можно настроить с помощью параметра групповой политики Включить транскрипции PowerShell, который находится в разделе "Административные шаблоны/Компоненты Windows/Windows PowerShell".

  • Новая функция подробной трассировки сценариев позволяет включить подробное отслеживание и анализ для используемых в системе сценариев Windows PowerShell. После включения этой функции Windows PowerShell записывает все блоки сценариев в журнале событий трассировки Windows — Microsoft-Windows-PowerShell/Operational.

  • Начиная с Windows PowerShell 5.0, командлеты Cryptographic Message Syntax поддерживают шифрование и расшифровку содержимого с помощью стандартного формата IETF для криптографической защиты сообщений, задокументированного в RFC5652. Командлеты Get-CmsMessage, Protect-CmsMessage и Unprotect-CmsMessage были добавлены в модуль Microsoft.PowerShell.Security.

  • Новые командлеты в модуле Microsoft.PowerShell.Utility — Get-Runspace, Debug-Runspace, Get-RunspaceDebug, Enable-RunspaceDebug и Disable-RunspaceDebug — позволяют задавать параметры отладки для пространства выполнения, а также запускать и останавливать отладку в нем. Для отладки произвольных пространств выполнения, то есть пространств выполнения, которые не являются пространством выполнения по умолчанию для консоли Windows PowerShell или сеанса Windows PowerShell ISE, Windows PowerShell позволяет задавать точки останова в скрипте и добавлять точки останова, чтобы остановить выполнение скрипта до тех пор, пока вы не сможете подключить отладчик для отладки скрипта пространства выполнения. В отладчик сценариев Windows PowerShell для пространств выполнения добавлена поддержка вложенной отладки для произвольных пространств выполнения.

  • Новые командлеты Enter-PSHostProcess и Exit-PSHostProcess позволяют отлаживать скрипты Windows PowerShell в процессах отдельно от текущего процесса, выполняемого в консоли Windows PowerShell. Запустите Enter-PSHostProcess, чтобы ввести определенный идентификатор процесса или подключиться к нему, а затем запустите Get-Runspace, чтобы получить активные пространства выполнения внутри этого процесса. После окончания отладки скрипта в процессе запустите Exit-PSHostProcess, чтобы отключиться от него.

  • В модуль Microsoft.PowerShell.Utility добавлен командлет Wait-Debugger. Wait-Debugger можно запустить, чтобы остановить скрипт в отладчике перед выполнением следующего оператора скрипта.

  • Отладчик рабочих процессов Windows PowerShell теперь поддерживает завершение команды или вкладки, а также допускает отладку вложенных функций рабочего процесса. Теперь можно нажать клавиши CTRL+BREAK для открытия отладчика в выполняемом скрипте как для локального, так и для удаленного сеанса, а также в скрипте рабочего процесса.

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

  • Для заданий Windows PowerShell добавлено новое состояние AtBreakpoint. Оно применяется, когда задание выполняет сценарий с заданными точками останова и была достигнута такая точка. При остановке задания в точке останова отладки необходимо отладить задание, запустив командлет Debug-Job.

  • Windows PowerShell 5.0 реализует поддержку нескольких версий модуля Windows PowerShell в одной папке внутри $PSModulePath. Свойство RequiredVersion добавлено в класс ModuleSpecification, чтобы получить нужную версию модуля; Это свойство является взаимоисключающим со свойством ModuleVersion. RequiredVersion теперь поддерживается как часть значения параметра FullyQualifiedName для командлетов Get-Module, Import-Module и Remove-Module.

  • Теперь проверку версии модуля можно выполнить, запустив командлет Test-ModuleManifest.

  • Результаты командлета Get-Command теперь содержат столбец Version, так как в класс CommandInfo добавлено свойство Version. Get-Command показывает команды из нескольких версий одного модуля. Свойство Version также является частью производных классов CmdletInfo: CmdletInfo и ApplicationInfo.

  • Новый командлет Get-ItemPropertyValue позволяет получить значение свойства без использования точечной нотации. Например, в более старых выпусках Windows PowerShell можно выполнить следующую команду, чтобы получить значение свойства Application Base для раздела реестра PowerShellEngine:

    $keypath = 'HKLM:\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine'
    (Get-ItemProperty -Path $keypath -Name  ApplicationBase).ApplicationBase
    

    Начиная с Windows PowerShell 5.0, можно запускать

    $keypath = 'HKLM:\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine'
    Get-ItemPropertyValue -Path $keypath -Name ApplicationBase
    
  • Новый модуль NetworkSwitch содержит командлеты, которые позволяют применять конфигурацию коммутатора, виртуальной локальной сети (VLAN) и базового порта сетевого коммутатора уровня 2 к сетевым коммутаторам, сертифицированным с логотипом Windows Server 2012 R2 (и более поздних выпусков).

  • Для командлетов Import-Module и Remove-Module добавлен параметр FullyQualifiedName, позволяющий хранить несколько версий одного модуля.

  • Командлеты Save-Help, Update-Help, Import-PSSession, Export-PSSession и Get-Command имеют новый параметр FullyQualifiedModule типа ModuleSpecification. Добавьте этот параметр, чтобы указать модуль по полному имени.

  • Значение $PSVersionTable.PSVersion обновлено до 5.0.

Новые функции для настройки требуемого состояния Windows PowerShell

  • Усовершенствования языка Windows PowerShell позволяют определять ресурсы настройки требуемого состояния (DSC) Windows PowerShell с помощью классов. Import-DscResource теперь — по-настоящему динамическое ключевое слово. Windows PowerShell анализирует корневой модуль указанного модуля, выполняя поиск классов, содержащих атрибут DscResource. Теперь классы можно использовать для определения ресурсов DSC, в которых не требуется ни MOF-файл, ни вложенная папка DSCResource в папке модуля. Файл модуля Windows PowerShell может содержать несколько классов ресурсов DSC.

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

    • Get-DscConfiguration
    • Get-DscConfigurationStatus
    • Get-DscLocalConfigurationManager
    • Restore-DscConfiguration
    • Test-DscConfiguration
    • Compare-DscConfiguration
    • Publish-DscConfiguration
    • Set-DscLocalConfigurationManager
    • Start-DscConfiguration
    • Update-DscConfiguration
  • Централизованное ведение отчетов об ошибках DSC позволяет не только заносить полные сведения об ошибке в журнал событий, но и отправлять их в центральное расположение для дальнейшего анализа. В этом центральном расположении можно хранить ошибки конфигурации DSC для любого сервера в среде. После определения сервера отчетов в метаконфигурации все ошибки отправляются на этот сервер, а затем сохраняются в базе данных. Эту функцию можно настроить независимо от того, настроен ли целевой узел для извлечения конфигураций с опрашивающего сервера.

  • Усовершенствования, направленные на упрощение создания ресурсов DSC в интегрированной среде сценариев Windows PowerShell. Теперь вам доступны следующие операции:

    • Вывод всех ресурсов DSC в блоке configuration или node путем нажатия клавиш CTRL+ПРОБЕЛ на пустой строке внутри него.
    • Автозаполнение свойств ресурсов, имеющих тип enumeration.
    • Автозаполнение в свойстве DependsOn ресурсов DSC, основанное на других экземплярах ресурсов в конфигурации.
    • Улучшенное заполнение нажатием клавиши TAB для значений свойств ресурсов.
  • Новый атрибут DscLocalConfigurationManager определяет блок конфигурации как метаконфигурацию, которая используется для настройки локального диспетчера конфигураций DSC. Этот атрибут ограничивает конфигурацию, допуская только элементы для настройки локального диспетчера конфигураций DSC. Во время обработки эта конфигурация создает файл *.meta.mof, который затем отправляется на соответствующие целевые узлы с помощью командлета Set-DscLocalConfigurationManager.

  • Теперь в Windows PowerShell 5.0 разрешены частичные конфигурации. Доставлять документы конфигурации на узел можно фрагментами. Чтобы узел получил несколько фрагментов документа конфигурации, необходимо сначала задать локальное Configuration Manager узла, чтобы указать ожидаемые фрагменты.

  • В DSC для Windows PowerShell 5.0 появилась возможность межкомпьютерной синхронизации. Встроенные ресурсы WaitFor* (WaitForAll, WaitForAny и WaitForSome) позволяют указать зависимости между компьютерами во время выполнения конфигурации без внешней оркестрации. Эти ресурсы обеспечивают синхронизацию между узлами с помощью CIM-подключений по протоколу WS-Man. Конфигурация может ожидать изменения состояния определенного ресурса на другом компьютере.

  • JEA-администрирование — новое средство обеспечения безопасности при делегировании — использует DSC и ограниченные пространства выполнения Windows PowerShell, чтобы защитить предприятие от потери данных и умышленной или случайной компрометации их сотрудниками. Дополнительные сведения о JEA-администрировании, в том числе сведения о том, где можно скачать ресурс DSC xJEA, см. в этой статье.

  • В модуль PSDesiredStateConfiguration добавлены следующие командлеты:

    • Командлет Get-DscConfigurationStatus получает высокоуровневые сведения о состоянии конфигурации с целевого узла. Вы можете получить состояние последней или всех конфигураций.
    • Командлет Compare-DscConfiguration сравнивает указанную конфигурацию с фактическим состоянием одного или нескольких целевых узлов.
    • Командлет Publish-DscConfiguration копирует MOF-файл на целевой узел без применения конфигурации. Она применяется во время следующей проверки согласованности или при запуске командлета Update-DscConfiguration.
    • Новый командлет Test-DscConfiguration позволяет убедиться, что полученная конфигурация соответствует требуемой. Если фактическая конфигурация соответствует требуемой, возвращается значение True, в противном случае — значение False.
    • Новый командлет Update-DscConfiguration выполняет принудительную обработку конфигурации. Если локальный диспетчер конфигураций находится в режиме опроса, командлет получает конфигурацию с опрашивающего сервера перед ее применением.

Новые функции в интегрированной среде сценариев Windows PowerShell

  • Теперь вы можете редактировать скрипты и файлы удаленного Windows PowerShell в локальной копии Windows PowerShell ISE, запустив Enter-PSSession, чтобы запустить удаленный сеанс на компьютере, где хранятся файлы, которые вы хотите изменить, а затем запустить PSEdit <path and file name on the remote computer>. Эта функция упрощает редактирование файлов Windows PowerShell, хранящихся в Windows Server только с основными серверными компонентами, где запуск интегрированной среды сценариев Windows PowerShell невозможен.
  • Теперь командлет Start-Transcript поддерживается в интегрированной среде сценариев Windows PowerShell.
  • Можно отлаживать удаленные сценарии Windows PowerShell в интегрированной среде сценариев.
  • Новая команда меню Прервать все (CTRL+B) служит для переключения в режим отладчика как для локальных, так и для удаленных сценариев.

Новая функция в веб-службах Windows PowerShell (расширение IIS OData для управления)

  • Начиная с Windows PowerShell 5.0, можно создать набор командлетов Windows PowerShell на основе функциональных возможностей, предоставляемых данной конечной точкой OData, выполнив командлет Export-ODataEndpointProxy.

Исправления важных ошибок в Windows PowerShell 5.0

  • Windows PowerShell 5.0 содержит новую реализацию COM, обеспечивающую значительное повышение производительности при работе с COM-объектами.

Дополнительные сведения о Windows PowerShell 5.0 см. на следующих веб-сайтах:

СМ. ТАКЖЕ

about_Classes

about_Debuggers

about_Desired_State_Configuration

about_Updatable_Help

Save-Help

Get-Module

Debug-Job

Update-Help

Get-Process

Remove-Computer

Set-ExecutionPolicy

Add-Computer

ConvertFrom-String

Invoke-RestMethod

Set-JobTrigger

Set-ScheduledJob

New-JobTrigger

Register-ScheduledJob

Enable-JobTrigger

Disable-JobTrigger

КЛЮЧЕВЫЕ СЛОВА

Новые возможности Windows PowerShell 5.0