참고
이 기능은 Intune 추가 기능으로 사용할 수 있습니다. 자세한 내용은 Intune Suite 추가 기능 사용을 참조하세요.
Microsoft Intune 고급 분석 organization 최종 사용자 환경을 포괄적으로 표시하고 데이터 기반 인사이트를 사용하여 최적화합니다. Intune 고급 분석 사용하면 organization 엔드포인트 문제를 사전에 검색 및 resolve 문제 해결 프로세스를 간소화하고 사용자의 기술 환경을 개선할 수 있습니다. 자세한 내용은 고급 분석 개요를 참조하세요. 고급 분석 기능 사용을 시작하려면 필수 구성 요소를 충족하는지 확인합니다.
여러 디바이스에 대한 디바이스 쿼리를 사용하면 Kusto 쿼리 언어(KQL)를 사용하여 디바이스에 대해 수집된 인벤토리 데이터를 쿼리하는 전체 디바이스에 대한 포괄적인 인사이트를 얻을 수 있습니다. 여러 디바이스에 대한 디바이스 쿼리는 Intune 데이터 플랫폼 스키마에 지정된 모든 디바이스를 지원합니다. 여기에는 회사 Android Enterprise, Apple iOS/iPadOS, macOS 및 속성 카탈로그 정책이 배포된 Windows 디바이스가 포함됩니다.
필수 조건
참고
Android 및 Apple 디바이스에 대한 속성 카탈로그 정책을 만들 필요가 없습니다. 디바이스 속성은 자동으로 수집됩니다.
테넌트에서 디바이스 쿼리를 사용하려면 Microsoft Intune 고급 분석 포함하는 라이선스가 있어야 합니다. 고급 분석 기능은 다음과 같습니다.
- Intune 고급 분석 추가 기능
- Microsoft Intune Suite
사용자가 디바이스 쿼리를 사용하려면 관리 디바이스 > 쿼리 및 조직 > 읽기 권한을 할당해야 합니다.
디바이스는 Intune 관리 및 회사 소유여야 합니다.
여러 디바이스에 대한 디바이스 쿼리는 할당된 속성 카탈로그 프로필에서 디바이스 인벤토리 데이터를 이미 수집하고 있는 디바이스에서만 작동합니다.
지원되는 플랫폼
여러 디바이스에 대한 디바이스 쿼리는 다음을 실행하는 디바이스에서 지원됩니다.
- Windows 10 이상
- Android
- Android Enterprise 회사 소유 전용 디바이스(COSU)
- Android Enterprise 회사 소유 완전 관리형(COBO)
- Android Enterprise 회사 소유 회사 프로필(COPE)
- Apple
- iOS/iPadOS
- macOS
여러 디바이스에 디바이스 쿼리를 사용하는 방법
여러 디바이스에 디바이스 쿼리를 사용하려면 디바이스 창으로 이동하여 디바이스 쿼리를 선택합니다. 그런 다음 지원되는 속성 및 지원되는 연산자를 사용하여 쿼리 상자에 쿼리를 입력하고 실행을 선택하여 쿼리를 실행합니다. 결과는 결과 탭 영역에 표시됩니다. 쿼리의 일부만 실행하려는 경우 또는 쿼리 창에 쿼리가 여러 개 있고 하나만 실행하려는 경우 실행할 쿼리를 강조 표시하고 실행을 선택할 수 있습니다. 해당 쿼리만 실행됩니다.
왼쪽의 보기를 확장하여 쿼리할 수 있는 모든 속성을 볼 수 있습니다. 쿼리에 채울 항목을 선택합니다. 왼쪽 및 쿼리 창의 가장자리를 선택하고 끌어 조정을 수행할 수 있습니다.
쿼리를 실행한 후 내보내 기를 선택하여 결과를 .CSV 파일에 저장합니다. 쿼리 결과의 모든 열 또는 선택한 열만 내보낼 수 있습니다. 최대 50,000개 결과를 파일로 내보낼 수 있습니다.
팁
Intune에서 Copilot를 사용하여 자연어 요청을 사용하여 디바이스 쿼리에 대한 KQL 쿼리를 생성할 수 있습니다. 자세한 내용은 디바이스 쿼리에서 Copilot를 사용하여 쿼리로 이동합니다.
Kusto 쿼리 언어 대한 자세한 내용은 Kusto 쿼리 언어 대한 자세한 내용을 참조하세요.
샘플 쿼리
시작하는 데 도움이 되는 몇 가지 샘플 쿼리가 이 섹션에 제공됩니다. 샘플 쿼리에 액세스하려면 시작 페이지 아래의 예제 쿼리 섹션을 확장하고 쿼리 창에 추가할 쿼리를 선택합니다. 다음 섹션에서는 샘플 쿼리 목록을 보여 줍니다.
코어 수별 상위 프로세서
이 쿼리는 코어 수별로 정렬된 상위 5개의 CPU를 나열합니다.
Cpu| project Device, ProcessorId, Model, Architecture, CpuStatus, ProcessorType, CoreCount, LogicalProcessorCount, Manufacturer, AddressWidth| order by CoreCount asc| take 5
보호되지 않은 디스크가 있는 디바이스
이 쿼리는 암호화되지 않은 디스크가 있는 디바이스를 나열합니다.
EncryptableVolume| where ProtectionStatus != "PROTECTED"| join LogicalDrive
Arm64 디바이스
이 쿼리는 ARM64 프로세서가 있는 모든 디바이스를 나열합니다.
Cpu | where Architecture == "ARM64"
프로세서 아키텍처별 디바이스 수
이 쿼리는 CPU 아키텍처별 디바이스 요약을 제공합니다.
Cpu| summarize DeviceCount=count() by Architecture
배터리 용량별 상위 디바이스
이 쿼리는 완전 충전된 배터리 용량을 기준으로 상위 10개 디바이스를 나열합니다.
Battery| project Device, InstanceName, Manufacturer, Model, SerialNumber, CycleCount, DesignedCapacity, FullChargedCapacity, FullChargedCapacityPercent = (FullChargedCapacity*100)/DesignedCapacity| top 10 by FullChargedCapacityPercent asc
디바이스 메모리 정보
이 쿼리는 물리적 메모리와 가상 메모리가 GB인 디바이스를 나열합니다.
MemoryInfo| project Device, PhysicalMemoryGB = PhysicalMemoryTotalBytes/(1000*1000*1000), VirtualMemoryGB = VirtualMemoryTotalBytes/(1000*1000*1000) | order by PhysicalMemoryGB asc
OS 버전별 디바이스 수
이 쿼리는 OS 버전별 디바이스 요약을 제공합니다.
OsVersion| summarize DevicesCount = count() by OsVersion
디바이스 바이오스 정보
이 쿼리는 BIOS 제조업체를 기반으로 하는 디바이스를 나열합니다.
BiosInfo| where Manufacturer contains "Microsoft"
TPM 사용 안 함 디바이스
이 쿼리는 TPM을 사용하지 않도록 설정한 디바이스를 나열합니다.
Tpm | where Enabled != true
지원되는 연산자
디바이스 쿼리는 Kusto 쿼리 언어(KQL)에서 지원되는 연산자의 하위 집합만 지원합니다. 현재 지원되는 연산자는 다음과 같습니다.
테이블 연산자
테이블 연산자를 사용하여 데이터 스트림을 필터링, 요약 및 변환할 수 있습니다. 지원되는 연산자는 다음과 같습니다.
| 테이블 연산자 | 설명 |
|---|---|
count |
레코드 수를 포함하는 단일 레코드가 있는 테이블을 반환합니다. |
distinct |
입력 테이블의 제공된 열의 고유한 조합을 사용하여 테이블을 생성합니다. |
join |
두 테이블의 행을 병합하여 동일한 디바이스에 대한 행을 일치시켜 새 테이블을 형성합니다. , , Leftouter, FullouterRightouter및 내부 조innerunique인 유형만 지원됩니다. 지원되는 조인 형식이 아닌 다른 조인 형식을 입력하면 무시됩니다. Join 문은 또는 Device.Deviceid에 조인된 Device 경우 구문을 지원 on 합니다. 조인에 대한 일반적인 구문은 LeftEntity | 조건에 [힌트](RightEntity)를 조인합니다. 자세한 내용은 참가 설명서를 참조하세요. |
order by |
하나 이상의 열을 기준으로 입력 테이블의 행을 순서대로 정렬합니다. |
project |
포함할 열을 선택하고 이름을 바꾸거나 삭제하고 새 계산된 열을 삽입합니다. |
take |
지정된 수의 행까지 반환합니다. |
top |
지정된 열을 기준으로 정렬된 첫 번째 N 레코드를 반환합니다. |
where |
조건자를 충족하는 행의 하위 집합으로 표를 필터링합니다. |
summarize |
는 입력 테이블의 내용을 집계하는 테이블을 생성합니다. |
스칼라 연산자
스칼라 연산자를 사용하여 개별 값에 대한 작업을 수행할 수 있습니다. 지원되는 연산자는 다음과 같습니다.
| 연산자 | 설명 | 예제 |
|---|---|---|
== |
같다 |
1 == 1, 'aBc' == 'AbC' |
!= |
같지 않음 |
1 != 2, 'abc' != 'abcd' |
< |
덜 |
1 < 2, 'abc' < 'DEF' |
> |
큰 |
2 > 1, 'xyz' > 'XYZ' |
<= |
작거나 같음 |
1 <= 2, 'abc' <= 'abc' |
>= |
크거나 같음 |
2 >= 1, 'abc' >= 'ABC' |
+ |
추가 |
2 + 1, now() + 1d |
- |
빼다 |
2 - 1, now() - 1h |
* |
곱하다 | 2 * 2 |
/ |
나누다 | 2 / 1 |
% |
모듈로 | 2 % 1 |
like |
LHS에는 RHS에 대한 일치 항목이 포함되어 있습니다. | 'abc' like '%B%' |
contains |
RHS는 LHS의 하위 시퀀스로 발생합니다. | 'abc' contains 'b' |
!contains |
RHS는 LHS에서 발생하지 않습니다. | 'team' !contains 'i' |
startswith |
RHS는 LHS의 초기 하위 시퀀스입니다. | 'team' startswith 'tea' |
!startswith |
RHS는 LHS의 초기 하위 시퀀스가 아닙니다. | 'abc' !startswith 'bc' |
endswith |
RHS는 LHS의 종결 하위 시퀀스입니다. | 'abc' endswith 'bc' |
!endswith |
RHS는 LHS의 종결 하위 시퀀스가 아닙니다. | 'abc' !endswith 'a' |
and |
TRUE이면 이고 RHS 및 LHS가 true인 경우에만 | (1 == 1) and (2 == 2) |
or |
TRUE이면 이고 RHS 또는 LHS가 true인 경우에만 | (1 == 1) or (1 == 2) |
집계 함수
집계 함수를 사용하여 데이터를 요약할 수 있습니다. 지원되는 함수는 다음과 같습니다.
| 함수 | 설명 |
|---|---|
avg() |
그룹 전체의 값 평균을 반환합니다. |
count() |
요약 그룹당 레코드 수를 반환합니다. |
countif() |
조건자가 true로 평가되는 행 수를 반환합니다. |
dcount() |
그룹의 고유 값 수를 반환합니다. |
max() |
그룹 전체의 최대값을 반환합니다. |
maxif() |
조건자가 true로 평가되는 그룹 전체의 최대값을 반환합니다. |
min() |
그룹 전체의 최소값을 반환합니다. |
minif() |
조건자가 true로 평가되는 그룹 전체의 최소값을 반환합니다. |
percentile() |
Expr에서 정의한 모집단의 지정된 가장 가까운 순위 백분위수에 대한 예상값을 반환합니다. |
sum() |
그룹 전체의 값 합계를 반환합니다. |
sumif() |
조건자가 true로 평가되는 Expr의 합계를 반환합니다. |
스칼라 함수
스칼라 함수를 사용하여 개별 값에 대한 작업을 수행할 수 있습니다. 지원되는 함수는 다음과 같습니다.
| 함수 | 설명 |
|---|---|
ago() |
현재 UTC 클록 시간에서 지정된 시간 범위를 뺍니다. |
bin() |
값을 지정된 bin 크기의 datetime 배수로 반올림합니다. |
case() |
조건자 목록을 평가하고 조건자가 충족되는 첫 번째 결과 식을 반환합니다. |
datetime_add() |
지정된 datetime에 추가된 지정된 크기를 곱한 지정된 datepart의 새 datetime을 계산합니다. amount 매개 변수에 대한 음수 값은 지원되지 않습니다. |
datetime_diff() |
두 날짜/시간 값의 차이를 계산합니다. |
iif() |
첫 번째 인수를 계산하고 조건자가 true(두 번째) 또는 false(세 번째)로 평가되었는지 여부에 따라 두 번째 또는 세 번째 인수의 값을 반환합니다. |
indexof() |
입력 문자열 내에서 지정된 문자열이 처음 나타나는 인덱스(0부터 시작)를 보고합니다. |
isnotnull() |
유일한 인수를 평가하고 인수가 null이 아닌 값으로 계산되는지 여부를 나타내는 부울 값을 반환합니다. |
isnull() |
유일한 인수를 평가하고 인수가 null 값으로 평가되는지 여부를 나타내는 부울 값을 반환합니다. |
now() |
현재 UTC 클록 시간을 반환합니다. |
strcat() |
1~64개 인수를 연결합니다. |
strlen() |
입력 문자열의 길이(문자)를 반환합니다. |
substring() |
일부 인덱스에서 문자열의 끝으로 시작하는 원본 문자열에서 부분 문자열을 추출합니다. |
tostring() |
입력을 문자열 표현으로 변환합니다. |
지원되는 속성
디바이스 쿼리는 다음 엔터티를 지원합니다. 각 엔터티에 대해 지원되는 속성에 대한 자세한 내용은 Intune 데이터 플랫폼 스키마를 참조하세요.
- Apple 자동 설정 관리 계정
- Apple 디바이스 상태
- Apple 업데이트 설정
- 배터리
- Bios 정보
- Bluetooth
- 세포의
- CPU
- 디바이스 스토리지
- 디스크 드라이브
- 암호화 가능한 볼륨
- 논리 드라이브
- 메모리 정보
- 네트워크 어댑터
- Os 버전
- 공유 iPad
- Sim 정보
- 시스템 엔클로저
- 시간
- Tpm
- 비디오 컨트롤러
- Windows Qfe
디바이스 엔터티
여러 디바이스에 대한 디바이스 쿼리는 연결된 엔터티를 지원합니다. 디바이스 엔터티는 지원되는 다른 모든 엔터티와 함께 사용할 수 있습니다. 디바이스 엔터티는 다음 속성을 지원합니다.
| 속성 | 유형 | 설명 |
|---|---|---|
| DeviceId | String | 디바이스 등록의 일부로 Intune에서 생성된 고유 ID입니다. |
| EntraDeviceId | String | Microsoft Entra 등록 또는 조인의 일부로 Microsoft Entra 생성된 고유 ID입니다. |
| ManagementName | String | Intune 관리 센터에서만 사용되는 쉽게 인식할 수 있는 디바이스 이름입니다. 이 이름을 변경해도 회사 포털 디바이스 이름이나 이름이 변경되지 않습니다. |
| 장치 이름 | String | 디바이스 이름 |
| SerialNumber | String | 디바이스의 일련 번호 |
| 제조업체 | String | 디바이스 제조업체 |
| 모델 | String | 디바이스의 모델 |
| OSDescription | String | 운영 체제 버전에 대한 전체 설명 |
| OSVersion | String | 디바이스의 운영 체제 버전 |
| EnrollmentProfileName | String | 디바이스에 할당된 등록 프로필의 이름입니다. 기본값은 디바이스에 등록 프로필이 할당되지 않았음을 나타내는 빈 문자열입니다. |
| EnrolledDateTime | 날짜/시간 | Intune에서 디바이스를 등록한 날짜 및 시간입니다. |
| CertExpirationDateTime | 날짜/시간 | 디바이스 관리 인증서 만료 날짜를 보고합니다. |
| EnrolledByUserId | String | 디바이스를 등록한 사용자의 고유 식별자 |
| PrimaryUserId | String | 디바이스와 연결된 사용자의 고유 식별자입니다. |
| LastLoggedOnUserId | String | 디바이스에 마지막으로 로그온한 사용자의 고유 식별자입니다. |
| InCompliancePeriodUntilDateTime | 날짜/시간 | 디바이스 준수 유예 기간이 만료되는 DateTime |
| DeviceCategoryId | String | 디바이스 범주 표시 이름입니다. 기본값은 빈 문자열입니다. |
| LastSeenDateTime | String | Intune에 디바이스를 마지막으로 연결한 날짜 및 시간입니다. |
| 소유권 | String | 디바이스의 소유권입니다. |
디바이스 엔터티를 사용하면 별도의 쿼리를 작성하여 함께 조인할 필요 없이 결과 행과 연결된 디바이스를 참조할 수 있습니다. 기본적으로 쿼리 결과에 디바이스 정보를 포함하는 자동 조인 역할을 합니다.
디바이스 엔터티는 쉽게 사용할 수 있도록 다른 모든 엔터티에 자동으로 조인됩니다. 쿼리가 , summarize또는 distinct와 같은 연산자를 사용하여 반환 형식을 업데이트하지 않는 한 디바이스 엔터티는 결과를 쿼리하는 첫 번째 열입니다project.
쿼리에서 디바이스 자체를 사용하여 를 로 구문 분석합니다 Device.DeviceId. 기본적으로 반환되는 디바이스 열에서 DeviceId는 디바이스를 보다 쉽게 식별할 수 있도록 DeviceName으로 변환됩니다.
디바이스 엔터티 및 해당 속성은 디바이스를 참조하여 쿼리에서 참조할 수도 있습니다. [Insert 속성].
다음 쿼리는 일련 번호가 123인 모든 디바이스에 대한 모든 DiskDrive 정보를 반환합니다.
DiskDrive
where Device.SerialNumber = 123
다음 쿼리는 엔터티 DiskDrive의 디바이스 ID 및 제조업체 속성을 프로젝트합니다.
DiskDrive | project Device.DeviceId, Manufacturer
기본적으로 첫 번째 열로 표시되는 디바이스 엔터티는 Device.DeviceId로 구문 분석되는 쿼리에서 디바이스 자체를 사용하여 디바이스 이름으로 표시되지만 이 쿼리는 DeviceName이 아닌 DeviceID에서 정렬한 결과를 반환합니다.
MemoryInfo | order by Device
마찬가지로 이 쿼리는 디바이스 ID가 Desktop123이 아니면 결과를 반환하지 않습니다. 디바이스 이름에 대해 쿼리하지 않습니다.
Cpu | where Device == "Desktop123"
다음 예제를 사용하여 디바이스 이름을 쿼리합니다.
Cpu | where Device.DeviceName == 'Desktop123"
알려진 제한
집계 함수에서 디바이스 엔터티를 사용하면 빨간색 밑줄이 표시됩니다. 그러나 쿼리는 계속 실행할 수 있으며 예상대로 결과를 반환할 수 있습니다. 예를 들어 다음 쿼리는 디바이스 아래에 빨간색 밑줄을 표시하지만 여전히 실행됩니다.
Cpu | summarize max(Device) by Manufacturer.조인 연산자, $left 및 $right 매개 변수를 사용하는 쿼리는 $left 및 $right 아래에 빨간색 밑줄을 표시합니다. 그러나 쿼리를 계속 실행하고 예상대로 결과를 반환할 수 있습니다.
단일 쿼리에는 최대 3개의 조인 연산자가 포함될 수 있습니다. 조인이 더 많은 쿼리는 실패합니다.
쿼리에 대해 최대 50,000개 레코드가 반환됩니다.
분당 최대 10개의 쿼리를 제출할 수 있습니다. 동일한 분 내의 다른 쿼리는 실패합니다.
매월 최대 1,000개의 쿼리를 제출할 수 있습니다.
datetime_add() 함수의 amounts 매개 변수에 대한 음수 값은 지원되지 않습니다.
집계 함수로 요약된 변수를 참조하면 오류가 발생합니다. 변수의 이름을 명시적으로 지정하면 쿼리가 다시 성공할 수 있습니다. 예를 들어 디바이스 쿼리 | summarize dcount(DeviceId) | dcount_DeviceId 순서가 실패합니다. 디바이스 | summarize DCountDeviceIdRename=dcount(DeviceId) | DCountDeviceIdRename의 순서가 성공합니다.