Microsoft Intune için özel uyumluluk bulma betikleri

Microsoft Intune uyumluluk için özel ayarları kullanmadan önce, cihazlardaki özel uyumluluk ayarlarını keşfeden bir betik oluşturmanız gerekir. Kullandığınız komut dosyası platforma bağlıdır:

  • Windows cihazları bir PowerShell betiği kullanır.
  • Linux cihazlar, ilgili yorumlayıcı cihaza yüklendiği ve yapılandırıldığı sürece betikleri herhangi bir dilde çalıştırabilir.

Bulma betiği, özel uyumluluk ilkelerinizin bir parçası olarak cihazlara dağıtılır. Uyumluluk bir cihazda çalıştığında, betik, uyumluluk ilkesini oluştururken sağladığınız JSON dosyasında tanımlanan ayarları keşfeder.

Tüm keşif betikleri:

  • Uyumluluk ilkesi oluşturulmadan önce Intune eklenir. Betiği ekledikten sonra, özel ayarlarla uyumluluk ilkesi oluştururken bunu seçebilirsiniz.
    • Her bulma betiği yalnızca bir uyumluluk ilkesiyle kullanılabilir ve her uyumluluk ilkesi yalnızca bir bulma betiği içerebilir.
    • Uyumluluk ilkesine atanan bulma betiklerini, betiğin ilkeden atamasını kaldırana kadar silemezsiniz.
  • Uyumluluk ilkesini alan bir cihazda çalıştırın. Betik, özel bir uyumluluk ilkesi oluştururken karşıya yüklediğiniz JSON dosyasının koşullarını değerlendirir.
  • JSON'da tanımlandığı gibi bir veya daha fazla ayar tanımlayın ve bu ayarlar için bulunan değerlerin listesini döndürün.

Ayrıca, Windows için PowerShell betiği:

  • Sonuçların tek bir satırda çıktısını almak için sıkıştırılmalıdır. Örneğin, aşağıdaki komut dosyası son satır olarak bulunmalıdır return $hash | ConvertTo-Json -Compress :

    $hash = @{ Manufacturer = $WMI_ComputerSystem.Manufacturer; BiosVersion = $WMI_BIOS.SMBIOSBIOSVersion; TPMChipPresent = $TPM.TPMPresent}
    return $hash | ConvertTo-Json -Compress
    

Sınırlar

Uyumluluk verilerini Intune başarılı bir şekilde döndürmek için betiklerinizin aşağıdaki sınırlar içinde kalması gerekir:

  • Komut dosyalarının her biri en fazla 1 megabayt (MB) olabilir.
  • Her komut dosyası tarafından oluşturulan çıktı 1 MB'tan büyük olamaz.
  • Betiklerin sınırlı bir çalışma süresi olmalıdır:
    • Linux, betiklerin çalıştırılması beş dakika veya daha kısa sürmelidir.
    • Windows'ta betiklerin çalıştırılması 10 dakika veya daha kısa sürede tamamlanmalıdır.

Windows için örnek bulma betiği

Aşağıdaki örnek, Windows cihazları için kullanabileceğiniz örnek bir PowerShell betiğidir:

$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

Aşağıdaki örnekte, Windows için örnek komut dosyasının çıkışı gösterilmektedir:

{"BiosVersion":"1.24","Manufacturer":"Microsoft Corporation","TPMChipPresent":true}

Tiçin örnek keşif betiği LinuxLinux

Not

Linux'da, bulma betikleri kullanıcının bağlamında çalışır. Yükseltme gerektiren sistem düzeyindeki ayarları denetleyemezler. Bu sınırlamaya örnek olarak dosyanınkiler state/hash/etc/sudoers verilebilir.

Linux için keşif betikleri, gereksinimlerinizi karşılayan herhangi bir yorumlayıcıyı çağırabilir. Betiği dağıtmadan önce seçilen yorumlayıcının hedef cihaza düzgün bir şekilde yüklendiğinden ve yapılandırıldığından emin olun. Bir komut dosyasının yorumlayıcısını belirtmek için, betiğin en üstüne yorumlayıcı ikilisine giden yolu gösteren bir shebang satırı ekleyin.

Örneğin, betiğinizin yorumlayıcı olarak Bash kabuğunu kullanması gerekiyorsa, betiğinizin en üstüne aşağıdaki satırı ekleyin:

#!/bin/bash

Python kullanmak için yorumlayıcı yolunu belirtin. Örneğin, komut dosyanızın en üstüne şu satırı ekleyin: #!/usr/bin/python3 veya #!/usr/bin/env python3

İpucu

Kesintileri veya iptal sinyallerini işlemek için komut dosyalarınızda zarif sonlandırma mekanizmaları uygulayın. Bir betik bu sinyalleri işlediğinde, temizleme görevlerini gerçekleştirebilir ve düzgün bir şekilde çıkarak kaynakların doğru şekilde serbest bırakılmasını sağlayabilir. Örneğin, SIGINT (kesme sinyali) veya SIGTERM (sonlandırma sinyali) gibi sinyalleri yakalayın ve alındıklarında çalıştırılacak özel eylemler tanımlayın. Bu eylemler açık dosyaları kapatmayı, edinilen kilitleri açmayı veya geçici kaynakları temizlemeyi içerebilir.

Daha fazla bilgi için Intune Linux Özel Uyumluluk Örnekleri kılavuzuna bakın.

Add a discovery script to IntuneIntune

Betiğinizi üretimde dağıtmadan önce, kullandığınız söz diziminin beklendiği gibi davrandığından emin olmak için yalıtılmış bir ortamda test edin.

Not

Betik yükleme iş akışı kapsam etiketlerini desteklemiyor. Özel uyumluluk bulma betiklerini oluşturmak, düzenlemek veya görüntülemek için varsayılan kapsam etiketine atanmış olmanız gerekir.

  1. TMicrosoft IntuneMicrosoft Intune yönetim merkezinde oturum açın ve Uç nokta güvenliği>Cihaz uyumluluğu>Betikleri Ekle'ye> gidin. Ardından platformunuzu seçin.

  2. Temel Bilgiler'de komut dosyası için açıklayıcı bir Ad girin.

  3. Ayarlar'da, komut dosyanızı Algılama komut dosyasına ekleyin. Senaryonuzu dikkatle gözden geçirin. IntuneIntune, betiği sözdizimi veya programlama hataları için doğrulamaz.

  4. Yalnızca Windows için - Ayarlar'da PowerShell betiği için aşağıdaki davranışı yapılandırın:

    • Oturum açmış kimlik bilgilerini kullanarak bu betiği çalıştırın – Varsayılan olarak, betik cihazdaki Sistem bağlamında çalışır. Oturum açmış kullanıcı bağlamında çalışmasını sağlamak için bu değeri Evet olarak ayarlayın. Kullanıcı oturum açmamışsa, betik varsayılan olarak Sistem bağlamına geri döner.
    • Betik imza denetimini zorunlu kılma – Daha fazla bilgi için PowerShell belgelerinde about_Signing bölümüne bakın.
    • Betiği 64 bit PowerShell Ana Bilgisayarında çalıştırma – Varsayılan olarak, betik 32 bit PowerShell ana bilgisayarı kullanılarak çalıştırılır. Betiğin bunun yerine 64 bit ana bilgisayar kullanılarak çalıştırılmasını zorlamak için bu değeri Evet olarak ayarlayın.
  5. Komut dosyası oluşturma işlemini tamamlayın. Betik , Betikler bölmesinde görünür ve uyumluluk ilkeleri yapılandırılırken seçilebilir.

Sonraki adımlar