셸 스크립트를 사용하여 macOS 운영 체제에서 지원하는 기능 이상으로 Intune의 장치 관리 기능을 확장합니다.
참고
Apple Silicon Mac에서 x64(Intel) 버전의 앱을 실행하려면 Rosetta 2가 필요합니다. Apple 실리콘 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분 이상 실행되는 셸 스크립트는 중지되고 "실패"로 보고됩니다.
셸 스크립트 정책 만들기 및 할당
Microsoft Intune 관리 센터에 로그인합니다.
플랫폼>별 장치> 선택macOS>장치 관리 스크립트>>추가.
기본에서 다음 속성을 입력하고 다음을 선택합니다.
- 이름: 셸 스크립트의 이름을 입력합니다.
- 설명: 셸 스크립트에 대한 설명을 입력합니다. 이 설정은 선택 사항이지만 권장됩니다.
스크립트 설정에 다음 속성을 입력하고 다음을 선택합니다.
- 스크립트 업로드: 셸 스크립트로 이동합니다. 스크립트 파일의 크기는 1MB 미만이어야 합니다.
- 로그인한 사용자로 스크립트 실행: 예를 선택하여 디바이스에서 사용자의 자격 증명으로 스크립트를 실행합니다. 아니요(기본값)를 선택하여 스크립트를 루트 사용자로 실행합니다.
- 장치에서 스크립트 알림 숨기기: 기본적으로 스크립트 알림은 실행되는 각 스크립트에 대해 표시됩니다. 최종 사용자에게 IT가 macOS 장치의 Intune에서 컴퓨터 알림을 구성하고 있는 것으로 표시됩니다.
- 스크립트 빈도: 스크립트를 실행할 빈도를 선택합니다. 스크립트를 한 번만 실행하려면 구성되지 않음 (기본값)을 선택합니다. 빈도가 설정된 스크립트는 장치를 다시 시작한 후에도 실행됩니다.
- 스크립트가 실패하는 경우 다시 시도할 수 있는 최대 횟수: 0이 아닌 종료 코드(0은 성공을 의미)를 반환하는 경우 스크립트를 실행할 횟수를 선택합니다. 스크립트가 실패할 때 다시 시도하지 않으려면 구성되지 않음 (기본값)을 선택합니다.
범위 태그에서 필요에 따라 스크립트에 대한 scope 태그를 추가하고 다음을 선택합니다. scope 태그를 사용하여 Intune에서 스크립트를 볼 수 있는 사용자를 결정할 수 있습니다. scope 태그에 대한 자세한 내용은 분산 IT에 역할 기반 액세스 제어 및 scope 태그 사용을 참조하세요.
할당>포함할 그룹 선택을 선택합니다. Microsoft Entra 그룹의 기존 목록이 표시됩니다. 스크립트를 받을 하나 이상의 사용자 또는 장치 그룹을 선택합니다. 선택을 선택합니다. 선택한 그룹이 목록에 표시되고 스크립트 정책을 받게 됩니다.
참고
- 사용자 그룹에 할당된 셸 스크립트는 Mac에 로그인하는 모든 사용자에게 적용됩니다.
- 셸 스크립트에 대한 할당을 업데이트하면 macOS용 Microsoft Intune MDM 에이전트에 대한 할당도 업데이트됩니다.
검토 + 추가에 구성한 설정의 요약이 표시됩니다. 추가를 선택하여 스크립트를 저장합니다. 추가를 선택하면 선택한 그룹에 스크립트 정책이 배포됩니다.
이제 만든 스크립트가 스크립트 목록에 나타납니다. 필요한 경우 Intune에 업로드한 후 macOS 셸 스크립트의 내용을 볼 수 있습니다.
셸 스크립트 정책 모니터링
다음 보고서 중 하나를 선택하여 사용자 및 디바이스에 할당된 모든 스크립트의 실행 상태를 모니터링할 수 있습니다.
- 스크립트>모니터링 >할 스크립트 선택장치 상태
- 스크립트>모니터링 >할 스크립트 선택사용자 상태
중요
선택한 스크립트 빈도에 관계없이 스크립트 실행 상태는 마지막 보고서에서 상태가 변경된 경우에만 보고됩니다. 예를 들어 스크립트가 한 실행에서 성공을 보고하고 다음 실행에서 실패를 보고하는 경우 Intune은 상태와 마지막 업데이트 타임스탬프를 모두 현재 실행 정보로 업데이트합니다. 동기화 간에 스크립트 상태가 변경되지 않으면 Intune은 초기 실행으로부터 7일마다 마지막 업데이트된 타임스탬프를 업데이트합니다.
스크립트가 실행되면 다음 상태 중 하나를 반환합니다.
- 스크립트 실행 상태가 실패했다면 스크립트가 0이 아닌 종료 코드를 반환했거나 스크립트 형식이 잘못되었음을 나타냅니다.
- 스크립트 실행 상태가 성공이면 스크립트가 종료 코드로 0을 반환했음을 나타냅니다.
로그 수집을 사용하여 macOS 셸 스크립트 정책 문제 해결
장치 로그를 수집하여 macOS 장치에서 스크립트 문제를 해결할 수 있습니다.
로그 수집 요구 사항
macOS 장치에서 로그를 수집하려면 다음 항목이 필요합니다.
- 전체 절대 로그 파일 경로를 지정해야 합니다.
- 파일 경로는 세미콜론(;)만 사용하여 구분해야 합니다.
- 업로드할 최대 로그 컬렉션 크기는 60MB(압축) 또는 25개 파일 중 먼저 도래하는 제한입니다.
- 로그 수집에 허용되는 파일 형식에는 .log, .zip, .gz, .tar, .txt, .xml, .crash .rtf 확장명이 포함됩니다
장치 로그 수집
Microsoft Intune 관리 센터에 로그인합니다.
디바이스, 디바이스>>관리, 스크립트 및 수정,>플랫폼 스크립트로 이동하여 macOS 셸 스크립트를 선택합니다.
디바이스 상태 또는 사용자 상태 보고서에서 디바이스를 선택합니다.
로그 수집을 선택하고 경로 사이에 공백이나 줄 바꿈 없이 세미콜론(;)으로만 구분된 로그 파일의 폴더 경로를 제공합니다.
예를 들어 여러 경로를 로 작성해야 합니다./Path/to/logfile1.zip;/Path/to/logfile2.log중요
여러 로그 파일 경로를 쉼표, 마침표, 줄 바꿈 또는 공백 포함 없이 따옴표로 구분하면 로그 수집 오류가 발생합니다. 또한 공백은 경로 사이의 구분 기호로 사용할 수 없습니다.
확인을 선택합니다. 로그는 다음에 디바이스의 Intune 관리 에이전트가 Intune에 체크 인할 때 수집됩니다. 이 검사는 일반적으로 8시간마다 이루어집니다.
참고
- 수집된 로그는 장치에서 암호화되어 전송되어 30일 동안 Microsoft Azure Storage에 저장됩니다. 저장된 로그는 요청 시 해독되고 Microsoft Intune 관리 센터를 사용하여 다운로드됩니다.
- 관리자가 지정한 로그 외에도 Intune 관리 에이전트 로그도 다음 폴더에서 수집됩니다.
/Library/Logs/Microsoft/Intune~/Library/Logs/Microsoft/Intune에이전트 로그 파일 이름은IntuneMDMDaemon date--time.log및IntuneMDMAgent 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 장치에 대한 사용자 지정 특성 만들기 및 할당
Microsoft Intune 관리 센터에 로그인합니다.
플랫폼>별 장치> 선택macOS>장치> 구성macOS>에 대한 사용자 지정 특성추가.
기본에서 다음 속성을 입력하고 다음을 선택합니다.
- 이름: 스크립트 이름을 입력합니다.
- 설명: 스크립트에 대한 설명을 입력합니다. 이 설정은 선택 사항이지만 권장됩니다.
특성 설정에서 다음 속성을 입력하고 다음을 선택합니다.
- 특성의 데이터 형식: 스크립트가 반환하는 결과의 데이터 형식을 선택합니다. 사용 가능한 값은 문자열, 정수 및 날짜입니다.
- 스크립트: 스크립트 파일을 선택합니다.
추가 세부 정보:
- 셸 스크립트는 보고할 특성을 에코해야 하며 출력의 데이터 형식은 사용자 지정 특성 프로필에 있는 특성의 데이터 유형과 일치해야 합니다.
- 셸 스크립트에서 반환된 결과는 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-zoneISO-8601 호환 날짜를 UTC 시간으로 인쇄하려면 다음을 수행합니다.
#!/bin/sh var=$(date -u +"%Y-%m-%dT%H:%M:%SZ") echo $var # Prints an ISO-8601 compliant date in UTC time과제에서 포함할 그룹 선택을 클릭합니다. 기존 Microsoft Entra 그룹 목록을 포함할 그룹 선택을 선택하면 표시됩니다. 스크립트를 받을 하나 이상의 사용자 또는 장치 그룹을 선택합니다. 선택을 선택합니다. 선택한 그룹이 목록에 표시되고 스크립트 정책을 받게 됩니다. 또는 할당 대상 옆에 있는 드롭다운 상자에서 이러한 옵션 중 하나를 선택하여 모든 사용자, 모든 장치 또는 모든 사용자 및 모든 장치를 선택하도록 선택할 수 있습니다.
참고
- 사용자 그룹에 할당된 스크립트는 Mac에 로그인하는 모든 사용자에게 적용됩니다.
검토 + 추가에 구성한 설정의 요약이 표시됩니다. 추가를 선택하여 스크립트를 저장합니다. 추가를 선택하면 선택한 그룹에 스크립트 정책이 배포됩니다.
이제 만든 스크립트가 사용자 지정 특성 목록에 나타납니다. 필요한 경우 사용자 지정 특성을 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 실리콘 Mac에 Rosetta 2를 자동으로 설치하려면 Intune에서 셸 스크립트를 배포할 수 있습니다. 샘플 스크립트를 보려면 Rosetta 2 설치 스크립트를 참조하세요.