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


Заметки о выпуске 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 с пакетом обновления 1 (SP1) и Windows 7 с пакетом обновления 1 (SP1).

Выпуски PowerShell

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

  • Desktop Edition:, построенный на платформе .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.