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


Использование сценариев PowerShell для устройств Windows 10/11 в Intune

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

Примечание.

Сведения о расширении управления Intune для Windows см. в разделе расширение управления Intune для Windows.

Прежде чем начать

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

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

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

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

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

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

Важно!

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

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

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

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

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

Важно!

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

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

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

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

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

  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. Выберите Теги области. Теги области являются необязательными. Дополнительные сведения см. в разделе Использование управления доступом на основе ролей (RBAC) и тегов области для распределенных ИТ.

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

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

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

  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 выберите сценарий для отслеживания, выберите Отслеживать, затем выберите один из следующих отчетов:

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

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

В области Сценарии 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 10 в режиме 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 обнаруживает, что Windows не управляется на следующем проверка IME (обычно каждые 8 часов), и отменяет выполнение скриптов. В то же время могут выполняться любые локально хранимые скрипты. Если IME не может проверка, он повторяет попытку входа в течение 24 часов (время пробуждения устройства), а затем удаляется с устройства Windows.

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

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