Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Użyj zapytania dotyczącego urządzeń dla wielu urządzeń w Microsoft Intune, aby uruchamiać zapytania język zapytań Kusto (KQL) w ramach danych dotyczących spisu urządzeń i identyfikować trendy w zarządzanej flocie. W tym artykule wyjaśniono wymagania wstępne, sposób tworzenia i uruchamiania zapytań w centrum administracyjnym usługi Intune, sposób pracy z wynikami oraz obsługiwane operatory, funkcje i właściwości.
Przed rozpoczęciem
- Upewnij się, że środowisko spełnia wszystkie wymagania wstępne.
Dodatkowe wymagania wstępne dotyczące zapytania urządzenia dla wielu urządzeń:
Wymagania dotyczące platformy urządzenia
Zapytanie urządzenia dla wielu urządzeń obsługuje:
- System Windows
- Android
- Dedykowane urządzenia firmowe z systemem Android Enterprise (COSU)
- W pełni zarządzane firmowe urządzenie z systemem Android Enterprise (COBO)
- Należący do firmy profil służbowy systemu Android Enterprise (COPE)
- Jabłko
- iOS/iPadOS
- macOS
Wymagania dotyczące konfiguracji urządzenia
Zapytanie urządzenia dla wielu urządzeń obsługuje urządzenia, które są:
- Zarządzane przez usługę Intune i oznaczone jako należące do firmy.
- Urządzenia z systemem Windows muszą mieć wdrożone zasady wykazu właściwości w celu zbierania danych zapasów.
W przypadku systemów iOS/iPadOS, Android i macOS dane są zbierane automatycznie i nie trzeba wdrażać oddzielnych zasad wykazu właściwości.
Wymagania dotyczące ról
Aby używać funkcji Device Query dla wielu urządzeń, użyj konta z co najmniej jedną z następujących ról:
- Operator pomocy technicznej
- Rola niestandardowa , która obejmuje:
- Uprawnienie Zarządzane urządzenia/zapytanie
- Uprawnienia, które zapewniają wgląd i dostęp do zarządzanych urządzeń w usłudze Intune (na przykład organizacja/odczyt, urządzenia zarządzane/odczyt)
Korzystanie z trybu zapytania dla wielu urządzeń
- In the Microsoft Intune admin center, select Devices>Device query.
- Wprowadź zapytanie w polu zapytania, używając obsługiwanych właściwości i operatorów.
- Wybierz pozycję Uruchom, aby wykonać zapytanie.
- Wyświetl wyniki na karcie Wyniki .
- Aby uruchomić część zapytania lub pojedyncze zapytanie, gdy istnieje wiele zapytań, wyróżnij zapytanie, które chcesz uruchomić, i wybierz pozycję Uruchom. Zostanie uruchomione tylko podświetlone zapytanie.
Możesz rozwinąć widok po lewej stronie, aby wyświetlić wszystkie dostępne właściwości, które możesz zakwestionować. Wybierz właściwość, aby wstawić ją do zapytania. Aby dostosować układ, możesz również zmienić rozmiar lewego okienka i okna zapytania.
Aby uzyskać więcej informacji na temat języka zapytań Kusto (KQL), zobacz Dowiedz się więcej o języku zapytań Kusto.
Porada
Używanie usługi Copilot w usłudze Intune do generowania zapytań KQL dla zapytań dotyczących urządzeń przy użyciu żądań w języku naturalnym. Aby dowiedzieć się więcej, zobacz Zapytanie za pomocą funkcji Copilot w artykule Zapytanie dotyczące urządzeń.
Wyniki i akcje kwerendy
Po uruchomieniu zapytania wyniki są wyświetlane na karcie Wyniki . Z wynikami możesz pracować na kilka sposobów:
- Jeśli kwerenda zwróci nie więcej niż 50 elementów, można przeszukać wszystkie wiersze wyników i zastosować filtry przy użyciu nagłówków kolumn.
- Grupy zabezpieczeń usługi Microsoft Entra można tworzyć bezpośrednio z wyników zapytania, wybierając pozycję Dodaj wszystkie elementy do grupy. Ta akcja ułatwia kierowanie określonych urządzeń za pomocą zasad dostępu warunkowego usługi Microsoft Entra lub zasad usługi Microsoft Intune.
- Wybierz pozycję Eksportuj , aby zapisać wyniki w pliku .csv. Można wyeksportować wszystkie kolumny lub tylko wybrane kolumny. Do pliku można wyeksportować maksymalnie 50 000 wyników.
Przykładowe zapytania
Aby ułatwić rozpoczęcie pracy, w tej sekcji przedstawiono kilka przykładowych zapytań. Aby uzyskać dostęp do przykładowych zapytań, rozwiń sekcję przykładowych zapytań na stronie Wprowadzenie i wybierz zapytanie, które chcesz dodać do okna zapytania. W poniższej sekcji przedstawiono listę przykładowych zapytań.
Najlepsze procesory według liczby rdzeni
To zapytanie pokazuje pięć pierwszych procesorów według liczby rdzeni.
Cpu
| project Device, ProcessorId, Model, Architecture, CpuStatus, ProcessorType, CoreCount, LogicalProcessorCount, Manufacturer, AddressWidth
| order by CoreCount asc
| take 5
Urządzenia z niechronionymi dyskami
To zapytanie wyświetla listę urządzeń z niezaszyfrowanymi dyskami.
EncryptableVolume
| where ProtectionStatus != "PROTECTED"
| join LogicalDrive on Device
Urządzenia ARM64
To zapytanie wyświetla listę wszystkich urządzeń z procesorem ARM64.
Cpu
| where Architecture == "ARM64"
Liczba urządzeń według architektury procesora
To zapytanie udostępnia podsumowanie urządzeń według architektury procesora.
Cpu
| summarize DeviceCount = count() by Architecture
Najpopularniejsze urządzenia według pojemności baterii
To zapytanie wyświetla listę 10 urządzeń o najwyższej pojemności według pojemności w pełni naładowanej baterii.
Battery
| project Device, InstanceName, Manufacturer, Model, SerialNumber, CycleCount,
DesignedCapacity,
FullChargedCapacity,
FullChargedCapacityPercent = (FullChargedCapacity * 100) / DesignedCapacity
| top 10 by FullChargedCapacityPercent asc
Informacje o pamięci urządzeń
To zapytanie wyświetla listę urządzeń z pamięcią fizyczną i wirtualną w GB.
MemoryInfo
| project Device,
PhysicalMemoryGB = PhysicalMemoryTotalBytes/(1000*1000*1000),
VirtualMemoryGB = VirtualMemoryTotalBytes/(1000*1000*1000)
| order by PhysicalMemoryGB asc
Liczba urządzeń według wersji systemu operacyjnego
To zapytanie zapewnia podsumowanie urządzeń według wersji systemu operacyjnego.
OsVersion| summarize DevicesCount = count() by OsVersion
Informacje o systemie BIOS urządzenia
To zapytanie wyświetla listę urządzeń na podstawie producenta BIOS-u.
BiosInfo| where Manufacturer contains "Microsoft"
Wyłączony moduł TPM
To zapytanie wyświetla listę urządzeń z wyłączonym modułem TPM.
Tpm | where Enabled != true
Obsługiwane operatory
Zapytanie urządzenia obsługuje tylko podzestaw operatorów obsługiwanych w języku zapytań Kusto (KQL). Obecnie obsługiwane są następujące operatory:
Operatory tabel
Za pomocą operatorów tabel można filtrować, podsumowywać i przekształcać strumienie danych. Obsługiwane są następujące operatory:
| Operator tabeli | Opis |
|---|---|
count |
Zwraca tabelę z jednym rekordem zawierającym liczbę rekordów. |
distinct |
Tworzy tabelę z różnymi kombinacjami podanych kolumn z tabeli wejściowej. |
join |
Scala wiersze z dwóch tabel w celu utworzenia nowej tabeli opartej na zgodnych wartościach w określonych kolumnach. Obsługiwane są następujące typy sprzężeń: - innerunique (domyślnie)- inner- leftouter- rightouter- fullouter- leftsemi- rightsemi- leftanti- rightantiInstrukcje join obsługują opcjonalną on klauzulę. W scenariuszach zapytań dotyczących urządzeń zwykle używa on Device się sprzężenia tabel zawierających Device jednostkę. Typowa składnia tego argumentu join to: LeftTable | join [hints] (RightTable) on Conditions.Ważne: Sprzężenia, które używają on Device.DeviceID , nie są już obsługiwane. Zapytania, które obecnie określają on Device.DeviceId , powinny zostać przełączone na using on Devicelub pominąć klauzulę on podczas sprzężenia Device w jednostce.Aby uzyskać więcej informacji, zobacz Operator sprzężenia. |
order by |
Sortuje wiersze tabeli wejściowej według jednej lub wielu kolumn. |
project |
Zaznacza kolumny, które mają zostać uwzględnione, usunięte lub mają zostać usunięte lub mają zostać zmienione, a także wstawia nowe kolumny obliczane. |
take |
Zwraca do określonej liczby wierszy. |
top |
Zwraca pierwsze N rekordów posortowanych według określonych kolumn. |
where |
Filtruje tabelę do podzbioru wierszy spełniających orzeczenie. |
summarize |
Tworzy tabelę, która agreguje zawartość tabeli wejściowej. |
Uwaga
Device jest typem jednostki i nie może być używany bezpośrednio w operatorach, które wymagają wartości skalarnych (takich jak distinct, summarizei order by). W przypadku tych operatorów użyj określonej właściwości skalarnej urządzenia (na przykład Device.SerialNumber lub Device.OSVersion).
Operatory skalarne
Operatory skalarne mogą służyć do wykonywania operacji na poszczególnych wartościach. Obsługiwane są następujące operatory:
| Liczba operatorów | Opis | Przykład |
|---|---|---|
== |
Równe |
1 == 1, 'aBc' == 'AbC' |
!= |
Różne |
1 != 2, 'abc' != 'abcd' |
< |
Mniej |
1 < 2, 'abc' < 'DEF' |
> |
Większy |
2 > 1, 'xyz' > 'XYZ' |
<= |
Mniejsze lub równe |
1 <= 2, 'abc' <= 'abc' |
>= |
Większa lub równa |
2 >= 1, 'abc' >= 'ABC' |
+ |
Dodać |
2 + 1, now() + 1d |
- |
Odejmowanie |
2 - 1, now() - 1h |
* |
Mnożenie | 2 * 2 |
/ |
Podziel | 2 / 1 |
% |
Modulo (Modulo) | 2 % 1 |
like |
LHS zawiera dopasowanie dla RHS | 'abc' like '%B%' |
contains |
RHS występuje jako podsekwencja LHS | 'abc' contains 'b' |
!contains |
RHS nie występuje w LHS | 'team' !contains 'i' |
startswith |
RHS jest początkową podsekwencją LHS | 'team' startswith 'tea' |
!startswith |
RHS nie jest początkową podsekwencją LHS | 'abc' !startswith 'bc' |
endswith |
RHS jest podszeregiem zamykającym LHS | 'abc' endswith 'bc' |
!endswith |
RHS nie jest podsekwencją zamykającą LHS | 'abc' !endswith 'a' |
and |
True wtedy i tylko wtedy, gdy RHS i LHS mają wartość true | (1 == 1) and (2 == 2) |
or |
Prawda wtedy i tylko wtedy, gdy wartość RHS lub LHS ma wartość | (1 == 1) or (1 == 2) |
Funkcje agregacji
Do podsumowywania danych można używać funkcji agregacji. Obsługiwane są następujące funkcje:
| Funkcja | Opis |
|---|---|
avg() |
Zwraca średnią wartości w grupie. |
count() |
Zwraca liczbę rekordów na grupę podsumowania. |
countif() |
Zwraca liczbę wierszy, dla których predykat ma wartość true |
dcount() |
Zwraca liczbę różnych wartości w grupie. |
max() |
Zwraca wartość maksymalną w grupie. |
maxif() |
Zwraca maksymalną wartość w grupie, dla której predykat ma wartość true |
min() |
Zwraca minimalną wartość w całej grupie. |
minif() |
Zwraca minimalną wartość w grupie, dla której predykat ma wartość prawda. |
percentile() |
Zwraca szacowaną wartość percentylu najbliższej rangi populacji zdefiniowanej przez wyr. |
sum() |
Zwraca sumę wartości w grupie. |
sumif() |
Zwraca sumę wyrów, dla której predykat ma wartość true |
Funkcje skalarne
Funkcji skalarnych można używać do wykonywania operacji na poszczególnych wartościach. Obsługiwane są następujące funkcje:
| Funkcja | Opis |
|---|---|
ago() |
Odejmuje podany przedział czasu od bieżącego czasu UTC. |
bin() |
Zaokrągla wartości w dół do wielokrotności daty/godziny danego rozmiaru przedziału. |
case() |
Wyznacza listę predykatów i zwraca pierwsze wyrażenie wyniku, którego orzeczenie jest spełnione. |
datetime_add() |
Oblicza nową wartość daty/godziny na podstawie określonego składnika daty pomnożonego przez określoną wartość dodawaną do określonej daty/godziny. Ujemne wartości parametru kwoty nie są obsługiwane. |
datetime_diff() |
Oblicza różnicę między dwiema wartościami daty/godziny. |
iif() |
Oblicza pierwszy argument i zwraca wartość drugiego lub trzeciego argumentu w zależności od tego, czy orzeczenie ma wartość prawda (drugi), czy fałsz (trzeci). |
indexof() |
Raportuje indeks liczony od zera dla pierwszego wystąpienia określonego ciągu w ciągu wejściowym. |
isnotnull() |
Szacuje swój jedyny argument i zwraca wartość logiczną wskazującą, czy jego wynikiem jest wartość różna od null. |
isnull() |
Szacuje jedyny argument i zwraca wartość logiczną wskazującą, czy argument ma wartość null. |
now() |
Zwraca bieżący czas zegara UTC. |
strcat() |
Łączy liczby od 1 do 64 argumentów. |
strlen() |
Zwraca wyrażoną w znakach długość ciągu wejściowego. |
substring() |
Wyodrębnia podciąg z ciągu źródłowego, zaczynając od pewnego indeksu do końca ciągu. |
tostring() |
Konwertuje dane wejściowe na reprezentację ciągu. |
Obsługiwane właściwości
Zapytanie urządzenia obsługuje następujące jednostki. Aby dowiedzieć się więcej o tym, jakie właściwości są obsługiwane dla każdej jednostki, zobacz Schemat platformy danych usługi Intune.
Apple Auto Setup Admin AccountsApple Device StatesApple Update SettingsBatteryBios InfoBluetoothCellularCPUDevice StorageDisk DriveEncryptable VolumeLocal AI AgentLogical DriveMemory InfoNetwork AdapterOs VersionShared iPadSim InfoSystem EnclosureSystemInfoTimeTpmVideo ControllerWindows Qfe
Jednostka urządzenia
Zapytanie urządzenia dla wielu urządzeń obsługuje połączoną jednostkę. Jednostka urządzenia może być używana ze wszystkimi innymi obsługiwanymi jednostkami. Jednostka urządzenia obsługuje następujące właściwości:
| Właściwość | Wpisać | Opis |
|---|---|---|
DeviceId |
Ciąg | Unikatowy identyfikator wygenerowany przez usługę Intune w ramach rejestracji urządzenia. |
EntraDeviceId |
Ciąg | Unikatowy identyfikator wygenerowany przez usługę Microsoft Entra w ramach rejestracji lub dołączenia do usługi Microsoft Entra. |
ManagementName |
Ciąg | Łatwo rozpoznawalna nazwa urządzenia używana tylko w centrum administracyjnym usługi Intune. Zmiana tej nazwy nie powoduje zmiany nazwy urządzenia ani nazwy w Portal firmy. |
DeviceName |
Ciąg | Nazwa urządzenia |
SerialNumber |
Ciąg | Numer seryjny urządzenia |
Manufacturer |
Ciąg | Producent urządzenia |
Model |
Ciąg | Model urządzenia |
OSDescription |
Ciąg | Pełny opis wersji systemu operacyjnego |
OSVersion |
Ciąg | Wersja systemu operacyjnego na urządzeniu |
EnrollmentProfileName |
Ciąg | Nazwa profilu rejestracji przypisanego do urządzenia. Wartość domyślna jest pustym ciągiem wskazującym, że do urządzenia nie został przypisany żaden profil rejestracji. |
EnrolledDateTime |
Data/godzina | Data i godzina zarejestrowania urządzenia w usłudze Intune. |
CertExpirationDateTime |
Data/godzina | Zgłasza datę wygaśnięcia certyfikatu zarządzania urządzeniem. |
EnrolledByUserId |
Ciąg | Unikatowy identyfikator użytkownika, który zarejestrował urządzenie. |
PrimaryUserId |
Ciąg | Unikatowy identyfikator użytkownika skojarzonego z urządzeniem. |
LastLoggedOnUserId |
Ciąg | Unikatowy identyfikator użytkownika, który ostatnio zalogował się na urządzeniu. |
InCompliancePeriodUntilDateTime |
Data/godzina | Data/godzina wygaśnięcia okresu prolongaty zgodności urządzenia |
DeviceCategoryId |
Ciąg | Nazwa wyświetlana kategorii urządzenia. Wartością domyślną jest ciąg pusty. |
LastSeenDateTime |
Ciąg | Data i godzina ostatniego połączenia urządzenia z usługą Intune. |
Ownership |
Ciąg | Własność urządzenia. |
Jednostka Device umożliwia odwoływanie się do informacji o urządzeniu skojarzonych z każdym wynikowym wierszem bez konieczności jawnego dołączania do tabeli urządzeń.
Domyślnie wyniki zapytania zawierają kolumnę Device jednostki, która zapewnia kontekst urządzenia dla każdego wiersza. Operatory, takie jak project, summarize, lub distinct mogą zmieniać, które kolumny są zwracane.
Device Reprezentuje urządzenie skojarzone z wierszem wynikowym i można się do niego odwoływać bezpośrednio jako do kolumny typu jednostki. Po wyświetleniu w wynikach Device zapytania jednostka jest wyświetlana przy użyciu przyjaznego identyfikatora, takiego jak nazwa urządzenia, aby ułatwić identyfikowanie urządzeń.
W zapytaniach można odwoływać się do właściwości Device encji za pomocą Device.[Property].
Poniższe zapytanie zwraca wszystkie DiskDrive informacje dotyczące urządzeń o określonym numerze seryjnym:
DiskDrive
| where Device.SerialNumber == "123"
Poniższe zapytanie projektuje Device jednostkę i Manufacturer właściwość z DiskDrive jednostki:
DiskDrive
| project Device, Manufacturer
Domyślnie wyniki zapytania zawierają jednostkę reprezentującą urządzenie skojarzone z każdym wierszem Device . Jednostka Device jest kolumną typu jednostki i nie jest niejawnie rozpoznawana jako określona właściwość skalarna.
Podczas sortowania lub filtrowania wyników jawnie odwołuj się do właściwości urządzenia, której chcesz użyć. Na przykład to zapytanie porządkuje wyniki według nazwy urządzenia:
MemoryInfo
| order by Device.DeviceName
Podobnie, aby filtrować według nazwy urządzenia, odwołaj się bezpośrednio do DeviceName właściwości:
Cpu
| where Device.DeviceName == "Desktop123"
Znane ograniczenia
Używanie kolumn typu jednostka, takich jak
Devicew funkcjach agregujących, może spowodować wyświetlenie czerwonego podkreślenia w edytorze, ponieważ funkcje agregacji wymagają wartości skalarnych. Aby tego uniknąć, odwołaj się do określonej właściwości skalarnej jednostki. Przykład:Cpu | summarize max(CpuUsage) by Device.ManufacturerZapytania, które używają operatora
joinz parametrami And$left$rightmogą wyświetlać czerwone podkreślenie w edytorze. Jednak zapytanie może nadal działać i zwracać wyniki zgodnie z oczekiwaniami.Jedno zapytanie może zawierać maksymalnie trzy
joinoperatory. Zapytania z większą liczbą sprzężeń kończą się niepowodzeniem.Zapytanie może zawierać maksymalnie ~50 000 rekordów.
W ciągu każdej minuty można przesłać maksymalnie 10 zapytań. Dodatkowe zapytania w ciągu tej samej minuty kończą się niepowodzeniem.
Miesięcznie można przesłać maksymalnie 1000 zapytań.
Ujemne wartości
amountparametrudatetime_add()funkcji nie są obsługiwane.Odwoływanie się do zmiennej wygenerowanej przez funkcję agregacji bez jawnego nazywania jej może spowodować niepowodzenie zapytania. Jawne nadanie nazwy zmiennej umożliwia pomyślne wykonanie zapytania. Przykład:
- Zapytanie
Device | summarize dcount(DeviceId) | order by dcount_DeviceIdkończy się niepowodzeniem. - Zapytanie
Device | summarize DCountDeviceIdRename = dcount(DeviceId) | order by DCountDeviceIdRenamekończy się pomyślnie. - Pomoc NL2KQL dla encji "Lokalny agent AI" nie jest obecnie obsługiwana.
- Zapytanie