Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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.
Obs!
Information om Intune-hanteringstillägget för Windows finns i Intune-hanteringstillägget för Windows.
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ägget 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 Intune-hanteringstillägget skriptet tre gånger under de kommande tre på varandra följande incheckningarna för Intune hanteringstillägg.
Ett PowerShell-skript som tilldelats enheten körs för varje ny användare som loggar in, förutom på SKU:er med flera sessioner där användarincheckning är inaktiverat.
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 installeras automatiskt när en PowerShell-skriptapp tilldelas till användaren eller enheten. Mer information finns i Intune-hanteringstillägget för Windows.
Viktigt
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.
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 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).
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.
Scenario – Det gick inte att köra skriptet
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
Ta bort ett skript
Högerklicka på skriptet i PowerShell-skript och välj Ta bort.
Vanliga problem och lösningar
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 Intune loggar för 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 hjälp av 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
Problem: Varför körs skript trots att Windows inte längre hanteras?
När en Windows-enhet med tilldelade skript inte längre hanteras tas inte IME bort omedelbart. IME identifierar att Windows inte hanteras vid nästa IME-incheckning (vanligtvis var 8:e timme) och avbryter skriptkörningar. Under tiden kan alla lokalt lagrade skript köras. När IME inte kan checka in försöker den checka in igen i upp till 24 timmar (enhetens aktiva tid) och tar sedan bort sig själv från Windows-enheten.