Kommentar
Å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.
Gäller för: Configuration Manager (aktuell gren)
Configuration Manager har en integrerad möjlighet att köra PowerShell-skript. PowerShell har fördelen att skapa sofistikerade, automatiserade skript som förstås och delas med en större community. Skripten förenklar skapandet av anpassade verktyg för att administrera programvara och låter dig utföra vardagliga uppgifter snabbt, så att du kan få stora jobb gjorda enklare och mer konsekvent.
Obs!
I version 2006 och tidigare aktiverar Configuration Manager inte den här valfria funktionen som standard. Du måste aktivera den här funktionen innan du använder den. Mer information finns i Aktivera valfria funktioner från uppdateringar.
Med den här integreringen i Configuration Manager kan du använda funktionen Kör skript för att göra följande:
- Skapa och redigera skript för användning med Configuration Manager.
- Hantera skriptanvändning via roller och säkerhetsomfattningar.
- Mappstöd för skript.
- Kör skript på samlingar eller enskilda lokalt hanterade Windows-datorer.
- Schemalägg skriptkörning i UTC på samlingar eller enskilda lokalt hanterade Windows-datorer.
- Få snabba aggregerade skriptresultat från klientenheter.
- Övervaka skriptkörning och visa rapporteringsresultat från skriptutdata.
Varning
- Med tanke på kraften i skript påminner vi dig om att vara avsiktlig och försiktig med deras användning. Vi har byggt in ytterligare skyddsåtgärder för att hjälpa dig; segregerade roller och omfattningar. Se till att validera riktigheten i skript innan du kör dem och bekräfta att de kommer från en betrodd källa för att förhindra oavsiktlig körning av skript. Var uppmärksam på utökade tecken eller andra fördunklingar och utbilda dig själv om hur du skyddar skript. Lär dig om säkerhet för PowerShell-skript
- Vissa program mot skadlig kod kan oavsiktligt utlösa händelser mot funktionerna Configuration Manager Run Scripts eller CMPivot. Vi rekommenderar att du undantar %windir%\CCM\ScriptStore så att programvaran mot skadlig kod tillåter att dessa funktioner körs utan störningar.
Förhandskrav
- För att kunna köra PowerShell-skript måste klienten köra PowerShell version 3.0 eller senare. Men om ett skript som du kör innehåller funktioner från en senare version av PowerShell måste klienten som du kör skriptet köra den versionen av PowerShell på.
- Configuration Manager klienter måste köra klienten från 1706-versionen eller senare för att kunna köra skript.
- Om du vill använda skript måste du vara medlem i lämplig Konfigurationshanteraren säkerhetsroll.
- Om du vill importera och skapa skript måste ditt konto ha behörigheten Skapa för SMS-skript.
- För att godkänna eller neka skript – Ditt konto måste ha behörigheten Godkänn för SMS-skript.
- Om du vill köra skript – Ditt konto måste ha körningsskriptbehörigheter för samlingar.
Mer information om Configuration Manager säkerhetsroller:
Säkerhetsomfattningar för körningsskript
Säkerhetsroller för körningsskript
Grunderna i rollbaserad administration.
Begränsningar
Kör skript stöder för närvarande:
- Skriptspråk: PowerShell
- Parametertyper: heltal, sträng och lista.
Varning
Tänk på att när du använder parametrar öppnar det en yta för potentiell risk för PowerShell-inmatningsattacker. Det finns olika sätt att åtgärda och komma runt problemet, till exempel att använda reguljära uttryck för att verifiera parameterindata eller använda fördefinierade parametrar. Vanlig bästa praxis är att inte inkludera hemligheter i dina PowerShell-skript (inga lösenord osv.). Läs mer om säkerhet för PowerShell-skript
Kör skriptförfattare och godkännare
Kör skript använder begreppet skriptförfattare och skriptgodkännare som separata roller för implementering och körning av ett skript. Genom att ha rollerna författare och godkännare åtskilda kan du utföra en viktig processkontroll för det kraftfulla verktyg som Run Scripts är. Det finns ytterligare en roll för skriptlöpare som tillåter körning av skript, men inte skapande eller godkännande av skript. Se Skapa säkerhetsroller för skript.
Scripts-rollkontroll
Som standard kan användare inte godkänna ett skript som de har skapat. Eftersom skript är kraftfulla, mångsidiga och potentiellt distribuerade till många enheter kan du separera rollerna mellan den person som skapar skriptet och den person som godkänner skriptet. De här rollerna ger ytterligare en säkerhetsnivå mot att köra ett skript utan tillsyn. Du kan inaktivera sekundära godkännanden, för att underlätta testningen.
Godkänna eller neka ett skript
Skript måste godkännas av skriptgodkännarrollen innan de kan köras. Så här godkänner du ett skript:
- I konsolen Configuration Manager klickar du på Programvarubibliotek.
- I arbetsytan Programvarubibliotek klickar du på Skript.
- I skriptlistan väljer du det skript som du vill godkänna eller neka och klickar sedan på Godkänn/Neka i gruppen Skript på fliken Start.
- I dialogrutan Godkänn eller neka skript väljer du Godkänn eller Neka för skriptet. Du kan också ange en kommentar om ditt beslut. Om du nekar ett skript kan det inte köras på klientenheter.
- Slutför guiden. I listan Skript visas kolumnen Godkännandetillstånd som ändrats beroende på vilken åtgärd du har vidtagit.
Tillåt användare att godkänna sina egna skript
Det här godkännandet används främst för testfasen av skriptutvecklingen.
- I konsolen Configuration Manager klickar du på Administration.
- På arbetsytan Administration expanderar du Webbplatskonfiguration och klickar sedan på Platser.
- Välj din webbplats i listan över webbplatser och klicka sedan på Inställningar för hierarki i gruppen Webbplatser på fliken Start.
- På fliken Allmänt i dialogrutan Egenskaper för hierarkiinställningar avmarkerar du kryssrutan Skriptförfattare behöver ytterligare skriptgodkännare.
Viktigt
Du bör inte låta en manusförfattare godkänna sina egna manus. Det bör endast tillåtas i en labbmiljö. Överväg noga den potentiella effekten av att ändra den här inställningen i en produktionsmiljö.
Säkerhetsomfattningar
Kör skript använder säkerhetsomfattningar, en befintlig funktion i Configuration Manager, för att styra skriptförfattande och körning genom att tilldela taggar som representerar användargrupper. Mer information om hur du använder säkerhetsomfattningar finns i Konfigurera rollbaserad administration för Configuration Manager.
Skapa säkerhetsroller för skript
De tre säkerhetsrollerna som används för att köra skript skapas inte som standard i Configuration Manager. Följ anvisningarna för att skapa rollerna scriptrunners, scriptförfattare och scriptgodkännare.
- I konsolen Configuration Manager går du till Administration>Säkerhetssäkerhetsroller>
- Högerklicka på en roll och klicka på Kopiera. Rollen du kopierar har redan tilldelade behörigheter. Se till att du bara tar med dig de behörigheter som du vill ha.
- Ge den anpassade rollen ett namn och en beskrivning.
- Tilldela säkerhetsrollen de behörigheter som beskrivs nedan.
Behörigheter för säkerhetsroll
Rollnamn: Script Runners
- Beskrivning: De här behörigheterna gör det möjligt för den här rollen att endast köra skript som tidigare har skapats och godkänts av andra roller.
- Behörigheter: Kontrollera att följande är inställt på Ja.
| Kategori | Behörighet | Tillstånd |
|---|---|---|
| Samling | Kör skript | Ja |
| Webbplats | Läsa | Ja |
| SMS-skript | Läsa | Ja |
Rollnamn: Skriptförfattare
- Beskrivning: De här behörigheterna gör att den här rollen kan skapa skript, men de kan inte godkänna eller köra dem.
- Behörigheter: Se till att följande behörigheter har angetts.
| Kategori | Behörighet | Tillstånd |
|---|---|---|
| Samling | Kör skript | Nej |
| Webbplats | Läsa | Ja |
| SMS-skript | Skapa | Ja |
| SMS-skript | Läsa | Ja |
| SMS-skript | Radera | Ja |
| SMS-skript | Ändra | Ja |
Rollnamn: Godkännare av skript
- Beskrivning: De här behörigheterna gör att den här rollen kan godkänna skript, men de kan inte skapa eller köra dem.
- Behörigheter: Se till att följande behörigheter anges.
| Kategori | Behörighet | Tillstånd |
|---|---|---|
| Samling | Kör skript | Nej |
| Webbplats | Läsa | Ja |
| SMS-skript | Läsa | Ja |
| SMS-skript | Godkänn | Ja |
| SMS-skript | Ändra | Ja |
Exempel på SMS-skriptbehörigheter för rollen skriptförfattare
Mappstöd för skript
Från och med version 2403 kan du ordna skript med hjälp av mappar. Den här ändringen möjliggör bättre kategorisering och hantering av skript.
Öppna konsolen Configuration Manager och gå till arbetsytan Programvarubibliotek. I menyfliksområdet eller högerklicksmenyn, i Skript, väljer du bland följande alternativ:
- Skapa mapp
- Ta bort mapp
- Byt namn på mapp
- Flytta mappar
- Ange säkerhetsomfattningar
Skapa ett skript
- I konsolen Configuration Manager klickar du på Programvarubibliotek.
- I arbetsytan Programvarubibliotek klickar du på Skript.
- Klicka på Skapa skript i gruppen Skapa på fliken Start.
- På sidan Skript i guiden Skapa skript konfigurerar du följande inställningar:
- Skriptnamn – Ange ett namn för skriptet. Även om du kan skapa flera skript med samma namn blir det svårare för dig att hitta det skript du behöver i Configuration Manager-konsolen med hjälp av dubblettnamn.
- Skriptspråk – För närvarande stöds endast PowerShell-skript.
- Importera – Importera ett PowerShell-skript till konsolen. Skriptet visas i fältet Skript .
- Rensa – tar bort det aktuella skriptet från skriptfältet.
- Skript – Visar det importerade skriptet. Du kan redigera skriptet i det här fältet efter behov.
- Slutför guiden. Det nya skriptet visas i skriptlistan med statusen Väntar på godkännande. Innan du kan köra det här skriptet på klientenheter måste du godkänna det.
Viktigt
Undvik att skripta en omstart av enheten eller en omstart av Configuration Manager -agenten när du använder funktionen Kör skript. Om du gör det kan det leda till ett tillstånd för kontinuerlig omstart. Vid behov finns det förbättringar av klientmeddelandefunktionen som gör det möjligt att starta om enheter. Kolumnen för väntande omstart kan hjälpa dig att identifiera enheter som behöver en omstart.
Skriptparametrar
Att lägga till parametrar i ett skript ger ökad flexibilitet i arbetet. Du kan inkludera upp till 10 parametrar. Följande beskriver den aktuella funktionen Kör skript med skriptparametrar för; Sträng, Heltalsdatatyper . Det finns även listor med förinställda värden. Om skriptet har datatyper som inte stöds får du en varning.
I dialogrutan Skapa skript klickar du på Skriptparametrar under Skript.
Var och en av skriptets parametrar har en egen dialogruta för att lägga till ytterligare information och validering. Om det finns en standardparameter i skriptet räknas den upp i parametergränssnittet och du kan ange den. Configuration Manager skriver inte över standardvärdet eftersom det aldrig ändrar skriptet direkt. Du kan tänka på detta som att "förifyllda föreslagna värden" tillhandahålls i användargränssnittet, men Configuration Manager ger inte åtkomst till "standardvärden" vid körning. Du kan komma runt problemet genom att redigera skriptet så att det får rätt standardinställningar.
Viktigt
Parametervärden får inte innehålla ett enkelt citattecken.
Det finns ett känt problem där parametervärden som innehåller eller omges av enkla citattecken inte skickas korrekt till skriptet. När du anger standardparametervärden som innehåller ett blanksteg i ett skript använder du dubbla citattecken i stället. När du anger standardparametervärden när ett skript skapas eller körs är det inte nödvändigt att omge standardvärdet med antingen dubbla eller enkla citattecken oavsett om värdet innehåller ett blanksteg eller inte.
Validering av parametrar
Varje parameter i skriptet har dialogrutan Egenskaper för skriptparameter där du kan lägga till validering för den parametern. När du har lagt till validering bör du få felmeddelanden om du anger ett värde för en parameter som inte uppfyller valideringen.
Exempel: Förnamn
I det här exemplet kan du ange egenskaperna för strängparametern, FirstName.
Valideringsavsnittet i dialogrutan Egenskaper för skriptparameter innehåller följande fält som du kan använda:
- Minsta längd – minsta antal tecken i fältet Förnamn .
- Maximal längd – maximalt antal tecken i fältet Förnamn
- RegEx – förkortning för reguljärt uttryck. Mer information om hur du använder reguljära uttryck finns i nästa avsnitt, Använda verifiering av reguljära uttryck.
- Anpassat fel – användbart för att lägga till egna anpassade felmeddelanden som ersätter alla systemverifieringsfelmeddelanden.
Använda validering av reguljära uttryck
Ett reguljärt uttryck är en kompakt form av programmering för att kontrollera en teckensträng mot en kodad validering. Du kan till exempel kontrollera om det inte finns någon versal bokstav i fältet Förnamn genom att placera [^A-Z] i fältet RegEx .
Bearbetningen av reguljära uttryck för den här dialogrutan stöds av .NET Framework. Vägledning om hur du använder reguljära uttryck finns i .NET Regular Expression och Regular Expression Language.
Skriptexempel
Här följer några exempel som illustrerar skript som du kanske vill använda med den här funktionen.
Skapa en ny mapp och fil
Med det här skriptet skapas en ny mapp och en fil i mappen, utifrån dina namngivningsuppgifter.
Param(
[Parameter(Mandatory=$True)]
[string]$FolderName,
[Parameter(Mandatory=$True)]
[string]$FileName
)
New-Item $FolderName -type directory
New-Item $FileName -type file
Hämta OS-version
Det här skriptet använder WMI för att fråga datorn om dess OS-version.
Write-Output (Get-WmiObject -Class Win32_operatingSystem).Caption
Redigera eller kopiera PowerShell-skript
Du kan redigera eller kopiera ett befintligt PowerShell-skript som används med funktionen Kör skript. Istället för att återskapa ett skript som du behöver ändra kan du nu redigera det direkt. Båda åtgärderna använder samma guideupplevelse som när du skapar ett nytt skript. När du redigerar eller kopierar ett skript bevarar Configuration Manager inte godkännandetillståndet.
Tips
Redigera inte skript som körs aktivt på klienter. De slutför inte körningen av det ursprungliga skriptet och du kanske inte får de avsedda resultaten från dessa klienter.
Redigera ett skript
- Gå till noden Skript under arbetsytan Programvarubibliotek .
- Markera skriptet som du vill redigera och klicka sedan på Redigera i menyfliksområdet.
- Ändra eller importera om skriptet på sidan Skriptinformation .
- Klicka på Nästa för att visa sammanfattningen och sedan på Stäng när du är klar med redigeringen.
Kopiera ett skript
- Gå till noden Skript under arbetsytan Programvarubibliotek .
- Markera skriptet som ska kopieras och klicka sedan på Kopiera i menyfliksområdet.
- Byt namn på skriptet i fältet Skriptnamn och gör eventuella ytterligare redigeringar som du kan behöva.
- Klicka på Nästa för att visa sammanfattningen och sedan på Stäng när du är klar med redigeringen.
Kör ett skript
När ett skript har godkänts kan det köras mot en enskild enhet eller en samling. När du börjar köra skriptet startas det snabbt via ett system med hög prioritet som når en tidsgräns på en timme. Resultatet av skriptet returneras sedan med hjälp av ett tillståndsmeddelandesystem.
Så här väljer du en samling mål för skriptet:
- I konsolen Configuration Manager klickar du på Tillgångar och efterlevnad.
- På arbetsytan Tillgångar och efterlevnad klickar du på Enhetssamlingar.
- I listan Enhetssamlingar klickar du på den samling enheter som du vill köra skriptet på.
- Välj en valfri samling och klicka på Kör skript.
- På sidan Skript i guiden Kör skript väljer du ett skript i listan. Endast godkända skript visas.
- Klicka på Nästa och slutför guiden.
Viktigt
Om ett skript inte körs, till exempel för att en målenhet stängs av under en timme, måste du köra det igen.
Körning av schemalagda skript
Från och med Configuration Manager aktuella grenversion 2309 kan du nu schemalägga skriptkörning i UTC.
Schemalägg körning av skript på en samling:
I konsolen Configuration Manager klickar du på Tillgångar och efterlevnad.
På arbetsytan Tillgångar och efterlevnad klickar du på Enhetssamlingar.
I listan Enhetssamlingar klickar du på den samling enheter där du vill schemalägga skriptet.
Välj en valfri samling och klicka på Kör skript.
På sidan Schemaläggning, Schemalägg skriptet som ska köras med kryssrutan och ange Schemalägg tid i UTC.
Kontrollera informationen som visas på sammanfattningssidan.
Klicka på Nästa och slutför guiden.
Obs!
Högst tjugofem schemalagda skript kommer att bearbetas var 5:e minut.
Körning av måldator
Skriptet körs som system - eller datorkonto på målklienten/klienterna. Det här kontot har begränsad nätverksåtkomst. All åtkomst till fjärrsystem och platser av skriptet måste etableras i enlighet med detta.
Övervakning av skript
När du har startat körningen av ett skript på en samling enheter använder du följande procedur för att övervaka åtgärden. Du kan övervaka ett skript i realtid medan det körs och senare återgå till status och resultat för en viss körning av körningsskript. Skriptstatusdata rensas som en del av underhållsaktiviteten Ta bort äldre klientåtgärder eller borttagning av skriptet.
I konsolen Configuration Manager klickar du på Övervakning.
Klicka på Skriptstatus på arbetsytan Övervakning.
I listan Skriptstatus visar du resultaten för varje skript som du körde på klientenheter. Skriptets slutkod 0 anger vanligtvis att skriptet har körts.
Schemalägg skriptövervakning för en samling
I konsolen Configuration Manager klickar du på Övervakning.
Klicka på noden Schemalagda skript på arbetsytan Övervakning.
En ny rad visas i listan över schemalagda skript.
Kontrollera att en ny rad har visats i listan med schemalagda skript. Kolumnen delstat ska ha värdet Schemalagd. Kolumnen ClientOperationId ska vara tom. Kontrollera att de andra kolumnerna som Skriptnamn, Schematid osv. har lämpliga värden.
Uppdatera noden Schemalagda skript efter schematiden. Kolumnen state ska ha värdet Successfully initiated client operation. Kolumnen ClientOperationId ska ha ett heltal.
Klicka på noden Skriptstatus på arbetsytan Övervakning. Kontrollera att den nya raden har visats i listan och att ClientOperationId är lika med ClientOperationId från noden Schemalagda skript .
Klicka på Visa status och se till att skriptets utdata visas.
Skriptutdata
Klientens returskriptutdata med JSON-formatering genom att skicka skriptets resultat till cmdleten ConvertTo-Json. JSON-formatet returnerar konsekvent läsbara skriptutdata. För skript som inte returnerar objekt som utdata konverterar cmdleten ConvertTo-Json utdata till en enkel sträng som klienten returnerar i stället för JSON.
Skript som får ett okänt resultat, eller där klienten var offline, visas inte i diagrammen eller datauppsättningen.
Undvik att returnera stora skriptutdata eftersom det trunkeras till 4 kB.
Konvertera ett uppräkningsobjekt till ett strängvärde i skript så att de visas korrekt i JSON-formatering.
Du kan visa detaljerade skriptutdata i rått eller strukturerat JSON-format. Den här formateringen gör resultatet lättare att läsa och analysera. Om skriptet returnerar giltig JSON-formaterad text eller om utdata kan konverteras till JSON med hjälp av PowerShell-cmdleten ConvertTo-Json kan du visa detaljerade utdata som antingen JSON-utdata eller råutdata. Annars är det enda alternativet Skriptutdata.
Exempel: Skriptutdata kan konverteras till giltig JSON
Kommando: $PSVersionTable.PSVersion
Major Minor Build Revision
----- ----- ----- --------
5 1 16299 551
Exempel: Skriptutdata är inte giltiga JSON
Kommando: Write-Output (Get-WmiObject -Class Win32_OperatingSystem).Caption
Microsoft Windows 10 Enterprise
Loggfiler
På klienten, som standard i C:\Windows\CCM\logs:
- Scripts.log
- CcmMessaging.log
På MP, som standard i C:\SMS_CCM\Logs:
- MP_RelayMsgMgr.log
På platsservern som standard i C:\Program Files\Configuration Manager\Logs:
- SMS_Message_Processing_Engine.log
Automatisera med Windows PowerShell
Du kan använda följande PowerShell-cmdlets för att automatisera några av de här uppgifterna:
- Approve-CMScript
- Deny-CMScript
- Get-CMScript
- Invoke-CMScript
- New-CMScript
- Remove-CMScript
- Set-CMScript