Microsoft Intune 준수에 대한 사용자 지정 설정을 사용하려면 먼저 장치에서 사용자 지정 준수 설정을 검색하는 스크립트를 만들어야 합니다. 사용하는 스크립트는 플랫폼에 따라 다릅니다.
- Windows 장치는 PowerShell 스크립트를 사용합니다.
- Linux 장치는 해당 인터프리터가 장치에 설치되고 구성되어 있는 한 모든 언어로 스크립트를 실행할 수 있습니다.
검색 스크립트는 사용자 지정 규정 준수 정책의 일부로 장치에 배포됩니다. 규정 준수가 장치에서 실행되면 스크립트는 규정 준수 정책을 만들 때 제공하는 JSON 파일에 정의된 설정을 검색합니다.
모든 검색 스크립트:
- 규정 준수 정책을 만들기 전에 Intune에 추가해야 합니다. 스크립트를 추가한 후에는 사용자 지정 설정을 사용하여 규정 준수 정책을 만들 때 선택할 수 있습니다.
- 각 검색 스크립트는 하나의 준수 정책에만 사용할 수 있으며 각 준수 정책에는 하나의 검색 스크립트만 포함될 수 있습니다.
- 정책에서 스크립트의 할당을 취소할 때까지 규정 준수 정책에 할당된 검색 스크립트를 삭제할 수 없습니다.
- 준수 정책을 수신하는 장치에서 실행합니다. 스크립트는 사용자 지정 규정 준수 정책을 만들 때 업로드하는 JSON 파일의 조건을 평가합니다.
- JSON에 정의된 대로 하나 이상의 설정을 식별하고 해당 설정에 대해 검색된 값 목록을 반환합니다.
또한 Windows용 PowerShell 스크립트:
결과물을 한 줄로 출력하려면 압축해야 합니다. 예를 들어 다음 스크립트는 마지막 줄을 포함
return $hash | ConvertTo-Json -Compress해야 합니다.$hash = @{ Manufacturer = $WMI_ComputerSystem.Manufacturer; BiosVersion = $WMI_BIOS.SMBIOSBIOSVersion; TPMChipPresent = $TPM.TPMPresent} return $hash | ConvertTo-Json -Compress
제한
규정 준수 데이터를 Intune에 성공적으로 반환하려면 스크립트가 다음 제한 내에서 유지되어야 합니다.
- 스크립트는 각각 1MB를 넘지 않아야 합니다.
- 각 스크립트에서 생성된 출력은 1MB 이상일 수 없습니다.
- 스크립트의 런타임은 제한되어 있어야 합니다.
- Linux에서 스크립트를 실행하는 데 5분 이하가 소요됩니다.
- Windows에서 스크립트를 실행하는 데 10분 이내에 소요되어야 합니다.
Windows용 샘플 검색 스크립트
다음 예제는 Windows 장치에 사용할 수 있는 샘플 PowerShell 스크립트입니다.
$WMI_ComputerSystem = Get-WMIObject -class Win32_ComputerSystem
$WMI_BIOS = Get-WMIObject -class Win32_BIOS
$TPM = Get-Tpm
$hash = @{ Manufacturer = $WMI_ComputerSystem.Manufacturer; BiosVersion = $WMI_BIOS.SMBIOSBIOSVersion; TPMChipPresent = $TPM.TPMPresent}
return $hash | ConvertTo-Json -Compress
다음 예제에서는 Windows용 샘플 스크립트의 출력을 보여 줍니다.
{"BiosVersion":"1.24","Manufacturer":"Microsoft Corporation","TPMChipPresent":true}
Linux용 샘플 검색 스크립트
참고
Linux에서 검색 스크립트는 사용자의 컨텍스트에서 실행됩니다. 권한 상승이 필요한 시스템 수준 설정을 검사할 수 없습니다. 이 제한의 예는 파일의 경우 state/hash 입니다./etc/sudoers
Linux용 검색 스크립트는 요구 사항을 충족하는 모든 인터프리터를 호출할 수 있습니다. 스크립트를 배포하기 전에 선택한 인터프리터가 대상 디바이스에 올바르게 설치 및 구성되었는지 확인합니다. 스크립트의 인터프리터를 지정하려면 스크립트 맨 위에 인터프리터 이진 파일의 경로를 나타내는 셰뱅 줄을 포함합니다.
예를 들어 스크립트에서 Bash 셸을 인터프리터로 사용해야 하는 경우 스크립트 맨 위에 다음 줄을 추가합니다.
#!/bin/bash
Python을 사용하려면 인터프리터 경로를 지정합니다. 예를 들어, 스크립트 #!/usr/bin/python3 상단에 다음 줄을 추가합니다. 또는 #!/usr/bin/env python3
팁
중단 또는 취소 신호를 처리하려면 스크립트에서 정상적 종료 메커니즘을 구현합니다. 스크립트가 이러한 신호를 처리하면 정리 작업을 수행하고 정상적으로 종료하여 리소스가 올바르게 해제되도록 할 수 있습니다. 예를 들어 SIGINT(인터럽트 신호) 또는 SIGTERM(종료 신호)과 같은 신호를 포착하고 수신 시 실행할 사용자 지정 작업을 정의합니다. 이러한 작업에는 열려 있는 파일 닫기, 획득한 잠금 해제 또는 임시 리소스 정리가 포함될 수 있습니다.
자세한 내용은 Intune Linux 사용자 지정 규정 준수 샘플 가이드를 참조하세요.
Intune에 검색 스크립트 추가
스크립트를 프로덕션에 배포하기 전에 격리된 환경에서 테스트하여 사용하는 구문이 예상대로 작동하는지 확인합니다.
참고
스크립트 업로드 워크플로는 scope 태그를 지원하지 않습니다. 사용자 지정 규정 준수 검색 스크립트를 만들거나 편집하거나 보려면 기본 scope 태그가 할당되어 있어야 합니다.
Microsoft Intune 관리 센터에 로그인하고 엔드포인트 보안> 장치준수> 스크립트추가로 이동합니다.> 그런 다음 플랫폼을 선택합니다.
기본에서 스크립트에 대한 설명이 포함된 이름을 입력합니다.
설정에서 검색 스크립트에 스크립트를 추가합니다. 스크립트를 신중하게 검토합니다. Intune에서는 스크립트에 구문 또는 프로그래밍 오류가 있는지 검사하지 않습니다.
Windows만 해당 - 설정에서 PowerShell 스크립트에 대해 다음 동작을 구성합니다.
- 로그온한 자격 증명을 사용하여 이 스크립트 실행 – 기본적으로 스크립트는 장치의 시스템 컨텍스트에서 실행됩니다. 로그온한 사용자의 컨텍스트에서 실행되도록 하려면 이 값을 예 로 설정합니다. 사용자가 로그인하지 않은 경우 스크립트는 기본적으로 시스템 컨텍스트로 돌아갑니다.
- 스크립트 서명 검사 적용 – 자세한 내용은 PowerShell 설명서의 about_Signing 내용을 참조하세요.
- 64비트 PowerShell 호스트에서 스크립트 실행 – 기본적으로 스크립트는 32비트 PowerShell 호스트를 사용하여 실행됩니다. 스크립트가 대신 64비트 호스트를 사용하여 실행되도록 하려면 이 값을 예 로 설정합니다.
스크립트 생성 프로세스를 완료합니다. 스크립트는 스크립트 창에 나타나며 준수 정책을 구성할 때 선택할 수 있습니다.