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 dessa skript 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. .NET Framework 4.7.2 är tillgänglig från Windows Update den 10 juli 2018, som ingår i Win10 1809 (RS5) och senare. Observera att flera versioner av .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 administrationscentret för Microsoft Intune.
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 inbyggda Windows 10 MDM-funktioner. 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 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örhandskrav
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 i Windows 10 i S-läge, eftersom S-läget inte tillåter körning av appar som inte är store-appar.
Enheter som är anslutna till Microsoft Entra-ID, inklusive:
Microsoft Entra-hybridanslutning: Enheter som är anslutna till Microsoft Entra-ID och även anslutna till lokal Active Directory (AD). Mer information finns i Planera implementeringen av Microsoft Entra-hybridanslutningen .
Microsoft Entra-registrerad/arbetsplatsansluten (WPJ): Enheter som registrerats 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 grupprincip .
Enheter som registrerats manuellt i Intune, vilket är när:
- Automatisk registrering till Intune är aktiverat 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 en Hybrid-ansluten Microsoft Entra-enhet. Och den måste köra 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 virtuella Windows 10-datorer med Intune.
Skapa en skriptprincip och tilldela den
Logga in på Microsoft Intune administrationscenter.
Välj Enhetsskript>och reparation>Plattformsskript>Lägg till>Windows 10 och senare.
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.
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.
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:
Välj Välj omfångstaggar> välj en befintlig omfångstagg i listan >Välj.
När du är klar väljer du Nästa.
Välj TilldelningarVälj grupper som ska inkluderas>. En befintlig lista över Microsoft Entra-grupper visas.
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 till 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).
Välj Nästa.
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.
Dessutom kan du använda loggfilen AppWorkload.log för att felsöka och analysera Win32-apphanteringshändelser på klienten. Den här loggfilen innehåller all loggningsinformation som rör appdistributionsaktiviteter som utförs av IME.
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:
- Gå till Inställningar Konton>>Åtkomst till arbete eller skola.
- Välj den anslutna kontoinformationen>.
- Under Avancerad diagnostikrapport väljer du Skapa rapport.
-
MDMDiagReport
Öppna i en webbläsare. - Sök efter egenskapen MDMDeviceWithAAD . Om egenskapen finns registreras enheten automatiskt. Om den här egenskapen inte finns registreras inte enheten automatiskt.
Aktivera automatisk registrering i Windows 10 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 alla 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 Microsoft Intune Management Extension-tjänsten är inställd på Manuell kanske 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 credentials
på 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