Intune'daki Windows cihazlarında PowerShell betiklerini kullanma

PowerShell betiklerini IntuneIntune'a yüklemek için Microsoft IntuneMicrosoft Intune yönetim uzantısını kullanın. Ardından, bu betikleri Windows cihazlarında çalıştırın. Yönetim uzantısı MDM'yi geliştirir ve modern yönetime geçişi kolaylaştırır.

Not

Windows için Intune yönetimi uzantısı hakkında daha fazla bilgi için, Windows için Intune yönetim uzantısına bakın.

Başlamadan önce

  • Yönetici haklarıyla kullanıcı bağlamına ayarlanan betikler, PowerShell'i varsayılan olarak yönetici ayrıcalığı altında çalıştırır.

  • Son kullanıcıların PowerShell betiklerini yürütmek için cihazda oturum açması gerekmez.

  • TIntuneIntune yönetim uzantısı, her yeniden başlatmadan sonra yeni komut dosyaları veya değişiklikler olup olmadığını denetler. İlkeyi Microsoft EntraMicrosoft Entra gruplarına atadıktan sonra, PowerShell betiği çalıştırılır ve çalıştırma sonuçları raporlanır. Betik yürütüldükten sonra, betikte veya ilkede bir değişiklik olmadığı sürece yeniden yürütülmez. Betik başarısız olursa, IntuneIntune yönetim uzantısı, sonraki üç ardışık IntuneIntune yönetim uzantısı denetimleri için betiği üç kez yeniden dener.

  • Cihaza atanan PowerShell betikleri, kullanıcı girişinin devre dışı bırakıldığı çok oturumlu SKU'lar dışında oturum açan her yeni kullanıcı için çalışır.

  • PowerShell betikleri, Win32 uygulamaları çalıştırılmadan önce yürütülür. Başka bir deyişle, önce PowerShell betikleri yürütülür. Ardından, Win32 uygulamaları yürütülür.

  • PowerShell betikleri 30 dakika sonra zaman aşımına uğrar.

Önemli

PowerShell betiklerini ve Düzeltme betiklerini kullanırken gizlilik farkındalığı için en iyi yöntemler şunlardır:

  • Komut dosyalarına hassas bilgi türleri eklemeyin (parola gibi)
  • Betiklere kişisel veriler eklemeyin
  • Cihazlardan kişisel verileri toplamak için komut dosyaları kullanmayın
  • Her zaman en iyi gizlilik uygulamalarını takip edin

İlgili bilgiler için bkz: Düzeltmeler.

Önkoşullar

  • IntuneIntune yönetim uzantısı, kullanıcıya veya cihaza bir PowerShell betik uygulaması atandığında otomatik olarak yüklenir. Daha fazla bilgi için bkz. Windows için Intune yönetim uzantısı.

Önemli

TIntuneIntune yönetim uzantısını çalıştıran istemcilere dağıtılan betikler, cihazın sistem saati aylar veya yıllar içinde aşırı derecede eskiyse çalışmaz. Sistem saati güncelleştirildikten sonra, komut dosyası beklendiği gibi çalışır.

Betik ilkesi oluşturma ve atama

  1. Microsoft Intune yönetim merkezinde oturum açın.

  2. Cihazlar'ı> seçinBetikler ve düzeltmeler>Platform betikleri>Ekle>Windows 10 ve sonrası.

    Windows cihazı için yeni betik oluşturmayı gösteren ekran görüntüsü.

  3. Temel Bilgiler'de aşağıdaki özellikleri girin ve İleri'yi seçin:

    • Ad: PowerShell betiği için bir ad girin.
    • Açıklama: PowerShell betiği için bir açıklama girin. Bu ayar isteğe bağlıdır ancak önerilir.
  4. Betik ayarları'nda aşağıdaki özellikleri girin ve İleri'yi seçin:

    • Betik konumu: PowerShell betiğine gidin. Komut dosyası en fazla 200 KB (ASCII) olmalıdır.

    • Oturum açmış kimlik bilgilerini kullanarak bu betiği çalıştırın: Betiği cihazda kullanıcının kimlik bilgileriyle çalıştırmak için Evet'i (varsayılan) seçin. Betiği sistem bağlamında çalıştırmak için Hayır'ı seçin. Birçok yönetici Evet'i tercih eder. Betiğin sistem bağlamında çalıştırılması gerekiyorsa Hayır'ı seçin.

    • Komut dosyası imza denetimini zorunlu kıl: Komut dosyasının güvenilir bir yayıncı tarafından imzalanması gerekiyorsa Evet (varsayılan) seçeneğini belirleyin. Betiğin imzalanması için bir gereklilik yoksa Hayır'ı seçin.

    • Betiği 64 bit PowerShell ana bilgisayarında çalıştırma: Betiği 64 bit istemci mimarisinde 64 bit PowerShell ana bilgisayarında çalıştırmak için Evet'i seçin. Hayır'ı seçin (varsayılan) betiği 32 bit PowerShell ana bilgisayarında çalıştırır.

      Evet veya Hayır olarak ayarlarken, yeni ve mevcut ilke davranışı için aşağıdaki tabloyu kullanın:

      64 bit ana bilgisayarda çalıştırma betiği İstemci mimarisi Yeni komut dosyası Mevcut politika betiği
      Hayır 32 bit 32 bit PowerShell ana bilgisayarı desteklenir Yalnızca 32 bit ve 64 bit mimarilerde çalışan 32 bit PowerShell ana bilgisayarında çalışır.
      Evet 64 bit Betiği 64 bit mimariler için 64 bit PowerShell ana bilgisayarında çalıştırır. Betik 32 bit'te çalıştırıldığında, 32 bit'lik bir PowerShell ana bilgisayarında çalışır. Betiği 32 bit PowerShell ana bilgisayarında çalıştırır. Bu ayar 64 bit olarak değiştirilirse, betik 64 bit PowerShell ana bilgisayarında açılır (çalışmaz) ve sonuçları raporlar. Betik 32 bit'te çalıştırıldığında, 32 bit PowerShell ana bilgisayarında çalışır.
  5. Kapsam etiketleri'ni seçin. Kapsam etiketleri isteğe bağlıdır. Dağıtılmış BT'nin daha fazla bilgiye sahip olması için rol tabanlı erişim denetimi ve kapsam etiketlerini kullanma.

    Kapsam etiketi eklemek için:

    • Kapsam etiketlerini> seç'i seçin, listeden > mevcut bir kapsam etiketini seçin Seç'i seçin.

    • İşiniz bittiğinde İleri'yi seçin.

  6. Ödevleri> SeçmeDahil edilecek grupları seçin. Varolan Microsoft Entra grupları listesi gösterilir.

    • Cihazları betiği alan kullanıcıları içeren bir veya daha fazla grup seçin. Seç'i seçin. Seçtiğiniz gruplar listede gösterilir ve ilkenizi alırlar.

      Not

      TIntuneIntune içindeki PowerShell betikleri, Microsoft EntraMicrosoft Entra device security groups or Microsoft EntraMicrosoft Entra user security groups'a hedeflenebilir. Ancak, çalışma alanına katılmış (WPJ) cihazları hedeflerken, yalnızca Microsoft Entra cihaz güvenlik grupları kullanılabilir (kullanıcı hedefleme yoksayılır).

    • İleri'yi seçin.

      TMicrosoft IntuneMicrosoft Intune'deki cihaz gruplarına PowerShell betiği atama veya dağıtma

  7. Gözden geçir + ekle bölümünde, yapılandırdığınız ayarların bir özeti gösterilir. Betiği kaydetmek için Ekle'yi seçin. Ekle'yi seçtiğinizde, ilke seçtiğiniz gruplara dağıtılır.

Senaryo - Betiği çalıştırma hatası

sabah 8

  • İade etme
  • ConfigScript01 betiğini çalıştırın
  • Komut dosyası başarısız olur

sabah 9

  • İade etme
  • ConfigScript01 betiğini çalıştırın
  • Betik başarısız oluyor (yeniden deneme sayısı = 1)

10:00

  • İade etme
  • ConfigScript01 betiğini çalıştırın
  • Betik başarısız oluyor (yeniden deneme sayısı = 2)

11:00

  • İade etme
  • ConfigScript01 betiğini çalıştırın
  • Betik başarısız oluyor (yeniden deneme sayısı = 3)

12 ÖS

  • İade etme
  • ConfigScript01betiğini çalıştırmak için başka hiçbir girişimde bulunulmaz.
  • Betikte başka hiçbir değişiklik yapılmazsa, betiği çalıştırmak için başka bir girişimde bulunulmaz.

Çalıştırma durumunu izleme

Portalda kullanıcılar ve cihazlar için PowerShell betiklerinin çalışma durumunu izleyebilirsiniz.

PowerShell betiklerinde izlenecek betiği seçin, İzleyici'yi seçin ve ardından aşağıdaki raporlardan birini seçin:

  • Cihaz durumu
  • Kullanıcı durumu

Not

Platform betikleri için Intune yönetim merkezinden cihaz durumu dışa aktarımları artık Intune Dışarı Aktarma API'sini kullanıyor ve CSV sütun adları API şemasıyla hizalanıyor.

Betiği silme

PowerShell betiklerinde betiklere sağ tıklayın ve Sil'i seçin.

Yaygın sorunlar ve çözümleri

Sorun: PowerShell betikleri çalışmıyor

Olası çözümler:

  • PowerShell betikleri her oturum açmada çalışmaz. Çalıştırırlar:

    • Betik bir cihaza atandığında

    • Betiği değiştirirseniz, karşıya yükleyin ve bir kullanıcı veya cihaza atayın

      İpucu

      Microsoft Intune Microsoft Intune Yönetim Uzantısı, Hizmetler uygulamasında (services.msc) listelenen diğer hizmetler gibi cihazda çalışan bir hizmettir. Cihaz yeniden başlatıldıktan sonra, bu hizmet yeniden başlatılabilir ve IntuneIntune hizmetiyle atanmış PowerShell betikleri olup olmadığını denetleyebilir. Microsoft Intune Microsoft Intune Yönetim Uzantısı hizmeti El ile olarak ayarlanırsa, cihaz yeniden başlatıldıktan sonra hizmet yeniden başlatılamayabilir.

  • Cihazların Microsoft Entra IDMicrosoft Entra ID'a katıldığından emin olun. Yalnızca iş yerinize veya kuruluşunuza kayıtlı olan cihazlar Microsoft Entra IDMicrosoft Entra ID betikleri almaz.

  • Intune yönetimi uzantısının şuraya %ProgramFiles(x86)%\Microsoft Intune Management Extensionindirildiğini onaylayın.

  • Betikler, Surface Hub'larda veya S modunda Windows'ta çalışmaz.

  • Hata olup olmadığına bakmak için günlükleri gözden geçirin. Yönetim uzantısı günlüklerini Intune bakın (bu makalede).

  • Olası izin sorunları için PowerShell betiğinin özelliklerinin olarak ayarlandığından Run this script using the logged on credentialsemin olun. Ayrıca, oturum açmış kullanıcının betiği çalıştırmak için uygun izinlere sahip olup olmadığını denetleyin.

  • Betik sorunlarını yalıtmak için şunları yapabilirsiniz:

    • Cihazlarınızda PowerShell yürütme yapılandırmasını gözden geçirin. Yönergeler için PowerShell yürütme ilkesine bakın.

    • TIntuneIntune yönetim uzantısını kullanarak örnek bir betik çalıştırın. Örneğin, dizini oluşturun C:\Scripts ve herkese tam denetim verin. Aşağıdaki komut dosyasını çalıştırın:

      write-output "Script worked" | out-file c:\Scripts\output.txt
      

      Başarılı olursa, output.txt oluşturulmalı ve "Senaryo işlendi" metnini içermelidir.

    • TIntuneIntune olmadan komut dosyası yürütmeyi test etmek için, yerel olarak psexec aracını kullanarak Sistem hesabındaki betikleri çalıştırın:

      psexec -i -s

    • Komut dosyası başarılı olduğunu bildiriyor, ancak aslında başarılı değilse, virüsten koruma hizmetiniz AgentExecutor'u korumalı alana alıyor olabilir. Aşağıdaki betik her zaman IntuneIntune'da bir hata bildirir. Test olarak şu betiği kullanabilirsiniz:

      Write-Error -Message "Forced Fail" -Category OperationStopped
      mkdir "c:\temp"
      echo "Forced Fail" | out-file c:\temp\Fail.txt
      

      Betik başarılı olduğunu bildirirse, hata çıktısını onaylamak için bu AgentExecutor.log komut dosyasına bakın. Betik yürütülürse uzunluk 2 olmalıdır >.

    • Ve .output dosyalarını yakalamak .error için, aşağıdaki kod parçacığı betiği AgentExecutor aracılığıyla PowerShell x86'ya (C:\Windows\SysWOW64\WindowsPowerShell\v1.0) yürütür. İncelemeniz için günlükleri tutar. Unutmayın, Intune Intune Yönetim Uzantısı, betik yürütüldükten sonra günlükleri temizler:

      $scriptPath = read-host "Enter the path to the script file to execute"
      $logFolder = read-host "Enter the path to a folder to output the logs to"
      $outputPath = $logFolder+"\output.output"
      $errorPath =  $logFolder+"\error.error"
      $timeoutPath =  $logFolder+"\timeout.timeout"
      $timeoutVal = 60000
      $PSFolder = "C:\Windows\SysWOW64\WindowsPowerShell\v1.0"
      $AgentExec = "C:\Program Files (x86)\Microsoft Intune Management Extension\agentexecutor.exe"
      &$AgentExec -powershell  $scriptPath $outputPath $errorPath $timeoutPath $timeoutVal $PSFolder 0 0
      

Sorun: Windows artık yönetilmediği halde komut dosyaları neden çalışıyor?

Atanmış betiklere sahip bir Windows cihazı artık yönetilmediğinde, IME hemen kaldırılmaz. IME, bir sonraki IME denetiminde (genellikle 8 saatte bir) Windows'un yönetilmediğini algılar ve betik çalıştırmalarını iptal eder. Bu arada, yerel olarak depolanan tüm betikler çalıştırılabilir. IME iade edemediğinde, 24 saate kadar (cihaz uyanıklık süresi) iade etmeyi yeniden dener ve kendisini Windows cihazından kaldırır.

Sonraki adımlar

Profillerinizi izleyin ve profillerinizle ilgili sorunları giderin .