Создание и запуск скриптов PowerShell из консоли Configuration ManagerCreate and run PowerShell scripts from the Configuration Manager console

Применимо к: System Center Configuration Manager (Current Branch)Applies to: System Center Configuration Manager (Current Branch)

В System Center Configuration Manager имеется интегрированная возможность выполнения сценариев PowerShell.System Center Configuration Manager has an integrated ability to run Powershell scripts. PowerShell позволяет создавать сложные автоматизированные сценарии, которые могут применяться в рамках большого сообщества.Powershell has the benefit of creating sophisticated, automated scripts that are understood and shared with a larger community. Скрипты упрощают создание специальных инструментов для администрирования программного обеспечения, а также ускоряют выполнение повседневных задач, позволяя вам быстрее справляться с большим объемом работы и обеспечивать более согласованный результат.The scripts simplify building custom tools to administer software and let you accomplish mundane tasks quickly, allowing you to get large jobs done more easily and more consistently.

Примечание

По умолчанию в Configuration Manager эта дополнительная функция отключена.Configuration Manager doesn't enable this optional feature by default. Перед использованием ее необходимо включить.You must enable this feature before using it. Дополнительные сведения см. в разделе Включение дополнительных функций из обновлений.For more information, see Enable optional features from updates.

Благодаря такой интеграции в System Center Configuration Manager вы можете использовать функцию Выполнение сценариев в следующих целях:With this integration in System Center Configuration Manager, you can use the Run Scripts functionality to do the following things:

  • Создание и редактирование скриптов для использования с System Center Configuration Manager.Create and edit scripts for use with System Center Configuration Manager.
  • Управление использованием скриптов с помощью ролей и областей безопасности.Manage script usage through roles and security scopes.
  • Выполнение сценариев для коллекций или отдельных локальных управляемых компьютеров Windows.Run scripts on collections or individual on-premises managed Windows PCs.
  • Быстрое получение объединенных результатов сценария с клиентских устройств.Get rapid aggregated script results from client devices.
  • Мониторинг выполнения сценария и просмотр результатов выходных данных сценария.Monitor script execution and view reporting results from script output.

Предупреждение

Учитывая все возможности, которыми обладают сценарии, мы напоминаем, что применять их нужно с определенной долей осторожности и только в тех случаях, когда это оправдано.Given the power of scripts, we remind you to be intentional and careful with their usage. Чтобы помочь вам, мы предусмотрели дополнительные меры предосторожности — разделили роли и области.We have built in additional safeguards to assist you; segregated roles and scopes. Обязательно проверяйте точность сценариев перед запуском, а также убедитесь, что они поступили из надежного источника, чтобы предотвратить выполнение непредусмотренного сценария.Be sure to validate the accuracy of scripts before running them and confirm they are from a trusted source, to prevent unintended script execution. Учитывайте наличие символов национального алфавита или других обфускаций, а также изучайте аспекты обеспечения безопасности для сценариев.Be mindful of extended characters or other obfuscation and educate yourself about securing scripts. Дополнительные сведения о безопасности сценариев PowerShellLearn more about PowerShell script security

Готовность к установкеPrerequisites

  • Для запуска скриптов PowerShell на клиенте должна быть запущена оболочка PowerShell версии 3.0 или более поздней.To run PowerShell scripts, the client must be running PowerShell version 3.0 or later. Если сам сценарий содержит функциональные возможности, добавленные в более поздних версиях PowerShell, на клиенте, где этот сценарий выполняется, должна быть установлена соответствующая версия PowerShell.However, if a script you run contains functionality from a later version of PowerShell, the client on which you run the script must be running that version of PowerShell.
  • На клиентах Configuration Manager должен работать клиент версии 1706 или более поздней, чтобы выполнять сценарии.Configuration Manager clients must be running the client from the 1706 release, or later in order to run scripts.
  • Чтобы использовать скрипты, необходимо быть членом соответствующей роли безопасности Configuration Manager.To use scripts, you must be a member of the appropriate Configuration Manager security role.
  • Чтобы импортировать или создавать сценарии, нужна учетная запись с разрешениями на создание сценариев SMS.To import and author scripts - Your account must have Create permissions for SMS Scripts.
  • Чтобы утверждать или отклонять сценарии, нужна учетная запись с разрешениями на утверждение сценариев SMS.To approve or deny scripts - Your account must have Approve permissions for SMS Scripts.
  • Чтобы выполнять сценарии, нужна учетная запись с разрешениями на выполнение сценариев для коллекций.To run scripts - Your account must have Run Script permissions for Collections.

Дополнительные сведения о ролях безопасности Configuration Manager см. в следующих статьях.For more information about Configuration Manager security roles:
Области безопасности для выполнения сценариевSecurity scopes for run scripts
Роли безопасности для выполнения сценариевSecurity roles for run scripts
Основы ролевого администрированияFundamentals of role-based administration.

ОграниченияLimitations

Сейчас функция выполнения сценариев поддерживает следующее:Run Scripts currently supports:

  • Языки сценариев: PowerShellScripting languages: PowerShell
  • Типы параметров: integer, string и list.Parameter types: integer, string, and list.

Предупреждение

Имейте в виду, что при использовании параметров открывается контактная зона для возможных атак путем внедрения кода PowerShell.Be aware that when using parameters, it opens a surface area for potential PowerShell injection attack risk. Существуют различные способы устранения атак и решения проблем. Например, можно использовать регулярные выражения для проверки входных параметров или использовать предопределенные параметры.There are various ways to mitigate and work around, such as using regular expressions to validate parameter input or using predefined parameters. Рекомендуется не включать секреты в сценарии PowerShell (не применять пароли и т. д.).Common best practice is not to include secrets in your PowerShell scripts (no passwords, etc.). Дополнительные сведения о безопасности сценариев PowerShellLearn more about PowerShell script security

Авторы и утверждающие функции выполнения сценариевRun Script authors and approvers

Функция выполнения сценариев использует концепцию авторов сценариев и утверждающих сценариев в качестве отдельных ролей для реализации и выполнения сценария.Run Scripts uses the concept of script authors and script approvers as separate roles for implementation and execution of a script. Разделение этих ролей позволяет осуществлять важные функциональные проверки.Having the author and approver roles separated allows an important process check for the powerful tool that Run Scripts is. Дополнительная роль средств выполнения скриптов, которая разрешает выполнение скриптов, но запрещает их создание или утверждение.There's an additional script runners role that allows execution of scripts, but not creation or approval of scripts. См. раздел Создание ролей безопасности для сценариев.See Create security roles for scripts.

Управление ролями сценариевScripts roles control

По умолчанию пользователи не могут утверждать созданные им скрипты.By default, users can't approve a script they've authored. Благодаря мощи и гибкости скриптов, а также возможности их развертывания на множестве устройств вы можете делегировать создание и утверждение скриптов разным людям.Because scripts are powerful, versatile, and potentially deployed to many devices, you can separate the roles between the person that authors the script and the person that approves the script. Эти роли предоставляют дополнительный уровень защиты от бесконтрольного выполнения скриптов.These roles give an additional level of security against running a script without oversight. Для упрощения тестирования вы можете отключить дополнительный уровень утверждения.You're able to turn off secondary approval, for ease of testing.

Утверждение или отклонение сценарияApprove or Deny a script

Прежде чем сценарий можно будет запустить, его должен утвердить пользователь с ролью утверждающего сценария.Scripts must be approved, by the script approver role, before they can be run. Чтобы утвердить скрипт, выполните следующее.To approve a script:

  1. В консоли Configuration Manager щелкните Библиотека программного обеспечения.In the Configuration Manager console, click Software Library.
  2. В рабочей области Библиотека программного обеспечения щелкните Скрипты.In the Software Library workspace, click Scripts.
  3. В списке Скрипт выберите нужный скрипт для утверждения или отклонения, затем щелкните Утвердить или отклонить на вкладке Главная в группе Скрипт.In the Script list, choose the script you want to approve or deny and then, on the Home tab, in the Script group, click Approve/Deny.
  4. В диалоговом окне Утверждение или запрет сценария выберите действие Утвердить или Отклонить.In the Approve or deny script dialog box, select Approve, or Deny for the script. При необходимости введите комментарий о решении.Optionally, enter a comment about your decision. Отклоненный скрипт не может выполняться на клиентских устройствах.If you deny a script, it can't be run on client devices.
    Утверждение скриптаScript - Approval
  5. Завершите работу мастера.Complete the wizard. Вы видите, что в списке Скрипт изменилось значение в столбце Состояние утверждения в зависимости выбранного вами действия.In the Script list, you see the Approval State column change depending on the action you took.

Предоставление пользователям разрешения самостоятельно утверждать свои скриптыAllow users to approve their own scripts

Это утверждение в основном используется на этапе тестирования при разработке сценариев.This approval is primarily used for the testing phase of script development.

  1. В консоли Configuration Manager щелкните Администрирование.In the Configuration Manager console, click Administration.
  2. В рабочей области Администрирование разверните узел Конфигурация сайтаи выберите Сайты.In the Administration workspace, expand Site Configuration, and then click Sites.
  3. В списке сайтов выберите нужный сайт и на вкладке Главная в группе Сайты щелкните Параметры иерархии.In the list of sites, choose your site and then, on the Home tab, in the Sites group, click Hierarchy Settings.
  4. На вкладке Общие в диалоговом окне Свойства параметров иерархии снимите флажок Авторам скриптов требуется утверждающий.On the General tab of the Hierarchy Settings Properties dialog box, clear the checkbox Script authors require additional script approver.

Важно!

Рекомендуется не разрешать автору скрипта утверждать свои собственные скрипты.As a best practice, you shouldn't allow a script author to approve their own scripts. Это действие должно быть разрешено только в лабораторных условиях.It should only be allowed in a lab setting. Примите во внимание возможные последствия изменения этого параметра в рабочей среде.Carefully consider the potential impact of changing this setting in a production environment.

Области безопасностиSecurity scopes

(Появились в версии 1710)(Introduced with version 1710)
Компонент выполнения сценариев использует существующую функцию Configuration Manager — области безопасности, чтобы управлять созданием и выполнением сценариев посредством присвоения тегов, представляющих группы пользователей.Run Scripts uses security scopes, an existing feature of Configuration Manager, to control scripts authoring and execution through assigning tags that represent user groups. Дополнительные сведения об использовании областей безопасности см. в статье Настройка ролевого администрирования для System Center Configuration Manager.For more information on using security scopes, see Configure role-based administration for System Center Configuration Manager.

Создание ролей безопасности для сценариевCreate security roles for scripts

Три роли безопасности, используемые для выполнения скриптов, не созданы по умолчанию в Configuration Manager.The three security roles used for running scripts aren't created by default in Configuration Manager. Для создания средств выполнения сценариев, авторов сценариев и ролей утверждающих сценарии выполните приведенные далее действия.To create the script runners, script authors, and script approvers roles, follow the outlined steps.

  1. В консоли Configuration Manager последовательно выберите Администрирование >Безопасность >Роли безопасности.In the Configuration Manager console, go to Administration >Security >Security Roles
  2. Щелкните роль правой кнопкой мыши и выберите команду Копировать.Right-click on a role and click Copy. Копируемой роли уже назначены разрешения.The role you copy has permissions already assigned. Убедитесь, что выбраны только нужные разрешения.Make sure you take only the permissions that you want.
  3. Для пользовательской роли заполните поля Имя и Описание.Give the custom role a Name and a Description.
  4. Назначьте роли безопасности разрешения, описанные ниже.Assign the security role the permissions outlined below.

Разрешения роли безопасностиSecurity Role Permissions

Имя роли. Средства выполнения сценариевRole Name: Script Runners

  • Описание. Эти разрешения позволяют этой роли выполнять только те сценарии, которые были ранее созданы и утверждены другими ролями.Description: These permissions enable this role to only run scripts that were previously created and approved by other roles.
  • Разрешения. Задайте значение Да для следующих разрешений.Permissions: Ensure the following are set to Yes.
КатегорияCategory РазрешениеPermission СостояниеState
КоллекцияCollection Запуск скриптаRun Script ДаYes
СайтSite ЧтениеRead ДаYes
Сценарии SMSSMS Scripts ЧтениеRead ДаYes

Имя роли. Авторы сценариевRole Name: Script Authors

  • Описание. Эти разрешения позволяют этой роли создавать сценарии, но не утверждать или выполнять их.Description: These permissions enable this role to author scripts, but they can’t approve or run them.
  • Разрешения. Задайте следующие разрешения.Permissions: Ensure the following permissions are set.
КатегорияCategory РазрешениеPermission СостояниеState
КоллекцияCollection Запуск скриптаRun Script НетNo
СайтSite ЧтениеRead ДаYes
Сценарии SMSSMS Scripts СозданиеCreate ДаYes
Сценарии SMSSMS Scripts ЧтениеRead ДаYes
Сценарии SMSSMS Scripts УдалитьDelete ДаYes
Сценарии SMSSMS Scripts ИзменитьModify ДаYes

Имя роли. Утверждающие скрипта.Role Name: Script Approvers

  • Описание. Эти разрешения позволяют этой роли утверждать сценарии, но не создавать или выполнять их.Description: These permissions enable this role to approve scripts, but they can’t create or run them.
  • Разрешения. Задайте следующие разрешения.Permissions: Ensure the following permissions are set.
КатегорияCategory РазрешениеPermission СостояниеState
КоллекцияCollection Запуск скриптаRun Script НетNo
СайтSite ЧтениеRead ДаYes
Сценарии SMSSMS Scripts ЧтениеRead ДаYes
Сценарии SMSSMS Scripts УтверждениеApprove ДаYes
Сценарии SMSSMS Scripts ИзменитьModify ДаYes

Пример разрешений сценариев SMS для роли авторов сценариевExample of SMS Scripts permissions for the script authors role

Пример разрешений сценариев SMS для роли авторов сценариев

Создание сценарияCreate a script

  1. В консоли Configuration Manager щелкните Библиотека программного обеспечения.In the Configuration Manager console, click Software Library.
  2. В рабочей области Библиотека программного обеспечения щелкните Скрипты.In the Software Library workspace, click Scripts.
  3. На вкладке Главная в группе Создать щелкните Создать скрипт.On the Home tab, in the Create group, click Create Script.
  4. На странице Скрипт в мастере создания скрипта настройте следующие параметры.On the Script page of the Create Script wizard, configure the following settings:
    • Имя скрипта. Введите здесь имя для скрипта.Script Name - Enter a name for the script. Вы можете создать несколько скриптов с одинаковыми именами, но повторы имен затруднят поиск нужного скрипта в консоли Configuration Manager.Although you can create multiple scripts with the same name, using duplicate names makes it harder for you to find the script you need in the Configuration Manager console.
    • Язык скрипта. Сейчас поддерживаются только скрипты PowerShell.Script language - Currently, only PowerShell scripts are supported.
    • Импорт. Импорт скрипта PowerShell в консоли.Import - Import a PowerShell script into the console. Скрипт отображается в поле Скрипт.The script is displayed in the Script field.
    • Очистить. Удаление текущего скрипта из поля "Скрипт".Clear - Removes the current script from the Script field.
    • Скрипт. Отображение текущего импортируемого скрипта.Script - Displays the currently imported script. В этом поле при необходимости вы можете изменять скрипт.You can edit the script in this field as necessary.
  5. Завершите работу мастера.Complete the wizard. Новый скрипт отображается в списке Скрипт с состоянием Ожидается утверждение.The new script is displayed in the Script list with a status of Waiting for approval. Прежде чем выполнять такой скрипт на клиентских устройствах, его необходимо утвердить.Before you can run this script on client devices, you must approve it.

Важно!

Избегайте сценариев перезагрузки устройства или агента Configuration Manager, если используете функцию выполнения сценариев.Avoid scripting a device reboot or a restart of the Configuration Manager agent when using the Run Scripts feature. Это может вызвать состояние непрерывной перезагрузки.Doing so could lead to a continuous rebooting state. При необходимости воспользуйтесь улучшениями для функции уведомления клиента. Они позволяют перезагружать устройства начиная с версии Configuration Manager 1710.If needed, there are enhancements to the client notification feature that enable restarting devices, starting in Configuration Manager version 1710. Используя столбец ожидания перезагрузки, можно определить устройства, которым требуется перезагрузка.The pending restart column can help identify devices that need a restart.

Параметры сценарияScript parameters

(Появились в версии 1710)(Introduced with version 1710)
Добавление параметров в сценарий позволяет повысить гибкость работы.Adding parameters to a script provides increased flexibility for your work. Можно включить до 10 параметров.You can include up to 10 parameters. Ниже описаны возможности указанного компонента по использованию параметров сценария для типов данных String и Integer.The following outlines the Run Scripts feature's current capability with script parameters for; String, Integer data types. Кроме того, доступны списки предварительно заданных значений.Lists of preset values are also available. Если сценарий имеет не поддерживаемые типы данных, выдается предупреждение.If your script has unsupported data types, you get a warning.

В области Сценарий диалогового окна Создать сценарий щелкните элемент Параметры сценария.In the Create Script dialog, click Script Parameters under Script.

Каждый из параметров сценария имеет отдельное диалоговое окно для добавления дополнительных сведений и проверки.Each of your script's parameters has its own dialog for adding further details and validation. Если в скрипте есть параметр по умолчанию, он будет перечислен в пользовательском интерфейсе параметра, чтобы вы могли настроить его.If there's a default parameter in the script, it will be enumerated in the parameter UI and you can set it. Configuration Manager не перезаписывает значение по умолчанию, так как скрипт напрямую не изменяется.Configuration Manager won't overwrite the default value since it will never modify the script directly. Грубо говоря, предварительно заполненные предложенные значения доступны в пользовательском интерфейсе, но Configuration Manager не предоставляет доступ к значениям по умолчанию во время выполнения.You can think of this as “pre-populated suggested values” are provided in the UI, but Configuration Manager doesn't provide access to “default” values at run-time. Такое поведение можно изменить, отредактировав скрипт так, чтобы он включал правильные значения по умолчанию.This can be worked around by editing the script to have the correct defaults.

Важно!

Значения параметров не могут содержать символ апострофа.Parameter values can't contain an apostrophe.
Есть известная проблема в Configuration Manager версии 1802, когда параметры с пробелами не передаются в скрипт должным образом.There is a known issue in Configuration Manager version 1802 where parameters with spaces don't get passed to the script properly. При использовании пробела только первый элемент в параметре передается в скрипт, а все компоненты после пробела не передаются.If a space is used in the parameter, only the first item in the parameter is passed to the script and everything after the space is not passed. Администраторы могут решить эту проблему, заменяя пробелы другими символами с последующим преобразованием или используя другие методы.Admins can script around this by substituting alternate characters for spaces and converting them, or with other methods.

Проверка параметровParameter validation

Для каждого параметра в сценарии доступно диалоговое окно Script Parameter Properties (Свойства параметра сценариев), где можно добавить проверку соответствующего параметра.Each parameter in your script has a Script Parameter Properties dialog for you to add validation for that parameter. После добавления проверки вы будете получать ошибки при вводе для параметра значения, не соответствующего условиям проверки.After adding validation, you should get errors if you're entering a value for a parameter that doesn't meet its validation.

Пример: FirstNameExample: FirstName

В этом примере показана возможность задать свойства параметра строки FirstName.In this example, you're able to set the properties of the string parameter, FirstName.

Параметры сценария — строка

В разделе "Проверка" диалогового окна Свойства параметра сценария содержатся следующие поля:The validation section of the Script Parameter Properties dialog contains the following fields for your use:

  • Минимальная длина — минимальное число символов поля FirstName.Minimum Length - minimum number of characters of the FirstName field.
  • Максимальная длина — максимальное число символов поля FirstName.Maximum Length- maximum number of characters of the FirstName field
  • Регулярное выражениерегулярное выражение, которое используется.RegEx - short for Regular Expression. Дополнительные сведения об использовании регулярных выражений см. в следующем разделе Использование проверки регулярных выражений.For more information on using the Regular Expression, see the next section, Using Regular Expression validation.
  • Настраиваемая ошибка — позволяет добавить собственное настраиваемое сообщение об ошибке, которое заменяет любое системное сообщение об ошибке, обнаруженное при проверке.Custom Error - useful for adding your own custom error message that supersedes any system validation error messages.

Использование проверки регулярных выраженийUsing Regular Expression validation

Регулярное выражение — это краткая форма программного кода для проверки строки символов на валидность кодировки.A regular expression is a compact form of programming for checking a string of characters against an encoded validation. Например, можно проверить отсутствие прописной буквы в поле FirstName, указав [^A-Z] в поле Регулярное выражение.For example, you could check for the absence of a capital alphabetic character in the FirstName field by placing [^A-Z] in the RegEx field.

Обработка регулярных выражений для этого диалогового окна поддерживается .NET Framework.The regular expression processing for this dialog is supported by the .NET Framework. Рекомендации по использованию регулярных выражений см. в разделе регулярные выражения .NET и Язык регулярных выражений.For guidance on using regular expressions, see .NET Regular Expression and Regular Expression Language.

Примеры скриптовScript examples

Ниже приведены некоторые примеры сценариев, которые могут вас заинтересовать.Here are a couple examples that illustrate scripts you might want to use with this capability.

Создание папки и файлаCreate a new folder and file

Этот сценарий создает папку и файл в ней с учетом указанных вами имен.This script creates a new folder and a file within the folder, given your naming input.

Param(
[Parameter(Mandatory=$True)]
[string]$FolderName,
[Parameter(Mandatory=$True)]
[string]$FileName
)

New-Item $FolderName -type directory
New-Item $FileName -type file

Получение данных о версии ОСGet OS Version

Этот скрипт использует инструментарий WMI, чтобы запросить у компьютера данные о версии ОС.This script uses WMI to query the machine for its OS version.

Write-Output (Get-WmiObject -Class Win32_operatingSystem).Caption

Изменение или копирование сценариев PowerShellEdit or copy PowerShell scripts

(Появились в версии 1902)(Introduced with version 1902)
Функции Изменить и Копировать доступны для скриптов PowerShell в рамках функции Выполнение сценариев.You can Edit or Copy an existing PowerShell script used with the Run Scripts feature. Больше не нужно повторно создавать сценарий, если его необходимо изменить. Можно просто отредактировать его.Instead of recreating a script that you need to change, now directly edit it. Для обоих действий используется тот же интерфейс мастера, что и при создании сценария.Both actions use the same wizard experience as when you create a new script. Когда вы изменяете или копируете сценарий, в Configuration Manager не сохраняется состояние утверждения.When you edit or copy a script, Configuration Manager doesn't persist the approval state.

Совет

Не изменяйте сценарий, который выполняется в клиентах.Don't edit a script that's actively running on clients. Иначе выполнение исходного сценария не будет завершено и вы можете не получить от этих клиентов ожидаемых результатов.They won't finish running the original script, and you may not get the intended results from these clients.

Изменение скриптаEdit a script

  1. Перейдите к узлу сценарии в рабочей области Библиотека программного обеспечения .Go to the Scripts node under the Software Library workspace.
  2. Выберите скрипт для изменения, а затем нажмите кнопку изменить на ленте.Select the script to edit, then click Edit in the ribbon.
  3. Измените или повторно импортируйте скрипт на странице сведений о скрипте .Change or reimport your script in the Script Details page.
  4. Нажмите кнопку Далее , чтобы просмотреть сводку , а затем Закрыть по завершении редактирования.Click Next to view the Summary then Close when you're finished editing.

Копирование скриптаCopy a script

  1. Перейдите к узлу сценарии в рабочей области Библиотека программного обеспечения .Go to the Scripts node under the Software Library workspace.
  2. Выберите скрипт для копирования, а затем нажмите кнопку Копировать на ленте.Select the script to copy, then click Copy in the ribbon.
  3. Переименуйте сценарий в поле имя скрипта и внесите дополнительные изменения, которые могут потребоваться.Rename the script in the Script name field and make any additional edits you may need.
  4. Нажмите кнопку Далее , чтобы просмотреть сводку , а затем Закрыть по завершении редактирования.Click Next to view the Summary then Close when you're finished editing.

Выполнить сценарийRun a script

Утвержденный скрипт можно выполнить в одной коллекции или на одном устройстве.After a script is approved, it can be run against a single device or a collection. После начала выполнения скрипт быстро запускается через высокоприоритетную систему, время ожидания которой истечет через час.Once execution of your script begins, it's launched quickly through a high priority system that times-out in one hour. Затем результаты сценария возвращаются с помощью системы сообщений о состоянии.The results of the script are then returned using a state message system.

Чтобы выбрать коллекцию целевых сред для своего скрипта, сделайте следующее:To select a collection of targets for your script:

  1. В консоли Configuration Manager щелкните элемент Активы и соответствие.In the Configuration Manager console, click Assets and Compliance.
  2. В рабочей области "Активы и соответствие" щелкните Коллекции устройств.In the Assets and Compliance workspace, click Device Collections.
  3. В списке Коллекции устройств выберите нужную коллекцию, в которой будет выполняться скрипт.In the Device Collections list, click the collection of devices on which you want to run the script.
  4. Выберите коллекцию по своему усмотрению и щелкните Запуск сценария.Select a collection of your choice, click Run Script.
  5. На странице Скрипт мастера запуска скрипта выберите в списке нужный скрипт.On the Script page of the Run Script wizard, choose a script from the list. Здесь отображаются только утвержденные скрипты.Only approved scripts are shown.
  6. Нажмите кнопку Далее и завершите работу мастера.Click Next, and then complete the wizard.

Важно!

Если скрипт не выполняется (например, если целевое устройство выключено) в течение часа, его нужно запустить снова.If a script does not run, for example because a target device is turned off during the one hour time period, you must run it again.

Выполнение на целевом компьютереTarget machine execution

Сценарий выполняется как учетная запись системы или компьютера на целевых клиентах.The script is executed as the system or computer account on the targeted client(s). Такая учетная запись имеет ограниченный доступ к сети.This account has limited network access. Это следует учитывать при предоставлении сценарию доступа к удаленным системам и расположениям.Any access to remote systems and locations by the script must be provisioned accordingly.

Мониторинг сценариевScript monitoring

Запустив сценарий для коллекции устройств, используйте описанную ниже процедуру для наблюдения за этой операцией.After you have initiated running a script on a collection of devices, use the following procedure to monitor the operation. Начиная с версии 1710, вы можете отслеживать выполнение скрипта в режиме реального времени, а также вернуться к отчету о конкретном выполнении.Beginning with version 1710, you're both able to monitor a script in real time as it executes, and you can also return to a report for a given Run Script execution. Данные о состоянии скрипта очищаются как часть задачи удаления устаревших операций клиента или удаления скрипта.Script status data is cleaned up as part of the Delete Aged Client Operations maintenance task or deletion of the script.

Монитор скрипта — состояние выполнения скрипта

  1. В консоли Configuration Manager щелкните элемент Мониторинг.In the Configuration Manager console, click Monitoring.

  2. В рабочей области Мониторинг щелкните Состояние скрипта.In the Monitoring workspace, click Script Status.

  3. В списке Состояние скрипта можно просмотреть результаты для каждого скрипта, запущенного на клиентских устройствах.In the Script Status list, you view the results for each script you ran on client devices. Обычно код выхода 0 означает, что скрипт выполнен успешно.A script exit code of 0 generally indicates that the script ran successfully.

    • Начиная с Configuration Manager 1802 выходные данные сценария усекаются до 4 КБ для более удобного отображения.Beginning in Configuration Manager 1802, script output is truncated to 4 KB to allow for better display experience.

    Монитор скрипта — усеченный скрипт

Выходные данные скрипта в версии 1810Script output in 1810

Теперь подробные выходные данные скрипта можно просматривать в необработанном виде или в структурированном формате JSON.You can view detailed script output in raw or structured JSON format. Такое форматирование упрощает чтение и анализ выходных данных.This formatting makes the output easier to read and analyze. Если сценарий возвращает допустимый текст в формате JSON, просматривать подробные сведения о выходных данных можно в формате JSON или в виде необработанных выходных данных.If the script returns valid JSON-formatted text, then view the detailed output as either JSON Output or Raw Output. В противном случае единственный вариант — выходные данные сценария.Otherwise the only option is Script Output.

Пример: выходные данные сценария доступны в формате JSONExample: Script output is valid JSON

Команда: $PSVersionTable.PSVersionCommand: $PSVersionTable.PSVersion

Major  Minor  Build  Revision
-----  -----  -----  --------
5      1      16299  551

Пример: выходные данные сценария недоступны в формате JSONExample: Script output isn't valid JSON

Команда: Write-Output (Get-WmiObject -Class Win32_OperatingSystem).CaptionCommand: Write-Output (Get-WmiObject -Class Win32_OperatingSystem).Caption

Microsoft Windows 10 Enterprise
  • Клиенты с версией 1810 возвращают выходные данные объемом менее 80 КБ на сайт по быстрому коммуникационному каналу.1810 clients return output less than 80 KB to the site over a fast communication channel. Это изменение повышает производительность просмотра выходных данных сценариев или запросов.This change increases the performance of viewing script or query output.

    • Если выходные данные сценария или запроса превышают 80 КБ, клиент отправляет данные через сообщение о состоянии.If the script or query output is greater than 80 KB, the client sends the data via a state message.
    • Клиенты до версии 1802 смогут и дальше использовать сообщения о состоянии.Pre-1802 clients continue to use state messages.

Выходные данные скрипта в версиях, предшествующих 1810Script output pre-1810

  • Начиная с Configuration Manager версии 1802 выходные данные сценария выводятся в формате JSON.Starting in Configuration Manager version 1802, script output returns using JSON formatting. Этот формат согласованно возвращает доступные для чтения выходные данные скрипта.This format consistently returns a readable script output.

  • Скрипты с неизвестным результатом или скрипты, при выполнении которых клиент находился в автономном режиме, не отображаются в диаграммах или наборе данных.Scripts that get an unknown result, or where the client was offline, won't show in the charts or data set.

  • Следует избегать больших выходных данных скрипта, так как они усекаются до 4 КБ.Avoid returning large script output since it's truncated to 4 KB.

  • При использовании Configuration Manager 1802 или более поздней версии с более ранней версией клиента некоторые функции форматирования выходных данных скрипта недоступны.Some functionality with script output formatting isn't available when running Configuration Manager version 1802 or later with a down-level version of the client.

    • Если вы используете клиент Configuration Manager версии ниже 1802, данные будут выводиться в строковом формате.When you have a pre-1802 Configuration Manager client, you get a string output.
    • В клиенте Configuration Manager версии 1802 и более поздних используется формат JSON.For Configuration Manager client version 1802 and above, you get JSON formatting.
      • Например, в одной версии клиента может быть возвращен результат TEXT, а в другой — "TEXT" (в двойных кавычках). Эти результаты будут выведены на диаграмме в разных категориях.For example, you might get results that say TEXT on one client version and "TEXT" (the output is surrounded in double quotes) on other version, which will be put in chart as two different categories.
      • Чтобы обойти такое поведение, можно выполнить скрипт для двух разных коллекций.If you need to work around this behavior, consider running script against two different collections. В одной из них будут представлены клиенты с версией, предшествующей 1802, а в другой — клиенты с версией 1802 и последующими.One with pre-1802 clients and another with 1802 and higher clients. Также для правильного отображения скриптов в формате JSON можно преобразовать объект enum в строковое значение.Or, you can convert an enum object to a string value in scripts so they're properly displayed in JSON formatting.
  • Для правильного отображения сценариев в формате JSON необходимо преобразовать объект enum в строковое значение.Convert an enum object to a string value in scripts so they're properly displayed in JSON formatting.

    Преобразование объекта enum в строковое значение

Файлы журналаLog files

Начиная с версии 1810, добавлены дополнительные функции ведения журнала для устранения неполадок.Starting in version 1810, additional logging was added for troubleshooting.

  • На клиенте по умолчанию в папке C:\Windows\CCM\logs:On the client, by default in C:\Windows\CCM\logs:

    • Scripts.log,Scripts.log
    • CcmMessaging.log.CcmMessaging.log
  • На точке управления по умолчанию в папке C:\SMS_CCM\Logs:On the MP, by default in C:\SMS_CCM\Logs:

    • MP_RelayMsgMgr.logMP_RelayMsgMgr.log
  • На сервере сайта по умолчанию в папке C:\Program Files\Configuration Manager\Logs:On the site server, by default in C:\Program Files\Configuration Manager\Logs:

    • SMS_Message_Processing_Engine.logSMS_Message_Processing_Engine.log

См. такжеSee Also