Sdílet prostřednictvím


Použití powershellových skriptů na zařízeních Windows 10/11 v Intune

Pomocí rozšíření pro správu Microsoft Intune nahrajte skripty PowerShellu do Intune. Pak tyto skripty spusťte na Windows 10 zařízeních. Rozšíření pro správu vylepšuje správu zařízení s Windows (MDM) a usnadňuje přechod na moderní správu.

Poznámka

Informace o rozšíření pro správu Intune pro Windows najdete v tématu rozšíření pro správu Intune pro Windows.

Než začnete

  • Pokud jsou skripty nastavené na kontext uživatele a koncový uživatel má oprávnění správce, skript PowerShellu se ve výchozím nastavení spouští pod oprávněním správce.

  • Koncoví uživatelé se nemusí přihlašovat k zařízení, aby mohli spouštět skripty PowerShellu.

  • Rozšíření pro správu Intune kontroluje po každém restartování nové skripty nebo změny. Po přiřazení zásady ke skupinám Microsoft Entra se spustí skript PowerShellu a hlásí se výsledky spuštění. Jakmile se skript spustí, nespustí se znovu, pokud nedojde ke změně skriptu nebo zásad. Pokud skript selže, rozšíření pro správu Intune skript třikrát opakuje pro další tři po sobě jdoucí Intune kontroly rozšíření správy.

  • Skript PowerShellu přiřazený k zařízení se spustí pro každého nového uživatele, který se přihlásí, s výjimkou skladových položek s více relacemi, kde je přihlášení uživatele zakázané.

  • Skripty PowerShellu se spouštějí před spuštěním aplikací Win32. Jinými slovy, skripty PowerShellu se spustí jako první. Pak se spustí aplikace Win32.

  • Po 30 minutách vyprší časový limit skriptů PowerShellu.

Důležité

Mezi osvědčené postupy pro zajištění ochrany osobních údajů při používání skriptů PowerShellu a skriptů pro nápravu patří následující:

  • Nezahrnujte do skriptů žádný typ citlivých informací (jako jsou hesla).
  • Nezahrnujte do skriptů identifikovatelné osobní údaje
  • Nepoužívejte skripty ke shromažďování osobních údajů ze zařízení.
  • Vždy dodržujte osvědčené postupy ochrany osobních údajů

Související informace najdete v tématu Nápravy.

Požadavky

  • Intune rozšíření pro správu se nainstaluje automaticky, když je k uživateli nebo zařízení přiřazená aplikace skriptů PowerShellu. Další informace najdete v tématu Intune rozšíření správy pro Windows.

Důležité

Skripty nasazené na klienty, na kterých běží rozšíření pro správu Intune, se nepodaří spustit, pokud jsou systémové hodiny zařízení po měsících nebo letech nadlimitně zastaralé. Jakmile jsou systémové hodiny aktualizované, skript se spustí podle očekávání.

Vytvoření zásady skriptů a jejich přiřazení

  1. Přihlaste se k Centru pro správu Microsoft 365.

  2. Vyberte Zařízení>Skripty a nápravy>Skripty> platformyPřidat>Windows 10 a novější.

    Snímek obrazovky znázorňující vytvoření nového skriptu pro Windows 10 zařízení

  3. V části Základy zadejte následující vlastnosti a vyberte Další:

    • Název: Zadejte název skriptu PowerShellu.
    • Popis: Zadejte popis skriptu PowerShellu. Toto nastavení není povinné, ale doporučujeme ho zadat.
  4. V nastavení skriptu zadejte následující vlastnosti a vyberte Další:

    • Umístění skriptu: Přejděte ke skriptu PowerShellu. Skript musí být menší než 200 kB (ASCII).

    • Spusťte tento skript pomocí přihlášených přihlašovacích údajů: Vyberte Ano (výchozí) a spusťte skript s přihlašovacími údaji uživatele na zařízení. Pokud chcete skript spustit v kontextu systému, zvolte Ne . Mnoho správců zvolí Ano. Pokud se skript vyžaduje ke spuštění v kontextu systému, zvolte Ne.

    • Vynutit kontrolu podpisu skriptu: Pokud musí být skript podepsaný důvěryhodným vydavatelem, vyberte Ano (výchozí). Pokud není nutné podepsat skript, vyberte Ne .

    • Spustit skript v 64bitovém hostiteli PowerShellu: Vyberte Ano , pokud chcete skript spustit v 64bitovém hostiteli PowerShellu v 64bitové klientské architektuře. Vyberte Ne (výchozí) spuštění skriptu v 32bitovém hostiteli PowerShellu.

      Při nastavení na Ano nebo Ne použijte pro nové a existující chování zásad následující tabulku:

      Spuštění skriptu v 64bitovém hostiteli Architektura klienta Nový skript Existující skript zásad
      Ne 32bitová verze Podpora 32bitového hostitele PowerShellu Spouští se jenom v 32bitovém hostiteli PowerShellu, který funguje na 32bitové a 64bitové architektuře.
      Ano 64bitová verze Spustí skript v 64bitovém hostiteli PowerShellu pro 64bitové architektury. Při spuštění na 32bitovém počítači se skript spustí v 32bitovém hostiteli PowerShellu. Spustí skript v 32bitovém hostiteli PowerShellu. Pokud se toto nastavení změní na 64bitovou verzi, skript se otevře (nespustí) v 64bitovém hostiteli PowerShellu a nahlásí výsledky. Při spuštění na 32bitovém počítači se skript spustí v 32bitovém hostiteli PowerShellu.
  5. Vyberte Značky oboru. Značky oboru jsou volitelné. Použití řízení přístupu na základě role (RBAC) a značek oboru pro distribuované IT obsahuje další informace.

    Přidání značky oboru:

    • Zvolte Vybrat značky> oboru a v seznamu >Vybrat vyberte existující značku oboru.

    • Po dokončení vyberte Další.

  6. Vyberte Přiřazení>: Vyberte skupiny, které chcete zahrnout. Zobrazí se existující seznam skupin Microsoft Entra.

    • Vyberte jednu nebo více skupin, které zahrnují uživatele, jejichž zařízení obdrží skript. Zvolte Vybrat. Skupiny, které jste vybrali, se zobrazí v seznamu a obdrží zásady.

      Poznámka

      Skripty PowerShellu v Intune můžou být cílené na Microsoft Entra skupin zabezpečení zařízení nebo Microsoft Entra skupin zabezpečení uživatelů. Při cílení na zařízení připojená k pracovišti (WPJ) je ale možné použít pouze Microsoft Entra skupiny zabezpečení zařízení (cílení na uživatele bude ignorováno).

    • Vyberte Další.

      Přiřazení nebo nasazení powershellového skriptu do skupin zařízení v Microsoft Intune

  7. V části Zkontrolovat a přidat se zobrazí souhrn nastavení, která jste nakonfigurovali. Vyberte Přidat a skript uložte. Když vyberete Přidat, zásada se nasadí do vámi vybraných skupin.

Scénář – Selhání spuštění skriptu

8:00

  • Přihlásit se
  • Spuštění skriptu ConfigScript01
  • Selhání skriptu

9:00

  • Přihlásit se
  • Spuštění skriptu ConfigScript01
  • Skript selže (počet opakování = 1)

10:00

  • Přihlásit se
  • Spuštění skriptu ConfigScript01
  • Skript selže (počet opakování = 2)

11:00

  • Přihlásit se
  • Spuštění skriptu ConfigScript01
  • Skript selže (počet opakování = 3)

12:00

  • Přihlásit se
  • Ke spuštění skriptu ConfigScript01se neprovedou žádné další pokusy.
  • Pokud se ve skriptu neprovedou žádné další změny, neprovedou se žádné další pokusy o spuštění skriptu.

Monitorování stavu spuštění

Stav spuštění skriptů PowerShellu pro uživatele a zařízení můžete monitorovat na portálu.

Ve skriptech PowerShellu vyberte skript, který chcete monitorovat, zvolte Monitorovat a pak zvolte jednu z následujících sestav:

  • Stav zařízení
  • Stav uživatele

Odstranění skriptu

Ve skriptech PowerShellu klikněte pravým tlačítkem myši na skript a vyberte Odstranit.

Běžné problémy a řešení

Problém: Skripty PowerShellu se nespouštějí

Možná řešení:

  • Skripty PowerShellu se nespouštějí při každém přihlášení. Spustí:

    • Když je skript přiřazený k zařízení

    • Pokud skript změníte, nahrajte ho a přiřadíte ho uživateli nebo zařízení.

      Tip

      Rozšíření Microsoft Intune Management je služba, která běží na zařízení stejně jako jakákoli jiná služba uvedená v aplikaci Services (services.msc). Po restartování zařízení se může tato služba také restartovat a vyhledat všechny přiřazené skripty PowerShellu s Intune službou. Pokud je služba Microsoft Intune Management Extension nastavená na Ruční, nemusí se po restartování zařízení restartovat.

  • Ujistěte se, že jsou zařízení připojená k Microsoft Entra ID. Zařízení, která jsou připojená jenom k vašemu pracovišti nebo organizaci (zaregistrovaná v Microsoft Entra ID), nedostanou skripty.

  • Ověřte, že se rozšíření pro správu Intune stáhlo do %ProgramFiles(x86)%\Microsoft Intune Management Extension.

  • Skripty se nespouštějí na Zařízení Surface Hub ani Windows 10 v režimu S.

  • Zkontrolujte případné chyby v protokolech. Viz protokoly rozšíření Intune správy (v tomto článku).

  • V případě možných problémů s oprávněními se ujistěte, že jsou vlastnosti skriptu PowerShellu nastavené na Run this script using the logged on credentialshodnotu . Zkontrolujte také, že přihlášený uživatel má příslušná oprávnění ke spuštění skriptu.

  • Pokud chcete izolovat problémy se skriptováním, můžete:

    • Zkontrolujte konfiguraci spouštění PowerShellu na vašich zařízeních. Pokyny najdete v tématu Zásady spouštění PowerShellu .

    • Spusťte ukázkový skript pomocí rozšíření pro správu Intune. Vytvořte například C:\Scripts adresář a poskytněte všem úplné řízení. Spusťte následující skript:

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

      Pokud bude úspěšný, měla by se vytvořit output.txt a měla by obsahovat text "Skript pracoval".

    • Pokud chcete otestovat spuštění skriptu bez Intune, spusťte skripty v účtu System pomocí nástroje psexec místně:

      psexec -i -s

    • Pokud skript hlásí, že to bylo úspěšné, ale ve skutečnosti se to nepovedlo, je možné, že vaše antivirová služba může být sandboxing AgentExecutor. Následující skript vždy hlásí chybu v Intune. Jako test můžete použít tento skript:

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

      Pokud skript hlásí úspěch, zkontrolujte AgentExecutor.log výstup chyby. Pokud se skript spustí, délka by měla být >2.

    • Pokud chcete zachytit .error soubory a .output , následující fragment kódu spustí skript prostřednictvím AgentExecutoru do PowerShellu x86 (C:\Windows\SysWOW64\WindowsPowerShell\v1.0). Uchovává protokoly pro vaši kontrolu. Nezapomeňte, že rozšíření Intune Management vyčistí protokoly po spuštění skriptu:

      $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
      

Problém: Proč jsou spuštěné skripty, i když systém Windows už není spravovaný?

Pokud už zařízení s Windows s přiřazenými skripty není spravované, editor IME se neodebere okamžitě. Editor IME zjistí, že systém Windows se nespravuje při příštím přihlášení editoru IME (obvykle každých 8 hodin), a zruší spouštění skriptů. Do té doby se můžou spustit všechny místně uložené skripty. Když editor IME nemůže provést vrácení se změnami, opakuje až 24 hodin vrácení se změnami (v době probuzení zařízení) a pak se sám odebere ze zařízení s Windows.

Další kroky

Monitorujte profily a odstraňte potíže s vašimi profily.