다음을 통해 공유


Intune의 Windows 디바이스에서 PowerShell 스크립트 사용

2025년 10월 14일, Windows 10 지원이 종료되었으며 품질 및 기능 업데이트를 받지 못합니다. Windows 10 Intune에서 허용되는 버전입니다. 이 버전을 실행하는 디바이스는 여전히 Intune에 등록하고 적격 기능을 사용할 수 있지만 기능이 보장되지 않으며 다를 수 있습니다.

Intune에서 Microsoft Intune 관리 확장을 사용하여 PowerShell 스크립트를 업로드합니다. 그런 다음 Windows 디바이스에서 이러한 스크립트를 실행합니다. 관리 확장은 MDM을 향상시키고 최신 관리로 쉽게 이동할 수 있도록 합니다.

참고

Windows용 Intune 관리 확장에 대한 자세한 내용은 Windows 용 Intune 관리 확장을 참조하세요.

시작하기 전에

  • 관리자 권한이 있는 사용자 컨텍스트로 설정된 스크립트는 기본적으로 관리자 권한으로 PowerShell을 실행합니다.

  • 최종 사용자는 PowerShell 스크립트를 실행하기 위해 디바이스에 로그인할 필요가 없습니다.

  • Intune 관리 확장은 새 스크립트 또는 변경 내용을 다시 부팅할 때마다 확인합니다. 정책을 Microsoft Entra 그룹에 할당하면 PowerShell 스크립트가 실행되고 실행 결과가 보고됩니다. 스크립트는 한 번 실행되면 스크립트 또는 정책이 변경되기 전에는 다시 실행되지 않습니다. 스크립트가 실패하면 Intune 관리 확장은 다음 3회 연속 Intune 관리 확장 검사 대해 스크립트를 세 번 다시 시도합니다.

  • 디바이스에 할당된 PowerShell 스크립트는 사용자 검사 사용하지 않도록 설정된 다중 세션 SKU를 제외하고 로그인하는 모든 새 사용자에 대해 실행됩니다.

  • PowerShell 스크립트는 Win32 앱을 실행하기 전에 실행됩니다. 즉, PowerShell 스크립트가 먼저 실행됩니다. 그런 다음, Win32 앱이 실행됩니다.

  • PowerShell 스크립트는 30분 후에 시간 초과됩니다.

중요

PowerShell 스크립트 및 수정 스크립트를 사용할 때 개인 정보 보호 인식에 대한 모범 사례는 다음과 같습니다.

  • 스크립트에 중요한 정보 유형(예: 암호)을 포함하지 마세요.
  • 스크립트에 개인 데이터 포함 안 함
  • 스크립트를 사용하여 디바이스에서 개인 데이터 수집 안 함
  • 항상 개인 정보 모범 사례를 따르세요.

관련 정보는 수정을 참조하세요.

필수 구성 요소

중요

Intune 관리 확장을 실행하는 클라이언트에 배포된 스크립트는 디바이스의 시스템 시계가 월 또는 몇 년 동안 매우 오래된 경우 실행되지 않습니다. 시스템 클록을 최신 상태로 설정하면 스크립트가 예상대로 실행됩니다.

스크립트 정책 만들기 및 할당

  1. Microsoft Intune 관리 센터에 로그인합니다.

  2. 디바이스>스크립트 및 수정>플랫폼 스크립트>추가>Windows 10 이상을 선택합니다.

    Windows 디바이스에 대한 새 스크립트 만들기를 보여 주는 스크린샷

  3. 기본에서 다음 속성을 입력하고 다음을 선택합니다.

    • 이름: PowerShell 스크립트의 이름을 입력합니다.
    • 설명: PowerShell 스크립트의 설명을 입력합니다. 이 설정은 선택 사항이지만 권장됩니다.
  4. 스크립트 설정에 다음 속성을 입력하고 다음을 선택합니다.

    • 스크립트 위치: PowerShell 스크립트를 찾습니다. 스크립트는 200KB(ASCII) 미만이어야 합니다.

    • 로그온한 자격 증명을 사용하여 이 스크립트를 실행합니다. (기본값)를 선택하여 디바이스에서 사용자의 자격 증명으로 스크립트를 실행합니다. 아니요를 선택하여 시스템 컨텍스트에서 스크립트를 실행합니다. 많은 관리자들이 를 선택합니다. 스크립트를 시스템 컨텍스트에서 실행해야 하는 경우 아니요를 선택합니다.

    • 스크립트 서명 검사 적용: 신뢰할 수 있는 게시자가 스크립트에 서명해야 하는 경우 (기본값)를 선택합니다. 스크립트에 서명할 요구 사항이 없으면 아니요 를 선택합니다.

    • 64비트 PowerShell 호스트에서 스크립트 실행: 64비트 클라이언트 아키텍처의 64비트 PowerShell 호스트에서 스크립트를 실행하려면 를 선택합니다. 32비트 PowerShell 호스트에서 스크립트를 실행하려면 아니요(기본값)를 선택합니다.

      또는 아니요로 설정할 때 신규 및 기존 정책 동작에 대한 다음 표를 사용하세요.

      64비트 호스트에서 스크립트 실행 클라이언트 아키텍처 새 스크립트 기존 정책 스크립트
      아니요 32비트 32비트 PowerShell 호스트 지원됨 32비트 PowerShell 호스트에서만 실행되며, 이 호스트는 32비트 및 64비트 아키텍처에서 작동합니다.
      64비트 64비트 아키텍처용 64비트 PowerShell 호스트에서 스크립트를 실행합니다. 32비트에서 실행하면 스크립트가 32비트 PowerShell 호스트에서 실행됩니다. 32비트 PowerShell 호스트에서 스크립트를 실행합니다. 이 설정을 64비트로 변경하면 스크립트가 64비트 PowerShell 호스트에서 열리고(실행되지 않음) 결과를 보고합니다. 32비트에서 실행하면 스크립트가 32비트 PowerShell 호스트에서 실행됩니다.
  5. 범위 태그를 선택합니다. 범위 태그는 선택 사항입니다. 분산 IT에 역할 기반 액세스 제어 및 scope 태그를 사용하는 방법에 대한 자세한 정보가 있습니다.

    범위 태그를 추가하려면:

    • scope 태그> 선택을 선택하고 선택 목록에서 > 기존 scope 태그를 선택합니다.

    • 완료되면 다음을 선택합니다.

  6. 할당>포함할 그룹 선택을 선택합니다. Microsoft Entra 그룹의 기존 목록이 표시됩니다.

    • 디바이스에서 스크립트를 받는 사용자가 포함된 그룹을 하나 이상 선택합니다. 선택을 선택합니다. 선택한 그룹이 목록에 표시되고 정책을 받습니다.

      참고

      Intune의 PowerShell 스크립트는 Microsoft Entra 디바이스 보안 그룹 또는 Microsoft Entra 사용자 보안 그룹을 대상으로 지정할 수 있습니다. 그러나 WPJ(작업 공간 조인) 디바이스를 대상으로 하는 경우 Microsoft Entra 디바이스 보안 그룹만 사용할 수 있습니다(사용자 대상 지정은 무시됨).

    • 다음을 선택합니다.

      Microsoft Intune에서 PowerShell 스크립트를 디바이스 그룹에 할당 또는 배포

  7. 검토 + 추가에 구성한 설정의 요약이 표시됩니다. 추가를 선택하여 스크립트를 저장합니다. 추가를 선택하면 선택한 그룹에 정책이 배포됩니다.

시나리오 - 스크립트 실행 실패

오전 8시

  • 체크 인
  • ConfigScript01 스크립트 실행
  • 스크립트 실패

오전 9시

  • 체크 인
  • ConfigScript01 스크립트 실행
  • 스크립트 실패(재시도 횟수 = 1)

오전 10시

  • 체크 인
  • ConfigScript01 스크립트 실행
  • 스크립트 실패(재시도 횟수 = 2)

오전 11시

  • 체크 인
  • ConfigScript01 스크립트 실행
  • 스크립트 실패(재시도 횟수 = 3)

오후 12시

  • 체크 인
  • ConfigScript01스크립트를 실행하려는 다른 시도는 없습니다.
  • 스크립트에 대한 다른 변경 내용이 없는 경우 스크립트를 실행하려는 다른 시도가 없습니다.

실행 상태 모니터링

포털에서 사용자 및 디바이스에 대한 PowerShell 스크립트의 실행 상태를 모니터링할 수 있습니다.

PowerShell 스크립트에서 모니터링할 스크립트를 선택하고, 모니터를 선택한 다음, 다음 보고서 중 하나를 선택합니다.

  • 디바이스 상태
  • 사용자 상태

참고

플랫폼 스크립트용 Intune 관리 센터에서 디바이스 상태 내보내기에서는 이제 Intune 내보내기 API를 사용하고 CSV 열 이름은 API 스키마에 맞춥니다.

스크립트 삭제

PowerShell 스크립트에서 스크립트를 마우스 오른쪽 단추로 클릭하고 삭제를 선택합니다.

일반적인 문제 및 해결 방법

문제: PowerShell 스크립트가 실행되지 않음

가능한 해결 방법:

  • PowerShell 스크립트는 로그인할 때마다 실행되지는 않습니다. 실행:

    • 스크립트가 디바이스에 할당된 경우

    • 스크립트를 변경하는 경우 업로드하고 스크립트를 사용자 또는 디바이스에 할당

      Microsoft Intune 관리 확장은 서비스 앱(services.msc)에 나열된 다른 서비스와 마찬가지로 디바이스에서 실행되는 서비스입니다. 디바이스가 다시 부팅되면 이 서비스가 다시 시작되고 Intune 서비스를 사용하여 할당된 PowerShell 스크립트에 대해 검사 수 있습니다. Microsoft Intune 관리 확장 서비스가 수동으로 설정된 경우 디바이스가 다시 부팅된 후 서비스가 다시 시작되지 않을 수 있습니다.

  • 디바이스가 Microsoft Entra ID에 조인되어 있는지 확인합니다. 회사 또는 organization Microsoft Entra ID에만 등록된 디바이스는 스크립트를 수신하지 않습니다.

  • Intune 관리 확장이 %ProgramFiles(x86)%\Microsoft Intune Management Extension에 다운로드되었는지 확인합니다.

  • 스크립트는 Surface Hubs 또는 Windows S 모드에서 실행되지 않습니다.

  • 로그에 오류가 있는지 검토합니다. 이 문서 내의 Intune 관리 확장 로그를 참조하세요.

  • 가능한 권한 문제의 경우 PowerShell 스크립트의 속성이 Run this script using the logged on credentials로 설정되었는지 확인합니다. 또한 로그인한 사용자에게 스크립트를 실행할 적절한 권한이 있는지 확인합니다.

  • 스크립팅 문제를 격리하는 방법은 다음과 같습니다.

    • 디바이스에서 PowerShell 실행 구성을 검토합니다. 지침은 PowerShell 실행 정책을 참조하세요.

    • Intune 관리 확장을 사용하여 샘플 스크립트를 실행합니다. 예를 들어 C:\Scripts 디렉터리를 만들고 모든 사용자에게 모든 권한을 제공합니다. 다음 스크립트를 실행합니다.

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

      성공하면 output.txt가 만들어지고 “Script worked” 텍스트가 포함됩니다.

    • Intune 없이 스크립트 실행을 테스트하려면 로컬로 psexec 도구를 사용하여 시스템 계정에서 스크립트를 실행합니다.

      psexec -i -s

    • 스크립트가 성공했다고 보고하지만 실제로 성공하지 못한 경우 바이러스 백신 서비스가 샌드박싱 에이전트Executor일 수 있습니다. 다음 스크립트는 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 디바이스에서 자신을 제거합니다.

다음 단계

프로필을 모니터링하고 문제를 해결합니다.