Använda PowerShell-skript på Windows 10/11-enheter i Intune

Använd Microsoft Intune-hanteringstillägget för att ladda upp PowerShell-skript i Intune. Kör sedan skripten på Windows 10 enheter. Hanteringstillägget förbättrar Hantering av Windows-enheter (MDM) och gör det enklare att övergå till modern hantering.

Viktigt

Om du vill ha stöd för utökade funktioner och felkorrigeringar använder du .NET Framework 4.7.2 eller senare med Intune-hanteringstillägget på Windows-klienter. Om en Windows-klient fortsätter att använda en tidigare version av .NET Framework fortsätter Intune-hanteringstillägget att fungera. Den .NET Framework 4.7.2 är tillgänglig från Windows Update och med den 10 juli 2018 från och med den 10 juli 2018, som ingår i Win10 1809 (RS5) och senare. Observera att flera versioner av de .NET Framework versionerna kan samexistera på en enhet.

Den här funktionen gäller för:

  • Windows 10 och senare (exklusive Windows 10 Home)

Obs!

När kraven för Intune-hanteringstillägget är uppfyllda installeras Intune-hanteringstillägget automatiskt när ett PowerShell-skript eller en Win32-app, Microsoft Store-appar, anpassade inställningar för efterlevnadsprinciper eller proaktiva åtgärder tilldelas användaren eller enheten. Mer information finns i Krav för Intune-hanteringstillägg.

PowerShell-skript, som inte stöds officiellt på WPJ-enheter (Workplace Join), kan distribueras till WPJ-enheter. Mer specifikt fungerar PowerShell-skript för enhetskontext på WPJ-enheter, men PowerShell-skript för användarkontext ignoreras avsiktligt. Skript för användarkontext ignoreras på WPJ-enheter och rapporteras inte till Microsoft Intune administrationscenter.

Gå över till modern hantering

Användarberäkning genomgår en digital omvandling. Traditionell IT fokuserar på en enda enhetsplattform, företagsägda enheter, användare som arbetar från kontoret och olika manuella, reaktiva IT-processer. Den moderna arbetsplatsen använder många plattformar som är användar- och företagsägda. Det gör att användarna kan arbeta var de än befinner sig och tillhandahåller automatiserade och proaktiva IT-processer.

MDM-tjänster, till exempel Microsoft Intune, kan hantera mobila och stationära enheter som kör Windows 10. Den inbyggda Windows 10-hanteringsklienten kommunicerar med Intune för att köra företagets hanteringsuppgifter. Det finns vissa uppgifter som du kan behöva, till exempel avancerad enhetskonfiguration och felsökning. För Win32-apphantering kan du använda win32-apphanteringsfunktionen på dina Windows 10 enheter.

Intune-hanteringstillägget kompletterar de inbyggda Windows 10 MDM-funktionerna. Du kan skapa PowerShell-skript som ska köras på Windows 10 enheter. Skapa till exempel ett PowerShell-skript som utför avancerade enhetskonfigurationer. Ladda sedan upp skriptet till Intune, tilldela skriptet till en Microsoft Entra grupp och kör skriptet. Du kan sedan övervaka körningsstatusen för skriptet från början till slut.

Innan du börjar

  • När skript anges till användarkontext och slutanvändaren har administratörsbehörighet körs PowerShell-skriptet som standard under administratörsbehörighet.

  • Slutanvändare behöver inte logga in på enheten för att köra PowerShell-skript.

  • Intune-hanteringstilläggsagenten kontrollerar efter varje omstart om det finns nya skript eller ändringar. När du har tilldelat principen till de Microsoft Entra grupperna körs PowerShell-skriptet och körningsresultaten rapporteras. När skriptet körs körs det inte igen om det inte sker en ändring i skriptet eller principen. Om skriptet misslyckas försöker Agenten för Intune-hanteringstillägget att köra skriptet igen tre gånger under de kommande tre på varandra följande incheckningarna av Intune-hanteringstilläggsagenten.

  • För delade enheter körs PowerShell-skriptet för varje ny användare som loggar in.

  • PowerShell-skript körs innan Win32-appar körs. Med andra ord körs PowerShell-skript först. Sedan körs Win32-appar.

  • PowerShell-skript överskrider tidsgränsen efter 30 minuter.

Viktigt

Metodtips för sekretessmedvetenhet när du använder PowerShell-skript och reparationsskript är följande:

  • Ta inte med någon typ av känslig information i skript (till exempel lösenord)
  • Inkludera inte personligt identifierbar information (PII) i skript
  • Använd inte skript för att samla in PII från enheter
  • Följ alltid bästa praxis för sekretess

Relaterad information finns i Reparation.

Förutsättningar

Intune-hanteringstillägget har följande krav. När de har uppfyllts installeras Intune-hanteringstillägget automatiskt när ett PowerShell-skript eller en Win32-app tilldelas användaren eller enheten.

  • Enheter som kör Windows 10 version 1607 eller senare. Om enheten registreras med massregistrering måste enheterna köra Windows 10 version 1709 eller senare. Intune-hanteringstillägget stöds inte på Windows 10 i S-läge, eftersom S-läge inte tillåter körning av appar som inte är store-appar.

  • Enheter som är anslutna till Microsoft Entra ID, inklusive:

  • Microsoft Entra registrerad/arbetsplatsansluten (WPJ): Enheter som är registrerade i Microsoft Entra ID finns i Workplace Join as a seamless second factor authentication (Arbetsplatsanslutning som en sömlös andra faktorsautentisering) för mer information. Vanligtvis är dessa BYOD-enheter (Bring Your Own Device) som har lagts till ett arbets- eller skolkonto via inställningskonton>>Åtkomst till arbete eller skola.

  • Enheter som registrerats i Intune, inklusive:

    • Enheter som registrerats i en grupprincip (GPO). Mer information finns i Registrera en Windows 10 enhet automatiskt med hjälp av grupprincip.

    • Enheter som registrerats manuellt i Intune, vilket är när:

      • Automatisk registrering till Intune aktiveras i Microsoft Entra ID. Användare loggar in på enheter med ett lokalt användarkonto och ansluter enheten manuellt till Microsoft Entra ID. Sedan loggar de in på enheten med sitt Microsoft Entra konto.

      ELLER

      • Användaren loggar in på enheten med sitt Microsoft Entra konto och registreras sedan i Intune.
    • Samhanterade enheter som använder Configuration Manager och Intune. När du installerar Win32-appar kontrollerar du att arbetsbelastningen Appar är inställd på Pilot Intune eller Intune. PowerShell-skript körs även om arbetsbelastningen Appar är inställd på Configuration Manager. Intune-hanteringstillägget distribueras till en enhet när du riktar ett PowerShell-skript mot enheten. Kom ihåg att enheten måste vara en Microsoft Entra ID eller Microsoft Entra hybridkopplad enhet. Och den måste köras Windows 10 version 1607 eller senare. Se följande artiklar för vägledning:

  • Skript som distribueras till klienter som kör Intune-hanteringstillägget kan inte köras om enhetens systemklocka är mycket inaktuell efter månader eller år. När systemklockan har uppdaterats körs skriptet som förväntat.

Obs!

Information om hur du använder virtuella Windows 10-datorer finns i Använda Windows 10 virtuella datorer med Intune.

Skapa en skriptprincip och tilldela den

  1. Logga in på Microsoft Intune administrationscenter.

  2. Välj Enhetsskript>>Lägg till>Windows 10 och senare.

    Skärmbild som visar hur du skapar ett nytt skript för en Windows 10 enhet.

  3. I Grundläggande anger du följande egenskaper och väljer Nästa:

    • Namn: Ange ett namn för PowerShell-skriptet.
    • Beskrivning: Ange en beskrivning av PowerShell-skriptet. Denna inställning är valfri, men rekommenderas.
  4. I Skriptinställningar anger du följande egenskaper och väljer Nästa:

    • Skriptplats: Bläddra till PowerShell-skriptet. Skriptet måste vara mindre än 200 KB (ASCII).

    • Kör det här skriptet med de inloggade autentiseringsuppgifterna: Välj Ja (standard) för att köra skriptet med användarens autentiseringsuppgifter på enheten. Välj Nej för att köra skriptet i systemkontexten. Många administratörer väljer Ja. Om skriptet krävs för att köras i systemkontexten väljer du Nej.

    • Framtvinga kontroll av skriptsignatur: Välj Ja (standard) om skriptet måste signeras av en betrodd utgivare. Välj Nej om det inte finns något krav på att skriptet ska signeras.

    • Kör skript i 64-bitars PowerShell-värd: Välj Ja om du vill köra skriptet på en 64-bitars PowerShell-värd i en 64-bitars klientarkitektur. Välj Nej (standard) kör skriptet på en 32-bitars PowerShell-värd.

      När du anger Ja eller Nej använder du följande tabell för nytt och befintligt principbeteende:

      Köra skript i 64-bitars värd Klientarkitektur Nytt skript Befintligt principskript
      Nej 32-bitars 32-bitars PowerShell-värd stöds Körs endast i 32-bitars PowerShell-värd, vilket fungerar med 32-bitars- och 64-bitarsarkitekturer.
      Ja 64-bitars Kör skript i 64-bitars PowerShell-värd för 64-bitars arkitekturer. När det körs på 32-bitars körs skriptet på en 32-bitars PowerShell-värd. Kör skript i 32-bitars PowerShell-värd. Om den här inställningen ändras till 64-bitars öppnas skriptet (det körs inte) på en 64-bitars PowerShell-värd och rapporterar resultatet. När det körs på 32-bitars körs skriptet i 32-bitars PowerShell-värd.
  5. Välj Omfångstaggar. Omfångstaggar är valfria. Mer information finns i Använda rollbaserad åtkomstkontroll (RBAC) och omfångstaggar för distribuerad IT.

    Så här lägger du till en omfångstagg:

    1. Välj Välj omfångstaggar> välj en befintlig omfångstagg i listan >Välj.

    2. När du är klar väljer du Nästa.

  6. Välj TilldelningarVälj grupper som ska inkluderas>. En befintlig lista över Microsoft Entra grupper visas.

    1. Välj en eller flera grupper som innehåller de användare vars enheter får skriptet. Välj Välj. De grupper som du har valt visas i listan och får din princip.

      Obs!

      PowerShell-skript i Intune kan riktas mot Microsoft Entra enhetssäkerhetsgrupper eller Microsoft Entra användarsäkerhetsgrupper. Men när du riktar in dig på wpj-enheter (workplace joined) kan endast Microsoft Entra enhetssäkerhetsgrupper användas (användarmål ignoreras). Mer information finns i Win32-appstöd för WPJ-enheter (Workplace Join).

    2. Välj Nästa.

      Tilldela eller distribuera PowerShell-skript till enhetsgrupper i Microsoft Intune

  7. I Granska + lägg till visas en sammanfattning av de inställningar som du har konfigurerat. Välj Lägg till för att spara skriptet. När du väljer Lägg till distribueras principen till de grupper som du har valt.

Det gick inte att köra skriptexemplet

08.00

  • Checka in
  • Kör skriptet ConfigScript01
  • Skriptet misslyckas

09.00

  • Checka in
  • Kör skriptet ConfigScript01
  • Skriptet misslyckas (antal återförsök = 1)

10:00

  • Checka in
  • Kör skriptet ConfigScript01
  • Skriptet misslyckas (antal återförsök = 2)

11.00

  • Checka in
  • Kör skriptet ConfigScript01
  • Skriptet misslyckas (antal återförsök = 3)

12.00

  • Checka in
  • Inga ytterligare försök görs att köra skriptet ConfigScript01.
  • Om inga ytterligare ändringar görs i skriptet görs inga ytterligare försök att köra skriptet.

Övervaka körningsstatus

Du kan övervaka körningsstatusen för PowerShell-skript för användare och enheter i portalen.

I PowerShell-skript väljer du det skript som ska övervakas, väljer Övervaka och väljer sedan någon av följande rapporter:

  • Enhetsstatus
  • Användarstatus

Loggar för Intune-hanteringstillägg

Agentloggar på klientdatorn finns vanligtvis i C:\ProgramData\Microsoft\IntuneManagementExtension\Logs. Du kan använda CMTrace.exe för att visa dessa loggfiler.

Skärmbild eller exempel på cmtrace-agentloggar i Microsoft Intune

Ta bort ett skript

Högerklicka på skriptet i PowerShell-skript och välj Ta bort.

Vanliga problem och lösningar

Problem: Intune-hanteringstillägget laddas inte ned

Möjliga lösningar:

  • Enheten är inte ansluten till Microsoft Entra ID. Se till att enheterna uppfyller kraven (i den här artikeln).
  • Det finns inga PowerShell-skript eller Win32-appar tilldelade till de grupper som användaren eller enheten tillhör.
  • Enheten kan inte checka in med Intune-tjänsten. Det finns till exempel ingen Internetåtkomst, ingen åtkomst till Windows Push Notification Services (WNS) och så vidare.
  • Enheten är i S-läge. Intune-hanteringstillägget stöds inte på enheter som körs i S-läge.

Om du vill se om enheten har registrerats automatiskt kan du:

  1. Gå till Inställningar Konton>>Åtkomst till arbete eller skola.
  2. Välj den anslutna kontoinformationen>.
  3. Under Avancerad diagnostikrapport väljer du Skapa rapport.
  4. MDMDiagReport Öppna i en webbläsare.
  5. Sök efter egenskapen MDMDeviceWithAAD . Om egenskapen finns registreras enheten automatiskt. Om den här egenskapen inte finns registreras inte enheten automatiskt.

Aktivera Windows 10 automatisk registrering innehåller stegen för att konfigurera automatisk registrering i Intune.

Problem: PowerShell-skript körs inte

Möjliga lösningar:

  • PowerShell-skripten körs inte vid varje inloggning. De körs:

    • När skriptet har tilldelats till en enhet

    • Om du ändrar skriptet laddar du upp det och tilldelar skriptet till en användare eller enhet

      Tips

      Microsoft Intune-hanteringstillägget är en tjänst som körs på enheten, precis som andra tjänster som anges i services-appen (services.msc). När en enhet har startats om kan den här tjänsten också startas om och söka efter tilldelade PowerShell-skript med Intune-tjänsten. Om tjänsten Microsoft Intune Management Extension är inställd på Manuell kan det hända att tjänsten inte startas om efter att enheten har startats om.

  • Kontrollera att enheterna är anslutna till Microsoft Entra ID. Enheter som endast är anslutna till din arbetsplats eller organisation (registrerade i Microsoft Entra ID) får inte skripten.

  • Bekräfta att Intune-hanteringstillägget har laddats ned till %ProgramFiles(x86)%\Microsoft Intune Management Extension.

  • Skript körs inte på Surface Hubs eller Windows 10 i S-läge.

  • Granska loggarna efter eventuella fel. Se Loggar för Intune-hanteringstillägg (i den här artikeln).

  • Kontrollera att egenskaperna för PowerShell-skriptet är inställda Run this script using the logged on credentialspå för eventuella behörighetsproblem. Kontrollera också att den inloggade användaren har rätt behörigheter för att köra skriptet.

  • Om du vill isolera skriptproblem kan du:

    • Granska PowerShell-körningskonfigurationen på dina enheter. Mer information finns i PowerShell-körningsprincipen .

    • Kör ett exempelskript med intune-hanteringstillägget. Skapa till exempel C:\Scripts katalogen och ge alla fullständig kontroll. Kör följande skript:

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

      Om det lyckas bör output.txt skapas och ska innehålla texten "Skriptet fungerade".

    • Om du vill testa skriptkörning utan Intune kör du skripten i systemkontot med hjälp av psexec-verktyget lokalt:

      psexec -i -s

    • Om skriptet rapporterar att det lyckades, men det inte lyckades, är det möjligt att antivirustjänsten kan vara sandbox-tjänsten AgentExecutor. Följande skript rapporterar alltid ett fel i Intune. Som ett test kan du använda det här skriptet:

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

      Om skriptet rapporterar ett lyckat resultat kan du titta på AgentExecutor.log för att bekräfta felutdata. Om skriptet körs ska längden vara >2.

    • För att samla in .error filerna och .output kör följande kodfragment skriptet via AgentExecutor till PowerShell x86 (C:\Windows\SysWOW64\WindowsPowerShell\v1.0). Den behåller loggarna för din granskning. Kom ihåg att Intune-hanteringstillägget rensar loggarna när skriptet har körts:

      $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
      

Nästa steg

Övervaka och felsöka dina profiler.