Начало работы с командлетами Configuration Manager
Относится к Configuration Manager (Current Branch)
Используйте Windows PowerShell для управления иерархией Configuration Manager. Скрипты PowerShell можно использовать для автоматизации или расширения Configuration Manager, как и для других задокументированных подходов с помощью WMI и C#. Дополнительные сведения см. в статье пакет SDK для Configuration Manager.
Запустите Configuration Manager командлеты и скрипты в PowerShell из консоли Configuration Manager или из сеанса Windows PowerShell. При выполнении командлетов Configuration Manager с помощью консоли Configuration Manager сеанс автоматически выполняется в контексте сайта.
Примечание.
Все поддерживаемые в настоящее время версии Configuration Manager текущей ветви поддерживаются Windows PowerShell версии 5.1. Если вы уже установили PowerShell версии 7, вы по-прежнему можете использовать PowerShell версии 5.1. Дополнительные сведения см. в статье Использование PowerShell 7 параллельно с Windows PowerShell 5.1.
Библиотека командлетов PowerShell Configuration Manager поддерживает PowerShell 7. Дополнительные сведения см. в разделе Поддержка PowerShell версии 7.
Начиная с версии 2103 для модуля PowerShell ConfigurationManager требуется Microsoft .NET версии 4.7.2 или более поздней.
PowerShell из консоли Configuration Manager
Самый простой способ открыть PowerShell — непосредственно из консоли Configuration Manager.
Запустите консоль Configuration Manager. В левом верхнем углу находится синий прямоугольник. Щелкните белую стрелку в синем прямоугольнике и выберите Подключиться через Windows PowerShell.
После Windows PowerShell загрузки вы увидите запрос, содержащий код сайта. Например, если код сайта — "ABC", запрос выглядит следующим образом:
PS ABC:\>
Чтобы убедиться, что это работает, используйте командлет Get-CMSite . Этот командлет возвращает сведения о Configuration Manager сайте, к которому вы сейчас подключены, и о всех дочерних сайтах. Например, имя сервера сайта, директор установки, имя сайта и версия.
Примечание.
При запуске PowerShell или интегрированной среды сценариев PowerShell из консоли Configuration Manager используется политика выполнения AllSigned для области процесса. Если эта безопасная конфигурация по умолчанию слишком подходит для вашей среды, ее можно обойти двумя способами:
- Измените политику выполнения с помощью команды, аналогичной следующему примеру:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process
- Импортируйте модуль PowerShell Configuration Manager.
Импорт модуля PowerShell Configuration Manager
Подключитесь к Configuration Manager из существующего сеанса Windows PowerShell, загрузив модуль Configuration Manager вручную.
Откройте сеанс Windows PowerShell в меню Пуск.
Импортируйте модуль Configuration Manager с помощью командлета Import-Module. Укажите путь к модулю Configuration Manager или перейдите в каталог, содержащий модуль. По умолчанию модуль находится по следующему пути:
C:\Program Files (x86)\Microsoft Endpoint Manager\AdminConsole\bin\ConfigurationManager.psd1
Начиная с версии 2111 при установке консоли Configuration Manager путь к модулю теперь добавляется в системную переменную среды PSModulePath. Дополнительные сведения см. в разделе about_PSModulePath. Это изменение позволяет импортировать модуль только по его имени:
Import-Module ConfigurationManager
Важно!
Убедитесь, что вы не импортируете более раннюю версию модуля, который может существовать в другой папке. После импорта модуля используйте следующие команды, чтобы проверить версию и путь модуля:
(Get-Module -Name ConfigurationManager).Version (Get-Module -Name ConfigurationManager).Path
В следующем примере изменяется каталог модуля, а затем импортируется:
Set-Location 'C:\Program Files (x86)\Microsoft Endpoint Manager\AdminConsole\bin' Import-Module .\ConfigurationManager.psd1
Совет
Можно также использовать переменную среды SMS_ADMIN_UI_PATH . Например:
Set-Location "$env:SMS_ADMIN_UI_PATH\..\"
Кроме того, можно использовать псевдоним cd для изменения каталогов вместо командлета Set-Location .
При первом импорте модуля Configuration Manager на этом компьютере может потребоваться создать диск сайта. Например:
New-PSDrive -Name "ABC" -PSProvider "CMSite" -Root "siteserver.contoso.com" -Description "Primary site"
Совет
При запуске PowerShell из консоли он автоматически создает PSDrive для удобства подключенного сайта. Если вы находитесь в иерархии, используйте New-PSDrive для создания дисков для каждого сайта.
Чтобы запустить командлеты Configuration Manager, необходимо переключить путь к сайту Configuration Manager. В следующем примере код сайта :
ABC
Set-Location ABC:
Убедитесь, что PowerShell правильно загрузил модуль Configuration Manager с помощью командлета Get-CMSite.
Справка по обновлению
Чтобы получить последние сведения о модуле PowerShell Configuration Manager, используйте командлет Update-Help. Это содержимое совпадает с тем, что опубликовано в Microsoft Learn для модуля ConfigurationManager.
Важно!
Из-за изменения структуры и публикации обновляемого содержимого в выпуске версии 2103 не используйте Update-Help на сайте версии 2010. Обновите сайт до версии 2103 или более поздней, а затем обновите локальное содержимое справки.
Дополнительные сведения см. в заметках о выпуске PowerShell версии 2103.
Компьютеру, на котором выполняется этот командлет, требуется доступ к Интернету, в частности pshelpprod.blob.core.windows.net
. Затем выполните следующую команду из сеанса PowerShell с повышенными привилегиями:
Update-Help -Module ConfigurationManager
После обновления справки по командлету Configuration Manager можно получить справку о командлетах с помощью командлета Get-Help. Например:
Get-Help Get-CMDevice
Get-Help Get-CMDevice -Examples
Get-Help Get-CMDevice -Parameter *
Дополнительные сведения см. в следующей записи блога PowerShell: У вас есть справка!.
Общие параметры
Все командлеты Configuration Manager поддерживают общие параметры PowerShell:
- Отладка
- ErrorAction
- ErrorVariable
- InformationAction
- InformationVariable
- OutVariable
- OutBuffer
- PipelineVariable
- Подробный
- WarningAction
- WarningVariable
Дополнительные сведения см. в статье about_CommonParameters.
Поддержка PowerShell версии 7
Библиотека командлетов PowerShell Configuration Manager поддерживает PowerShell версии 7. Дополнительные сведения о PowerShell 7, включая инструкции по ее скачиванию и установке, см. в статье Установка PowerShell в Windows.
Совет
PowerShell 7 выполняется как pwsh.exe
. Более ранние версии PowerShell запускались от имени powershell.exe
.
Командлеты, которые не поддерживают PowerShell версии 7
Следующие командлеты не поддерживают PowerShell 7:
- Import-CMPackage
- Import-CMDriverPackage
- Import-CMTaskSequence
- Export-CMPackage
- Export-CMDriverPackage
- Export-CMTaskSequence
- Add-CMReportingServicePoint
- Get-CMReportingServicePoint
- Remove-CMReportingServicePoint
- Set-CMReportingServicePoint
Для них требуется платформа .NET Framework вместо .NET Core, используемой с PowerShell версии 7.
Начиная с версии 2103, при попытке использовать эти командлеты в сеансе PowerShell версии 7 они завершаются ошибкой: This cmdlet only supports the ".NET Framework" runtime.
Известные проблемы с PowerShell версии 7
Вы не можете запустить PowerShell 7 непосредственно из консоли Configuration Manager. Запустите PowerShell 7 вручную, а затем импортируйте модуль Configuration Manager.
Текущая поддержка доступна только для командлетов Configuration Manager. Другие функции Configuration Manager, использующие PowerShell, могут не поддерживать версию 7. Например, выполнение скриптов, CMPivot или шаг последовательности задач Запуск скрипта PowerShell .
Отзывы о PowerShell
Если у вас есть отзывы о командлетах PowerShell Configuration Manager, используйте те же параметры в консоли Configuration Manager для отправки отзывов. Дополнительные сведения см. в разделе Отзывы о продукте.
При отправке нахмуренного сообщения добавьте следующие дополнительные сведения, относящиеся к PowerShell:
Точный синтаксис скрипта или команды, который вы использовали, чтобы корпорация Майкрософт могла попытаться воспроизвести проблему.
Какое поведение вы ожидали по сравнению с фактическим поведением.
Полные выходные данные при запуске с помощью общего параметра Verbose .
Версия и путь к модулю ConfigurationManager . Например, включите выходные данные следующих команд:
(Get-Module -Name ConfigurationManager).Version (Get-Module -Name ConfigurationManager).Path
Если командлет возвращает ошибку, используйте следующую команду для получения сведений об исключении:
$Error[0].Exception | Format-List * -Force
Заметки о выпуске предварительной версии
Статья о функциях technical preview в основной библиотеке документации содержит заметки о выпуске PowerShell. Например, см. статью Technical Preview версии 2202.
Дальнейшие действия
Чтобы узнать больше об изменениях в последнем выпуске Configuration Manager, выберите последние заметки о выпуске в оглавлении.
Дополнительные сведения об отдельных командлетах см. в справочнике по командлетам Configuration Manager.
Дополнительные сведения об обучении и начале работы с Windows PowerShell см. в статье PowerShell 101.