Intune의 macOS 디바이스에서 셸 스크립트 사용

셸 스크립트를 사용하여 macOS 운영 체제에서 지원하는 것 이상으로 Intune에서 디바이스 관리 기능을 확장합니다.

참고

Apple Silicon Mac에서 x64(Intel) 버전의 앱을 실행하려면 Rosetta 2가 필요합니다. Apple Silicon Mac에 Rosetta 2를 자동으로 설치하려면 Intune에서 셸 스크립트를 배포할 수 있습니다. 샘플 스크립트를 보려면 Rosetta 2 설치 스크립트를 참조하세요.

필수 구성 요소

셸 스크립트를 작성하고 macOS 디바이스에 할당할 때 다음 필수 구성 요소가 충족되는지 확인합니다.

  • 디바이스에서 macOS 12.0 이상을 실행하고 있습니다.
  • 디바이스는 Intune에서 관리됩니다.
  • 디바이스는 인터넷에 직접 연결됩니다. 프록시를 통한 연결은 지원되지 않습니다.
  • 셸 스크립트는 로 #! 시작하고 또는 #!/usr/bin/env zsh와 같은 #!/bin/sh 유효한 위치에 있어야 합니다.
  • 해당 셸에 대한 명령줄 인터프리터가 설치됩니다.

셸 스크립트를 사용하기 전에 중요한 고려 사항

  • 셸 스크립트를 사용하려면 Microsoft Intune 관리 에이전트가 macOS 디바이스에 성공적으로 설치되어야 합니다. 자세한 내용은 macOS용 Microsoft Intune 관리 에이전트를 참조하세요.
  • 셸 스크립트는 별도의 프로세스로 디바이스에서 병렬로 실행됩니다.
  • 로그인한 사용자로 실행되는 셸 스크립트는 실행 시 디바이스에서 현재 로그인한 모든 사용자 계정에 대해 실행됩니다.
  • 최종 사용자는 로그인한 사용자로 실행되는 스크립트를 실행하기 위해 디바이스에 로그인해야 합니다.
  • 스크립트에 표준 사용자 계정이 변경할 수 없는 변경이 필요한 경우 루트 사용자 권한이 필요합니다.
  • 셸 스크립트는 디스크가 가득 찬 경우, 스토리지 위치가 변조된 경우, 로컬 캐시가 삭제된 경우 또는 Mac 디바이스가 다시 시작되는 경우와 같은 특정 조건에 대해 선택한 스크립트 빈도보다 더 자주 실행하려고 시도합니다.
  • 60분 이상 실행되는 셸 스크립트는 중지되고 "실패"로 보고됩니다.

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

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

  2. 디바이스>macOS>셸 스크립트 추가를> 선택합니다.

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

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

    • 스크립트 업로드: 셸 스크립트로 이동합니다. 스크립트 파일의 크기는 200KB 미만이어야 합니다.
    • 로그인한 사용자로 스크립트 실행: 예를 선택하여 디바이스에서 사용자의 자격 증명으로 스크립트를 실행합니다. 아니요(기본값)를 선택하여 스크립트를 루트 사용자로 실행합니다.
    • 디바이스에서 스크립트 알림 숨기기: 기본적으로 스크립트 알림은 실행되는 각 스크립트에 대해 표시됩니다. 최종 사용자에게 IT가 macOS 디바이스의 Intune에서 컴퓨터 알림을 구성하는 것을 볼 수 있습니다 .
    • 스크립트 빈도: 스크립트를 실행할 빈도를 선택합니다. 스크립트를 한 번만 실행하려면 구성되지 않음 (기본값)을 선택합니다. 빈도 집합이 있는 스크립트도 디바이스를 다시 시작한 후에 실행됩니다.
    • 스크립트가 실패할 경우 다시 시도할 최대 횟수: 스크립트가 0이 아닌 종료 코드를 반환하는 경우 스크립트를 실행해야 하는 횟수를 선택합니다(성공 의미 0). 스크립트 실패할 때 다시 시도하지 않도록 구성되지 않음(기본값)을 선택합니다.
  5. 범위 태그에서 필요에 따라 스크립트에 대한 scope 태그를 추가하고 다음을 선택합니다. scope 태그를 사용하여 Intune에서 스크립트를 볼 수 있는 사용자를 결정할 수 있습니다. scope 태그에 대한 자세한 내용은 분산 IT에 역할 기반 액세스 제어 및 scope 태그 사용을 참조하세요.

  6. 할당>포함할 그룹 선택을 선택합니다. Microsoft Entra 그룹의 기존 목록이 표시됩니다. 스크립트를 받을 하나 이상의 사용자 또는 디바이스 그룹을 선택합니다. 선택을 선택합니다. 선택한 그룹이 목록에 표시되며 스크립트 정책을 받게 됩니다.

    참고

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

이제 만든 스크립트가 스크립트 목록에 표시됩니다. 필요한 경우 Intune에 업로드한 후 macOS 셸 스크립트의 내용을 볼 수 있습니다.

셸 스크립트 정책 모니터링

다음 보고서 중 하나를 선택하여 사용자 및 디바이스에 대해 할당된 모든 스크립트의 실행 상태 모니터링할 수 있습니다.

  • 스크립트>모니터링 >할 스크립트 선택디바이스 상태
  • 스크립트>모니터링 >할 스크립트 선택사용자 상태

중요

선택한 스크립트 빈도에 관계없이 스크립트 실행 상태 스크립트가 처음 실행될 때만 보고됩니다. 스크립트 실행 상태 후속 실행에서는 업데이트되지 않습니다. 그러나 업데이트된 스크립트는 새 스크립트로 처리되고 실행 상태 다시 보고합니다.

스크립트가 실행되면 다음 상태 중 하나를 반환합니다.

  • 스크립트 실행 상태 실패는 스크립트가 0이 아닌 종료 코드를 반환했거나 스크립트의 형식이 잘못되었음을 나타냅니다.
  • 스크립트 실행 상태 성공 스크립트가 종료 코드로 0을 반환했음을 나타냅니다.

로그 컬렉션을 사용하여 macOS 셸 스크립트 정책 문제 해결

디바이스 로그를 수집하여 macOS 디바이스의 스크립트 문제를 해결할 수 있습니다.

로그 수집에 대한 요구 사항

macOS 디바이스에서 로그를 수집하려면 다음 항목이 필요합니다.

  • 전체 절대 로그 파일 경로를 지정해야 합니다.
  • 파일 경로는 세미콜론(;)만 사용하여 구분해야 합니다.
  • 업로드할 최대 로그 수집 크기는 60MB(압축됨) 또는 25개 파일 중 먼저 발생합니다.
  • 로그 수집에 허용되는 파일 형식에는 .log, .zip, .gz, .tar, .txt, .xml, .crash, .rtf 확장이 포함됩니다.

디바이스 로그 수집

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

  2. 디바이스>스크립트로 이동하고 macOS 셸 스크립트를 선택합니다.

  3. 디바이스 상태 또는 사용자 상태 보고서에서 디바이스를 선택합니다.

  4. 로그 수집을 선택하고, 세미콜론으로만 구분된 로그 파일의 폴더 경로를 제공합니다(;) 경로 사이에 공백이나 줄 바꿈이 없습니다.
    예를 들어 여러 경로를 로 /Path/to/logfile1.zip;/Path/to/logfile2.log작성해야 합니다.

    중요

    공백이 있거나 없는 쉼표, 마침표, 줄 바꿈 또는 따옴표를 사용하여 구분된 여러 로그 파일 경로로 인해 로그 수집 오류가 발생합니다. 공백은 경로 간의 구분 기호로도 허용되지 않습니다.

  5. 확인을 선택합니다. 다음에 디바이스의 Intune 관리 에이전트가 Intune을 사용하여 체크 인할 때 로그가 수집됩니다. 이 검사 일반적으로 8시간마다 발생합니다.

    참고

    • 수집된 로그는 디바이스에서 암호화되어 30일 동안 Microsoft Azure Storage에 전송 및 저장됩니다. 저장된 로그는 요청 시 해독되고 Microsoft Intune 관리 센터를 사용하여 다운로드됩니다.
    • 관리자가 지정한 로그 외에도 Intune 관리 에이전트 로그도 및 ~/Library/Logs/Microsoft/Intune폴더에서 수집됩니다/Library/Logs/Microsoft/Intune. 에이전트 로그 파일 이름은 및 IntuneMDMAgent date--time.log입니다IntuneMDMDaemon date--time.log.
    • 관리자가 지정한 파일이 없거나 잘못된 파일 확장명이 있는 경우 에 나열된 LogCollectionInfo.txt이러한 파일 이름을 찾을 수 있습니다.

로그 수집 오류

아래 표에 제공된 다음과 같은 이유로 인해 로그 수집에 성공하지 못할 수 있습니다. 이러한 오류를 resolve 수정 단계를 수행합니다.

오류 코드(16진수) 오류 코드(12월) 오류 메시지 수정 단계
0X87D300D1 2016214834 로그 파일 크기는 60MB를 초과할 수 없습니다. 압축된 로그의 크기가 60MB 미만인지 확인합니다.
0X87D300D1 2016214831 제공된 로그 파일 경로가 있어야 합니다. 시스템 사용자 폴더가 로그 파일의 잘못된 위치입니다. 제공된 파일 경로가 유효하고 액세스할 수 있는지 확인합니다.
0X87D300D2 2016214830 업로드 URL 만료로 인해 로그 수집 파일 업로드가 실패했습니다. 로그 수집 작업을 다시 시도합니다.
0X87D300D3, 0X87D300D5, 0X87D300D7 2016214829, 2016214827, 2016214825 암호화 실패로 인해 로그 수집 파일 업로드가 실패했습니다. 로그 업로드를 다시 시도합니다. 로그 수집 작업을 다시 시도합니다.
2016214828 로그 파일 수가 허용되는 25개 파일 제한을 초과했습니다. 한 번에 최대 25개 로그 파일만 수집할 수 있습니다.
0X87D300D6 2016214826 zip 오류로 인해 로그 수집 파일 업로드에 실패했습니다. 로그 업로드를 다시 시도합니다. 로그 수집 작업을 다시 시도합니다.
2016214740 압축된 로그를 찾을 수 없어 로그를 암호화할 수 없습니다. 로그 수집 작업을 다시 시도합니다.
2016214739 로그가 수집되었지만 저장할 수 없습니다. 로그 수집 작업을 다시 시도합니다.

macOS에 대한 사용자 지정 특성

셸 스크립트를 사용하여 관리형 macOS 디바이스에서 사용자 지정 속성을 수집할 수 있는 사용자 지정 특성 프로필을 만들 수 있습니다.

macOS 디바이스에 대한 사용자 지정 특성 만들기 및 할당

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

  2. 디바이스>macOS>사용자 지정 특성>추가를 선택합니다.

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

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

    • 특성의 데이터 형식: 스크립트가 반환하는 결과의 데이터 형식을 선택합니다. 사용 가능한 값은 String, IntegerDate입니다.
    • 스크립트: 스크립트 파일을 선택합니다.

    추가 세부 정보:

    • 셸 스크립트는 보고할 특성을 에코해야 하며 출력의 데이터 형식은 사용자 지정 특성 프로필의 특성 데이터 형식과 일치해야 합니다.
    • 셸 스크립트에서 반환된 결과는 20KB 이하여야 합니다.

    참고

    형식 특성을 사용하는 Date 경우 셸 스크립트가 ISO-8601 형식으로 날짜를 반환하는지 확인합니다. 아래 예제를 참조하세요.

    표준 시간대를 사용하여 ISO-8601 규격 날짜를 인쇄하려면 다음을 수행합니다.

    #!/bin/sh
    var=$(date +"%Y-%m-%dT%H:%M:%S%z")
    echo $var # Prints an ISO-8601 compliant date with time-zone
    

    UTC 시간으로 ISO-8601 규격 날짜를 인쇄하려면 다음을 수행합니다.

    #!/bin/sh
    var=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
    echo $var # Prints an ISO-8601 compliant date in UTC time
    
  5. 할당에서 포함할 그룹 선택을 클릭합니다. Microsoft Entra 그룹의 기존 목록을 포함하도록 그룹 선택을 선택하면 표시됩니다. 스크립트를 받을 하나 이상의 사용자 또는 디바이스 그룹을 선택합니다. 선택을 선택합니다. 선택한 그룹이 목록에 표시되며 스크립트 정책을 받게 됩니다. 또는 할당 옆의 드롭다운 상자에서 이러한 옵션 중 하나를 선택하여 모든 사용자, 모든 디바이스 또는 모든 사용자 및 모든 디바이스 를 선택할 수 있습니다.

    참고

    • 사용자 그룹에 할당된 스크립트는 Mac에 로그인하는 모든 사용자에 적용됩니다.
  6. 검토 + 추가에 구성한 설정의 요약이 표시됩니다. 추가를 선택하여 스크립트를 저장합니다. 추가를 선택하면 선택한 그룹에 스크립트 정책이 배포됩니다.

이제 만든 스크립트가 사용자 지정 특성 목록에 표시됩니다. 필요한 경우 Intune에 업로드한 후 사용자 지정 특성의 내용을 볼 수 있습니다.

사용자 지정 특성 정책 모니터링

다음 보고서 중 하나를 선택하여 사용자 및 디바이스에 대해 할당된 모든 사용자 지정 특성 프로필의 실행 상태 모니터링할 수 있습니다.

  • 사용자 지정 특성>모니터링 >할 사용자 지정 특성 프로필 선택디바이스 상태
  • 사용자 지정 특성>모니터링 >할 사용자 지정 특성 프로필 선택사용자 상태

중요

사용자 지정 특성 프로필에 제공된 셸 스크립트는 관리형 Mac에서 8시간마다 실행되고 보고됩니다.

사용자 지정 특성 프로필이 실행되면 다음 상태 중 하나를 반환합니다.

  • 실패의 상태 스크립트가 0이 아닌 종료 코드를 반환했거나 스크립트의 형식이 잘못되었음을 나타냅니다. 오류는 결과 열에 보고됩니다.
  • 성공의 상태 스크립트가 0을 종료 코드로 반환했음을 나타냅니다. 스크립트에 의해 에코되는 출력은 결과 열에 보고됩니다.

질문과 대답

할당된 셸 스크립트가 디바이스에서 실행되지 않는 이유는 무엇인가요?

몇 가지 이유가 있을 수 있습니다.

  • 에이전트는 새 스크립트 또는 업데이트된 스크립트를 수신하기 위해 에 검사 필요할 수 있습니다. 이 검사 프로세스는 8시간마다 발생하며 MDM 검사 다릅니다. 성공적인 에이전트 검사 디바이스가 절전 모드에서 해제되어 네트워크에 연결되어 있는지 확인하고 에이전트가 검사 때까지 기다립니다. 최종 사용자에게 Mac에서 회사 포털 열도록 요청하고 디바이스를 선택하고 설정 확인을 클릭할 수도 있습니다.
  • 에이전트가 설치되지 않을 수 있습니다. 에이전트가 macOS 디바이스에 설치되어 /Library/Intune/Microsoft Intune Agent.app 있는지 확인합니다.
  • 에이전트가 정상 상태가 아닐 수 있습니다. 에이전트는 24시간 동안 복구를 시도하고, 자체를 제거하고, 셸 스크립트가 여전히 할당된 경우 다시 설치합니다.

스크립트 실행 상태 보고되는 빈도는 얼마나 입니까?

스크립트 실행 상태 스크립트 실행이 완료되는 즉시 Microsoft Intune 관리 센터에 보고됩니다. 스크립트가 설정된 빈도로 주기적으로 실행되도록 예약된 경우 스크립트가 처음 실행될 때 상태 보고합니다.

셸 스크립트는 언제 다시 실행되나요?

스크립트가 실패하는 경우 다시 시도할 최대 횟수 설정이 구성되고 스크립트가 실행 시 실패하는 경우에만 스크립트가 다시 실행됩니다. 스크립트가 실패할 경우 다시 시도할 최대 횟수가 구성되지 않고 스크립트가 실행될 때 실패하는 경우 다시 실행되지 않고 실행 상태 실패로 보고됩니다.

셸 스크립트에 필요한 Intune 역할 권한은 무엇인가요?

할당된 intune 역할에는 셸 스크립트를 삭제, 할당, 만들기, 업데이트 또는 읽기 위한 디바이스 구성 권한이 필요합니다.

알려진 문제

  • 스크립트 실행 상태 없음: 실행 상태 보고되기 전에 디바이스에서 스크립트가 수신되고 디바이스가 오프라인 상태가 되는 경우 디바이스는 관리 센터의 스크립트에 대한 실행 상태 보고하지 않습니다.

추가 정보

Microsoft Intune macOS 디바이스에 대한 셸 스크립트 또는 사용자 지정 특성을 배포하는 경우 Apple Silicon Mac 머신에서 기본적으로 실행되는 새 유니버설 버전의 Intune 관리 에이전트 앱을 배포합니다. 동일한 배포는 Intel Mac 컴퓨터에 x64 버전의 앱을 설치합니다. Apple Silicon Mac에서 x64(Intel) 버전의 앱을 실행하려면 Rosetta 2가 필요합니다. Apple Silicon Mac에 Rosetta 2를 자동으로 설치하려면 Intune에서 셸 스크립트를 배포할 수 있습니다. 샘플 스크립트를 보려면 Rosetta 2 설치 스크립트를 참조하세요.

다음 단계