Delen via


PowerShell-scripts gebruiken op Windows 10/11-apparaten in Intune

Gebruik de Microsoft Intune-beheerextensie om PowerShell-scripts te uploaden in Intune. Voer deze scripts vervolgens uit op Windows 10 apparaten. De beheerextensie verbetert Het beheer van Windows-apparaten (MDM) en maakt het eenvoudiger om over te stappen op modern beheer.

Opmerking

Zie Intune-beheerextensie voor Windows voor meer informatie over de Intune-beheerextensie voor Windows.

Voordat u begint

  • Wanneer scripts zijn ingesteld op gebruikerscontext en de eindgebruiker beheerdersrechten heeft, wordt het PowerShell-script standaard uitgevoerd onder de beheerdersbevoegdheden.

  • Eindgebruikers hoeven zich niet aan te melden bij het apparaat om PowerShell-scripts uit te voeren.

  • De Intune-beheerextensie controleert na elke herstart op nieuwe scripts of wijzigingen. Nadat u het beleid hebt toegewezen aan de Microsoft Entra groepen, wordt het PowerShell-script uitgevoerd en worden de uitvoeringsresultaten gerapporteerd. Zodra het script is uitgevoerd, wordt het niet opnieuw uitgevoerd, tenzij er een wijziging in het script of beleid is. Als het script mislukt, probeert de Intune-beheerextensie het script drie keer opnieuw voor de volgende drie opeenvolgende check-ins Intune beheeruitbreidingen.

  • Een PowerShell-script dat is toegewezen aan het apparaat, wordt uitgevoerd voor elke nieuwe gebruiker die zich aanmeldt, behalve op SKU's met meerdere sessies waarvoor het inchecken van de gebruiker is uitgeschakeld.

  • PowerShell-scripts worden uitgevoerd voordat Win32-apps worden uitgevoerd. Met andere woorden, PowerShell-scripts worden eerst uitgevoerd. Vervolgens worden Win32-apps uitgevoerd.

  • Er is na 30 minuten een time-out opgetreden voor PowerShell-scripts.

Belangrijk

Aanbevolen procedures voor privacybewustzijn bij het gebruik van PowerShell-scripts en herstelscripts omvatten het volgende:

  • Neem geen enkele vorm van gevoelige informatie op in scripts (zoals wachtwoorden)
  • Persoonsgegevens (PII) niet opnemen in scripts
  • Gebruik geen scripts om PII van apparaten te verzamelen
  • Best practices voor privacy altijd volgen

Zie Herstelbewerkingen voor gerelateerde informatie.

Vereisten

  • Intune-beheerextensie wordt automatisch geïnstalleerd wanneer een PowerShell-script-app wordt toegewezen aan de gebruiker of het apparaat. Zie Intune-beheerextensie voor Windows voor meer informatie.

Belangrijk

Scripts die zijn geïmplementeerd op clients waarop de Intune-beheerextensie worden uitgevoerd, kunnen niet worden uitgevoerd als de systeemklok van het apparaat maanden of jaren te oud is. Zodra de systeemklok is bijgewerkt, wordt het script uitgevoerd zoals verwacht.

Een scriptbeleid maken en toewijzen

  1. Meld je aan bij het Microsoft Intune-beheercentrum.

  2. Selecteer Apparaten>Scripts en herstelbewerkingenPlatformscripts>>Toevoegen>Windows 10 en hoger.

    Schermopname van het maken van een nieuw script voor een Windows 10 apparaat.

  3. Voer in Basis de volgende eigenschappen in en selecteer Volgende:

    • Naam: voer een naam in voor het PowerShell-script.
    • Beschrijving: voer een beschrijving in voor het PowerShell-script. Deze instelling is optioneel, maar wordt aanbevolen.
  4. Voer in Scriptinstellingen de volgende eigenschappen in en selecteer Volgende:

    • Scriptlocatie: Blader naar het PowerShell-script. Het script moet kleiner zijn dan 200 kB (ASCII).

    • Voer dit script uit met de aangemelde referenties: selecteer Ja (standaard) om het script uit te voeren met de referenties van de gebruiker op het apparaat. Kies Nee om het script uit te voeren in de systeemcontext. Veel beheerders kiezen Ja. Als het script moet worden uitgevoerd in de systeemcontext, kiest u Nee.

    • Controle van scripthandtekening afdwingen: selecteer Ja (standaard) als het script moet worden ondertekend door een vertrouwde uitgever. Selecteer Nee als er geen vereiste is om het script te ondertekenen.

    • Script uitvoeren in de 64-bits PowerShell-host: selecteer Ja om het script uit te voeren in een 64-bits PowerShell-host op een 64-bits clientarchitectuur. Selecteer Nee (standaard) voert het script uit in een 32-bits PowerShell-host.

      Wanneer u de instelling Op Ja of Nee instelt, gebruikt u de volgende tabel voor nieuw en bestaand beleidsgedrag:

      Script uitvoeren op de 64-bits host Clientarchitectuur Nieuw script Bestaand beleidsscript
      Nee 32-bits 32-bits PowerShell-host ondersteund Wordt alleen uitgevoerd in de 32-bits PowerShell-host, die werkt op 32-bits en 64-bits architecturen.
      Ja 64-bits Script wordt uitgevoerd in de 64-bits PowerShell-host voor 64-bits architecturen. Wanneer het script wordt uitgevoerd op 32-bits, wordt het uitgevoerd in een 32-bits PowerShell-host. Script wordt uitgevoerd in de 32-bits PowerShell-host. Als deze instelling wordt gewijzigd in 64-bits, wordt het script geopend (het wordt niet uitgevoerd) in een 64-bits PowerShell-host en worden de resultaten gerapporteerd. Wanneer het script wordt uitgevoerd op 32-bits, wordt het uitgevoerd in de 32-bits PowerShell-host.
  5. Selecteer Bereiktags. Bereiktags zijn optioneel. Gebruik op rollen gebaseerd toegangsbeheer (RBAC) en bereiktags voor gedistribueerde IT heeft meer informatie.

    Een bereiktag toevoegen:

    • Kies Bereiktags selecteren> Selecteer een bestaande bereiktag in de lijst >Selecteren.

    • Wanneer u klaar bent, selecteert u Volgende.

  6. Selecteer Toewijzingen>Selecteer groepen die u wilt opnemen. Er wordt een bestaande lijst met Microsoft Entra groepen weergegeven.

    • Selecteer een of meer groepen met de gebruikers van wie de apparaten het script ontvangen. Kies Selecteren. De groepen die u hebt gekozen, worden weergegeven in de lijst en ontvangen uw beleid.

      Opmerking

      PowerShell-scripts in Intune kunnen worden gericht op Microsoft Entra beveiligingsgroepen van apparaten of Microsoft Entra gebruikers. Wanneer u zich echter richt op WPJ-apparaten (Workplace Joined), kunnen alleen Microsoft Entra beveiligingsgroepen voor apparaten worden gebruikt (gebruikerstargeting wordt genegeerd).

    • Selecteer Volgende.

      PowerShell-script toewijzen aan of implementeren in apparaatgroepen in Microsoft Intune

  7. In Controleren en toevoegen wordt een overzicht weergegeven van de instellingen die u hebt geconfigureerd. Selecteer Toevoegen om het script op te slaan. Wanneer u Toevoegen selecteert, wordt het beleid geïmplementeerd voor de groepen die u hebt gekozen.

Scenario - Kan script niet uitvoeren

8.00 uur

  • Inchecken
  • Script ConfigScript01 uitvoeren
  • Script mislukt

9:00 UUR

  • Inchecken
  • Script ConfigScript01 uitvoeren
  • Script mislukt (aantal nieuwe pogingen = 1)

10.00 uur

  • Inchecken
  • Script ConfigScript01 uitvoeren
  • Script mislukt (aantal nieuwe pogingen = 2)

11.00 uur

  • Inchecken
  • Script ConfigScript01 uitvoeren
  • Script mislukt (aantal nieuwe pogingen = 3)

12.00 uur

  • Inchecken
  • Er worden geen extra pogingen gedaan om het ConfigScript01-scriptuit te voeren.
  • Als er geen extra wijzigingen worden aangebracht in het script, worden er geen extra pogingen gedaan om het script uit te voeren.

Uitvoeringsstatus bewaken

U kunt de uitvoeringsstatus van PowerShell-scripts voor gebruikers en apparaten in de portal bewaken.

Selecteer in PowerShell-scripts het script dat u wilt bewaken, kies Bewaken en kies vervolgens een van de volgende rapporten:

  • Apparaatstatus
  • Gebruikersstatus

Een script verwijderen

Klik in PowerShell-scripts met de rechtermuisknop op het script en selecteer Verwijderen.

Veelvoorkomende problemen en oplossingen

Probleem: PowerShell-scripts worden niet uitgevoerd

Mogelijke oplossingen:

  • De PowerShell-scripts worden niet bij elke aanmelding uitgevoerd. Ze worden uitgevoerd:

    • Wanneer het script is toegewezen aan een apparaat

    • Als u het script wijzigt, uploadt u het en wijst u het toe aan een gebruiker of apparaat

      Tip

      De Microsoft Intune-beheerextensie is een service die op het apparaat wordt uitgevoerd, net als elke andere service die wordt vermeld in de Services-app (services.msc). Nadat een apparaat opnieuw is opgestart, kan deze service ook opnieuw worden opgestart en controleren op toegewezen PowerShell-scripts met de Intune-service. Als de Microsoft Intune Management Extension-service is ingesteld op Handmatig, wordt de service mogelijk niet opnieuw opgestart nadat het apparaat opnieuw is opgestart.

  • Zorg ervoor dat apparaten zijn gekoppeld aan Microsoft Entra ID. Apparaten die alleen lid zijn van uw werkplek of organisatie (geregistreerd in Microsoft Entra ID) ontvangen de scripts niet.

  • Controleer of de Intune-beheerextensie is gedownload naar %ProgramFiles(x86)%\Microsoft Intune Management Extension.

  • Scripts worden niet uitgevoerd op Surface Hubs of Windows 10 in de S-modus.

  • Controleer de logboeken op eventuele fouten. Zie Intune logboeken voor beheeruitbreidingen (in dit artikel).

  • Voor mogelijke machtigingsproblemen moet u ervoor zorgen dat de eigenschappen van het PowerShell-script zijn ingesteld op Run this script using the logged on credentials. Controleer ook of de aangemelde gebruiker over de juiste machtigingen beschikt om het script uit te voeren.

  • Als u scriptproblemen wilt isoleren, kunt u het volgende doen:

    • Controleer de PowerShell-uitvoeringsconfiguratie op uw apparaten. Zie het PowerShell-uitvoeringsbeleid voor hulp.

    • Voer een voorbeeldscript uit met de Intune-beheerextensie. Maak bijvoorbeeld de C:\Scripts map en geef iedereen de volledige controle. Voer het volgende script uit:

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

      Als dit lukt, moet output.txt worden gemaakt en moet de tekst 'Script heeft gewerkt' worden opgenomen.

    • Als u de uitvoering van scripts wilt testen zonder Intune, voert u de scripts lokaal uit in het systeemaccount met behulp van het hulpprogramma psexec:

      psexec -i -s

    • Als het script meldt dat het is gelukt, maar het niet echt is gelukt, is het mogelijk dat uw antivirusservice AgentExecutor in sandbox gebruikt. In het volgende script wordt altijd een fout in Intune gerapporteerd. Als test kunt u dit script gebruiken:

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

      Als het script een succes meldt, bekijkt u de AgentExecutor.log om de foutuitvoer te bevestigen. Als het script wordt uitgevoerd, moet de lengte 2 zijn >.

    • Om de .error bestanden en .output vast te leggen, voert het volgende codefragment het script uit via AgentExecutor naar PowerShell x86 (C:\Windows\SysWOW64\WindowsPowerShell\v1.0). De logboeken worden voor uw beoordeling bijgehouden. Vergeet niet dat de Intune Management Extension de logboeken opschoont nadat het script is uitgevoerd:

      $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
      

Probleem: waarom worden scripts uitgevoerd terwijl Windows niet meer wordt beheerd?

Wanneer een Windows-apparaat met toegewezen scripts niet meer wordt beheerd, wordt de IME niet onmiddellijk verwijderd. De IME detecteert dat Windows niet wordt beheerd bij de volgende IME-check-in (meestal om de 8 uur) en annuleert script-uitvoeringen. In de tussentijd kunnen lokaal opgeslagen scripts worden uitgevoerd. Wanneer de IME niet kan inchecken, wordt het opnieuw ingecheckt voor maximaal 24 uur (apparaat-ontwaaktijd) en wordt vervolgens zichzelf van het Windows-apparaat verwijderd.

Volgende stappen

Uw profielen bewaken en problemen oplossen .