Использование сценариев PowerShell на устройствах Windows в Intune

Используйте расширение управления Microsoft Intune, чтобы отправлять сценарии PowerShell в Intune. Затем запустите эти сценарии на устройствах с Windows. Расширение для управления расширяет возможности MDM и упрощает переход к современному управлению.

Примечание.

Дополнительные сведения о расширении управления Intune для Windows см. в разделе Расширение управления Intune для Windows.

Подготовка к работе

  • Сценарии, настроенные в контексте пользователя с правами администратора, запускают PowerShell по умолчанию с правами администратора.

  • Конечным пользователям не требуется выполнять вход на устройство для выполнения сценариев PowerShell.

  • Расширение управления Intune проверяет наличие новых сценариев или изменений после каждой перезагрузки. После назначения политики группам Microsoft Entra запускается скрипт PowerShell и сообщается о результатах выполнения. Последующее выполнение сценария происходит только при изменении сценария или политики. В случае сбоя сценария расширение управления Intune трижды запускает сценарий для следующих трех последовательных проверок расширения управления Intune.

  • Сценарии PowerShell, назначенные устройству, запускаются для каждого нового пользователя, который входит в систему, за исключением номеров SKU с несколькими сеансами, где проверка пользователей отключена.

  • Скрипты PowerShell выполняются перед запуском приложений Win32. Иными словами, скрипты PowerShell выполняются первыми. Затем выполняются приложения Win32.

  • Время ожидания сценариев PowerShell истекает через 30 минут.

Важно!

Рекомендации по информированию о конфиденциальности при использовании сценариев PowerShell и сценариев исправления:

  • Не включайте в сценарии конфиденциальные данные (например, пароли)
  • Не включать персональные данные в сценарии
  • Не используйте сценарии для сбора персональных данных с устройств
  • Всегда следуйте рекомендациям по конфиденциальности

Дополнительные сведения см. в разделе "Исправления".

Предварительные условия

Важно!

Сценарии, развернутые на клиентах с расширением управления Intune, не запускаются, если системные часы устройства значительно устарели на месяцы или годы. После обновления системных часов сценарий выполняется должным образом.

Создание и назначение политики сценариев

  1. Войдите в Центр администрирования Microsoft Intune.

  2. Выбор устройств>Сценарии и исправления>Сценарии платформы Добавление>>Windows 10 и более поздних версий.

    Снимок экрана: создание сценария для устройства с Windows.

  3. В разделе Основные введите следующие свойства и нажмите кнопку Далее:

    • Имя: введите имя сценария PowerShell.
    • Описание: введите описание сценария PowerShell. Это необязательные данные, но рекомендуется их ввести.
  4. В разделе Параметры сценария укажите следующие свойства и нажмите кнопку Далее:

    • Расположение сценария: выберите сценарий PowerShell. Размер сценария не должен превышать 200 КБ (ASCII).

    • Запустите этот сценарий с учетными данными, входящими в систему: выберите "Да " (по умолчанию), чтобы запустить сценарий с учетными данными пользователя на устройстве. Нажмите кнопку "Нет ", чтобы запустить сценарий в системном контексте. Многие администраторы выбирают Да. Если требуется запустить сценарий в контексте системы, выберите Нет.

    • Принудительная проверка подписи сценария: выберите "Да" (по умолчанию), если сценарий должен быть подписан надежным издателем. Выберите "Нет ", если не требуется подписывать сценарий.

    • Запуск сценария в 64-разрядном узле PowerShell: выберите Да, чтобы запустить сценарий в 64-разрядном узле PowerShell с 64-разрядной клиентской архитектурой. Выберите Нет (по умолчанию), чтобы запустить сценарий в 32-разрядном узле PowerShell.

      При выборе значений Да или Нет используйте следующую таблицу, чтобы определить поведение новых и существующих политик:

      Запуск скрипта на 64-разрядном узле Архитектура клиента Новый сценарий Существующий скрипт политики
      Нет 32-разрядная Поддерживается 32-разрядный узел PowerShell Скрипт запускается только на 32-разрядном узле PowerShell, который работает в 32- и 64-разрядных архитектурах.
      Да 64-разрядная Скрипт запускается на 64-разрядном узле PowerShell для 64-разрядных архитектур. Если запуск выполнялся в 32-разрядной системе, скрипт запускается на 32-разрядном узле PowerShell. Запуск скрипта на 32-разрядном узле PowerShell. При изменении значения этого параметра на 64-разрядную версию скрипт открывается (не запускается) на 64-разрядном узле PowerShell и выводит результаты. Если запуск выполнялся в 32-разрядной системе, скрипт запускается на 32-разрядном узле PowerShell.
  5. Выберите Теги области. Теги области являются необязательными. Используйте функции управления доступом на основе ролей и теги областей для распределенных ИТ-ресурсов.

    Добавление тега области

    • Нажмите кнопку Выбрать теги> областей Выберите существующий тег области из списка >Выберите.

    • Когда закончите, нажмите Далее.

  6. Выберите пункты Назначения>Выберите группы для включения. Показан существующий список групп Microsoft Entra.

    • Выберите одну или несколько групп пользователей, чьи устройства получат сценарий. Нажмите Выбрать. Выбранные группы отобразятся в списке и получат вашу политику.

      Примечание.

      Сценарии PowerShell в Intune могут быть нацелены на группы безопасности устройств Microsoft Entra или группы безопасности пользователей Microsoft Entra. Однако при нацеливании на устройства, присоединенные к рабочему месту (WPJ), можно использовать только группы безопасности устройств Microsoft Entra (таргетинг пользователей игнорируется).

    • Нажмите кнопку Далее.

      Назначение или развертывание сценария PowerShell для групп устройств в Microsoft Intune

  7. В окне Проверка и добавление отображается сводка по настроенным параметрам. Выберите Добавить, чтобы сохранить сценарий. Если нажать кнопку Добавить, политика будет развернута в выбранных группах.

Сценарий: сбой при запуске сценария

08:00

  • Возврат
  • Запуск скрипта ConfigScript01
  • Сбой выполнения скрипта

09:00

  • Возврат
  • Запуск скрипта ConfigScript01
  • Сбой выполнения скрипта (число повторных попыток = 1)

10:00

  • Возврат
  • Запуск скрипта ConfigScript01
  • Сбой выполнения скрипта (число повторных попыток = 2)

11:00

  • Возврат
  • Запуск скрипта ConfigScript01
  • Сбой выполнения скрипта (число повторных попыток = 3)

12:00

  • Возврат
  • Другие попытки запустить сценарий ConfigScript01не предпринимаются.
  • Если в сценарий не вносятся другие изменения, то другие попытки запустить сценарий не предпринимаются.

Отслеживание состояния выполнения

На портале можно отслеживать состояние выполнения скриптов PowerShell для пользователей и устройств.

В области Сценарии PowerShell выберите сценарий для отслеживания, выберите Отслеживать, затем выберите один из следующих отчетов:

  • Состояние устройства
  • Состояние пользователя

Примечание.

При экспорте состояния устройства из Центра администрирования Intune для сценариев платформы теперь используется API экспорта Intune, а имена столбцов CSV согласуются со схемой API.

Удаление скрипта

В области Сценарии PowerShell щелкните сценарий правой кнопкой мыши и выберите Удалить.

Распространенные проблемы и способы их решения

Проблема: сценарии PowerShell не запускаются

Возможные решения:

  • Скрипты PowerShell не выполняются при каждом входе в систему. Они выполняются в следующих случаях:

    • когда скрипт назначается устройству;

    • когда вы изменяете скрипт, загружаете его и назначаете пользователю или устройству.

      Совет

      Расширение управления Intune Microsoft — это служба, которая выполняется на устройстве, как и любая другая служба, указанная в приложении "Службы" (services.msc). После перезагрузки устройства эта служба может перезапуститься и выполнить проверку на наличие любых назначенных сценариев PowerShell с помощью службы Intune. Если службе расширения управления Microsoft Intune присвоено значение "Вручную", служба может не перезапуститься после перезагрузки устройства.

  • Убедитесь, что устройства присоединены к Microsoft Entra ID. Устройства, зарегистрированные только на вашем рабочем месте или в организации в Microsoft Entra ID, не получают скрипты.

  • Убедитесь, что расширение управления Intune скачано в папку %ProgramFiles(x86)%\Microsoft Intune Management Extension.

  • Сценарии не выполняются на устройствах Surface Hub или в Windows в S-режиме.

  • Проверьте журналы на наличие ошибок. См. раздел Журналы расширения управления Intune (в этой статье).

  • Чтобы исключить проблемы с разрешениями, задайте Run this script using the logged on credentials в свойствах сценария PowerShell. Также убедитесь, что выполнивший вход пользователь имеет нужные разрешения на выполнение сценария.

  • Чтобы определить проблемы со скриптами, сделайте следующее:

    • Проверьте конфигурацию выполнения PowerShell на устройствах. Инструкции см. в разделе Политика выполнения PowerShell.

    • Запустите пример скрипта с помощью расширения управления Intune. Например, создайте каталог C:\Scripts и предоставьте всем полный доступ к нему. Запустите следующий сценарий:

      write-output "Script worked" | out-file c:\Scripts\output.txt
      

      При успешном выполнении будет создан файл output.txt с текстом "Script worked" (Сценарий отработал).

    • Чтобы проверить выполнение сценариев без Intune, запустите их в локальной системной учетной записи с помощью средства psexec:

      psexec -i -s

    • Если сценарий сообщает, что он выполнен успешно, но на самом деле это не так, то, возможно, антивирусная служба использует песочницу AgentExecutor. Следующий скрипт всегда сообщает об ошибке в Intune. В качестве теста можно использовать следующий скрипт:

      Write-Error -Message "Forced Fail" -Category OperationStopped
      mkdir "c:\temp"
      echo "Forced Fail" | out-file c:\temp\Fail.txt
      

      Если сообщается о выполнении скрипта, проверьте AgentExecutor.log, чтобы подтвердить ошибку. Если сценарий выполняется, длина должна быть равна >2.

    • Для записи файлов .error и .output следующий фрагмент кода выполняет скрипт с помощью AgentExecutor для PowerShell x86 (C:\Windows\SysWOW64\WindowsPowerShell\v1.0). При этом журналы сохраняются для проверки. Помните, что расширение управления Intune очищает журналы после выполнения скрипта:

      $scriptPath = read-host "Enter the path to the script file to execute"
      $logFolder = read-host "Enter the path to a folder to output the logs to"
      $outputPath = $logFolder+"\output.output"
      $errorPath =  $logFolder+"\error.error"
      $timeoutPath =  $logFolder+"\timeout.timeout"
      $timeoutVal = 60000
      $PSFolder = "C:\Windows\SysWOW64\WindowsPowerShell\v1.0"
      $AgentExec = "C:\Program Files (x86)\Microsoft Intune Management Extension\agentexecutor.exe"
      &$AgentExec -powershell  $scriptPath $outputPath $errorPath $timeoutPath $timeoutVal $PSFolder 0 0
      

Проблема: почему сценарии выполняются, хотя управление Windows больше не осуществляется?

Если управление устройством Windows с назначенными сценариями прекращено, IME не удаляется немедленно. IME определяет, что при следующей проверке IME (обычно каждые 8 часов) Windows не управляется, и отменяет запуск сценариев. В то же время можно запускать любые локально хранящиеся сценарии. Если IME не удается выполнить проверку, он повторяет попытку регистрации в течение 24 часов (время бодрствования устройства), а затем удаляется с устройства Windows.

Дальнейшие действия

Мониторинг и устранение неполадок для профилей.