Поделиться через


Заметки о выпуске Windows Management Framework (WMF) 5.x

Изменения WMF 5.0

  • PowerShell 5.0 добавляет новый структурированный информационный поток
  • Улучшения DSC, включая четыре новых ресурса DSC:
    • WindowsFeatureSet
    • WindowsOptionalFeatureSet
    • ServiceSet
    • ProcessSet
  • Добавлено JIT-администрирование для включения администрирования на основе ролей с помощью удаленного взаимодействия PowerShell
  • PowerShell 5.0 расширяет язык для включения определяемых пользователем классов и перечислений.
  • Улучшены функции отладки в среде сценариев PowerShell и добавлены удаленные отладки
  • Добавлены модули PowerShellGet и PackageManagement
  • Расширенные журналы сценариев PowerShell и расшифровки
  • Добавление командлетов синтаксиса криптографических сообщений
  • WMF 5.0 включает модуль NetworkSwitchManager для Windows
  • Добавлен модуль Microsoft.PowerShell.ODataUtils
  • Добавлена поддержка ведения журнала инвентаризации программного обеспечения (SIL)
  • Использование новых или обновлений командлетов в ответ на запросы пользователей и проблемы

Изменения WMF 5.1

WMF 5.1 включает компоненты PowerShell, WMI, WinRM и журналы инвентаризации программного обеспечения (SIL), выпущенные с Windows Server 2016. WMF 5.1 можно установить в Windows 7, Windows 8.1, Windows Server 2008 R2, 2012 и 2012 R2 и обеспечивает несколько улучшений по сравнению с WMF 5.0, включая:

  • Новые командлеты
  • Улучшения PowerShellGet включают применение подписанных модулей и установку модулей JEA
  • PackageManagement добавил поддержку контейнеров, программы установки CBS, установки на основе EXE, пакетов CAB
  • Улучшения отладки для классов DSC и PowerShell
  • Улучшения безопасности, включая применение модулей, подписанных каталогом, поступающих с сервера pull Server и при использовании командлетов PowerShellGet
  • Ответы на ряд запросов пользователей и проблем

Важный

Перед установкой WMF 5.1 в Windows Server 2008 или Windows 7 убедитесь, что WMF 3.0 не установлен. Для получения дополнительной информации см. WMF 5.1 Требования для Windows Server 2008 R2 SP1 и Windows 7 SP1.

Выпуски PowerShell

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

  • Выпуск Desktop: создан на базе платформы .NET Framework и обеспечивает совместимость со сценариями и модулями, предназначенными для версий PowerShell в полноценных выпусках Windows, таких как Server Core и Windows Desktop.
  • Выпуск Core Edition: построен на основе .NET Core и обеспечивает совместимость со скриптами и модулями, которые предназначены для версий PowerShell, выполняющихся в выпусках Windows с ограниченными возможностями, таких как Nano Server и Windows IoT.

Дополнительные сведения об использовании выпусков PowerShell

Кэш анализа модулей

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

По умолчанию этот кэш хранится в файле ${env:LOCALAPPDATA}\Microsoft\Windows\PowerShell\ModuleAnalysisCache. Кэш обычно считывается при запуске при поиске команды и записывается в фоновом потоке через некоторое время после импорта модуля.

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

$env:PSModuleAnalysisCachePath = 'nul'

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

Trace-Command -PSHost -Name Modules -Expression { Import-Module Microsoft.PowerShell.Management -Force }

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

$env:PSDisableModuleAnalysisCacheCleanup = 1

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

Указание версии модуля

В WMF 5.1 using module работает так же, как другие связанные с модулями конструкции в PowerShell. Ранее у вас не было способа указать определенную версию модуля; Если существует несколько версий, это привело к ошибке.

В WMF 5.1:

  • Вы можете использовать конструктор ModuleSpecification (Hashtable).

    Она имеет тот же формат, что и Get-Module -FullyQualifiedName.

    Пример:using module @{ModuleName = 'PSReadLine'; RequiredVersion = '1.1'}

  • Если существует несколько версий модуля, PowerShell использует ту же логику разрешения, что и Import-Module и не возвращает ошибку — то же самое поведение, что Import-Module и .Import-DscResource

Улучшения Пестера

В WMF 5.1 версия Pester, которая поставляется с PowerShell, обновлена с версии 3.3.5 до 3.4.0. Это обновление позволяет улучшить поведение Пестера на Nano Server.

Вы можете ознакомиться с изменениями в Pest, проверив CHANGELOG в репозитории GitHub.