PowerShell-scripts maken en uitvoeren vanuit de Configuration Manager console
Van toepassing op: Configuration Manager (current branch)
Configuration Manager beschikt over een geïntegreerde mogelijkheid om PowerShell-scripts uit te voeren. PowerShell heeft het voordeel van het maken van geavanceerde, geautomatiseerde scripts die worden begrepen en gedeeld met een grotere community. De scripts vereenvoudigen het bouwen van aangepaste hulpprogramma's voor het beheren van software en bieden u de mogelijkheid om alledaagse taken snel uit te voeren, zodat u eenvoudiger en consistenter grote taken kunt uitvoeren.
Notitie
In versie 2006 en eerder Configuration Manager deze optionele functie niet standaard ingeschakeld. U moet deze functie inschakelen voordat u deze kunt gebruiken. Zie voor meer informatie Enable optional features from updates.
Met deze integratie in Configuration Manager kunt u de functionaliteit Scripts uitvoeren gebruiken om de volgende dingen te doen:
- Scripts maken en bewerken voor gebruik met Configuration Manager.
- Gebruik van scripts beheren via rollen en beveiligingsbereiken.
- Scripts uitvoeren op verzamelingen of afzonderlijke on-premises beheerde Windows pc's.
- Haal snel geaggregeerde scriptresultaten op van clientapparaten.
- Controleer de uitvoering van scripts en bekijk de rapportresultaten van scriptuitvoer.
Waarschuwing
- Gezien de kracht van scripts, herinnert u zich eraan dat u opzettelijk en voorzichtig moet zijn met het gebruik ervan. We hebben extra veiligheidsmaatregelen ingebouwd om u te helpen; gescheiden rollen en scopes. Controleer de nauwkeurigheid van scripts voordat u ze gaat uitvoeren en controleer of ze afkomstig zijn van een vertrouwde bron, om onbedoelde scriptuitvoering te voorkomen. Let op uitgebreide tekens of andere verduking en leer uzelf over het beveiligen van scripts. Meer informatie over beveiliging van PowerShell-scripts
- Bepaalde antimalwaresoftware kan per ongeluk gebeurtenissen activeren voor de Configuration Manager Uitvoeren van scripts of CMPivot-functies. Het is raadzaam %windir%\CCM\ScriptStore uit te sluiten, zodat de antimalwaresoftware toestaat dat deze functies zonder interferentie worden uitgevoerd.
Vereisten
- Als u PowerShell-scripts wilt uitvoeren, moet op de client PowerShell versie 3.0 of hoger worden uitgevoerd. Als een script dat u wilt uitvoeren echter functionaliteit uit een latere versie van PowerShell bevat, moet op de client waarop u het script uit te voeren die versie van PowerShell worden uitgevoerd.
- Configuration Manager-clients moeten de client uitvoeren vanaf versie 1706 of hoger om scripts uit te voeren.
- Als u scripts wilt gebruiken, moet u lid zijn van de juiste Configuration Manager beveiligingsrol.
- Als u scripts wilt importeren en schrijven, moet uw account machtigingen voor het maken van SMS-scripts hebben.
- Scripts goedkeuren of weigeren: uw account moet machtigingen voor goedkeuren hebben voor SMS-scripts.
- Scripts uitvoeren: uw account moet machtigingen voor uitvoeren van scripts hebben voor Verzamelingen.
Voor meer informatie over Configuration Manager beveiligingsrollen: Beveiligingsbereiken voor het uitvoeren van scripts Beveiligingsrollen voor het uitvoeren van scripts Basisprincipes van op rollen gebaseerd beheer.
Beperkingen
Scripts uitvoeren ondersteunt momenteel:
- Scripttalen: PowerShell
- Parametertypen: geheel getal, tekenreeks en lijst.
Waarschuwing
Let op: wanneer u parameters gebruikt, wordt er een surface area mogelijk risico op powershell-injectieaanval. Er zijn verschillende manieren om dit te verhelpen en te verhelpen, zoals het gebruik van reguliere expressies voor het valideren van parameterinvoer of het gebruik van vooraf gedefinieerde parameters. Veelvoorkomende best practice is om geen geheimen op te nemen in uw PowerShell-scripts (geen wachtwoorden, enzovoort). Meer informatie over beveiliging van PowerShell-scripts
Scriptauteurs en goedkeurders uitvoeren
Scripts uitvoeren maakt gebruik van het concept van scriptauteurs en script goedkeurders als afzonderlijke rollen voor de implementatie en uitvoering van een script. Door de rollen Auteur en Goedkeurder te scheiden, kan een belangrijke procescontrole worden uitgevoerd voor het krachtige hulpprogramma Scripts uitvoeren. Er is een extra scriptrol waarmee scripts kunnen worden uitgevoerd, maar scripts niet kunnen worden gemaakt of goedgekeurd. Zie Beveiligingsrollen maken voor scripts.
Besturingselement voor scriptsrollen
Standaard kunnen gebruikers een script dat ze hebben gemaakt, niet goedkeuren. Omdat scripts krachtig, veelzijdig en mogelijk op veel apparaten zijn geïmplementeerd, kunt u de rollen scheiden tussen de persoon die het script maakt en de persoon die het script goedkeurt. Deze rollen bieden een extra beveiligingsniveau tegen het uitvoeren van een script zonder toezicht. U kunt secundaire goedkeuring uitschakelen, voor een eenvoudige test.
Een script goedkeuren of weigeren
Scripts moeten door de rol van script goedkeurder worden goedgekeurd voordat ze kunnen worden uitgevoerd. Een script goedkeuren:
- Klik in de Configuration Manager-console op Softwarebibliotheek.
- Klik in de werkruimte Softwarebibliotheek op Scripts.
- Kies in de lijst Script het script dat u wilt goedkeuren of weigeren en klik vervolgens op het tabblad Start in de groep Script op Goedkeuren/weigeren.
- Selecteer in het dialoogvenster Script goedkeuren of weigeren de optie Goedkeuren of Weigeren voor het script. Voer eventueel een opmerking over uw beslissing in. Als u een script weigert, kan het niet worden uitgevoerd op clientapparaten.

- Voltooi de wizard. In de lijst Script ziet u dat de kolom Goedkeuringstoestand wordt gewijzigd, afhankelijk van de actie die u hebt ondernomen.
Gebruikers toestaan hun eigen scripts goed te keuren
Deze goedkeuring wordt voornamelijk gebruikt voor de testfase van het ontwikkelen van scripts.
- Klik op Beheer in de Configuration Manager-console.
- Vouw in de werkruimte Beheer****Siteconfiguratie uit en klik vervolgens op Sites.
- Kies uw site in de lijst met sites en klik vervolgens op het tabblad Start in de groep Sites op Hiërarchie Instellingen.
- Op het tabblad Algemeen van het dialoogvenster Hiërarchie Instellingen eigenschappen, het selectievakje Scriptauteurs vereisen extra script goedkeurder uit.
Belangrijk
Het is best practice dat u een scriptauteur niet toestaat om zijn eigen scripts goed te keuren. Dit mag alleen worden toegestaan in een labinstelling. Overweeg zorgvuldig de mogelijke impact van het wijzigen van deze instelling in een productieomgeving.
Beveiligingsbereiken
Scripts uitvoeren maakt gebruik van beveiligingsbereiken, een bestaande functie van Configuration Manager, om het schrijven en uitvoeren van scripts te bepalen door tags toe te wijzen die gebruikersgroepen vertegenwoordigen. Zie Beheer op basis van rollen configureren voor Configuration Manager voor meer informatie over het gebruik van beveiligingsbereiken.
Beveiligingsrollen voor scripts maken
De drie beveiligingsrollen die worden gebruikt voor het uitvoeren van scripts, worden niet standaard gemaakt in Configuration Manager. Volg de beschreven stappen om de scriptrollen, scriptauteurs en script goedkeurders te maken.
- Ga in Configuration Manager-console naar > Beveiligingsrollen > voor beheer
- Klik met de rechtermuisknop op een rol en klik op Kopiëren. Aan de rol die u kopieert, zijn al machtigingen toegewezen. Zorg ervoor dat u alleen de machtigingen hebt die u wilt.
- Geef een naam en een beschrijving op voor de aangepaste rol.
- Wijs de beveiligingsrol toe aan de machtigingen die hieronder worden beschreven.
Machtigingen voor beveiligingsrol
Rolnaam: Scriptscripts
- Beschrijving: met deze machtigingen kan deze rol alleen scripts uitvoeren die eerder zijn gemaakt en goedgekeurd door andere rollen.
- Machtigingen: Zorg ervoor dat het volgende is ingesteld op Ja.
| Categorie | Machtiging | Staat |
|---|---|---|
| Verzameling | Script uitvoeren | Yes |
| Site | Lezen | Yes |
| SMS-scripts | Lezen | Yes |
Rolnaam: Scriptauteurs
- Beschrijving: met deze machtigingen kan deze rol scripts schrijven, maar ze kunnen deze niet goedkeuren of uitvoeren.
- Machtigingen: zorg ervoor dat de volgende machtigingen zijn ingesteld.
| Categorie | Machtiging | Staat |
|---|---|---|
| Verzameling | Script uitvoeren | No |
| Site | Lezen | Yes |
| SMS-scripts | Maken | Yes |
| SMS-scripts | Lezen | Yes |
| SMS-scripts | Verwijderen | Yes |
| SMS-scripts | Wijzigen | Yes |
Rolnaam: Script goedkeurders
- Beschrijving: met deze machtigingen kan deze rol scripts goedkeuren, maar ze kunnen ze niet maken of uitvoeren.
- Machtigingen: Zorg ervoor dat de volgende machtigingen zijn ingesteld.
| Categorie | Machtiging | Staat |
|---|---|---|
| Verzameling | Script uitvoeren | No |
| Site | Lezen | Yes |
| SMS-scripts | Lezen | Yes |
| SMS-scripts | Goedkeuren | Yes |
| SMS-scripts | Wijzigen | Yes |
Voorbeeld van sms-scripts met machtigingen voor de rol scriptauteurs

Een script maken
- Klik in de Configuration Manager-console op Softwarebibliotheek.
- Klik in de werkruimte Softwarebibliotheek op Scripts.
- Klik op het tabblad Start in de groep Maken op Script maken.
- Configureer de volgende instellingen op de pagina Script van de wizard Script maken:
- Scriptnaam: voer een naam in voor het script. Hoewel u meerdere scripts met dezelfde naam kunt maken, maakt het gebruik van dubbele namen het moeilijker om het script te vinden dat u nodig hebt in de Configuration Manager console.
- Scripttaal: momenteel worden alleen PowerShell-scripts ondersteund.
- Importeren: importeer een PowerShell-script in de -console. Het script wordt weergegeven in het veld Script.
- Clear: hiermee verwijdert u het huidige script uit het veld Script.
- Script: geeft het momenteel geïmporteerde script weer. U kunt het script indien nodig bewerken in dit veld.
- Voltooi de wizard. Het nieuwe script wordt weergegeven in de lijst Script met de status Wachten op goedkeuring. Voordat u dit script op clientapparaten kunt uitvoeren, moet u het goedkeuren.
Belangrijk
Vermijd het opnieuw opstarten van een apparaat of het opnieuw opstarten van de Configuration Manager agent wanneer u de functie Scripts uitvoeren gebruikt. Dit kan leiden tot een status voor doorlopend opnieuw opstarten. Indien nodig zijn er verbeteringen in de functie voor clientmeldingen waarmee apparaten opnieuw kunnen worden opgestart. De kolom Opnieuw opstarten in behandeling kan helpen bij het identificeren van apparaten die opnieuw moeten worden opgestart.
Scriptparameters
Het toevoegen van parameters aan een script biedt meer flexibiliteit voor uw werk. U kunt maximaal 10 parameters opnemen. Hieronder volgt een overzicht van de huidige functie Scripts uitvoeren met scriptparameters voor; Tekenreeks, gegevenstypen met gehele getallen. Lijsten met vooraf ingestelde waarden zijn ook beschikbaar. Als uw script niet-ondersteunde gegevenstypen heeft, krijgt u een waarschuwing.
Klik in het dialoogvenster Script maken op Scriptparameters onder Script.
Elk van de parameters van uw script heeft een eigen dialoogvenster voor het toevoegen van meer details en validatie. Als het script een standaardparameter bevat, wordt deze geïndefeerd in de gebruikersinterface van de parameter en kunt u deze instellen. Configuration Manager overschrijft de standaardwaarde niet omdat het script nooit rechtstreeks wordt gewijzigd. U kunt dit zien als vooraf ingevulde voorgestelde waarden in de gebruikersinterface, maar Configuration Manager biedt geen toegang tot standaardwaarden tijdens run time. Dit kan worden omwerkt door het script te bewerken met de juiste standaardinstellingen.
Belangrijk
Parameterwaarden mogen geen enkele aangave bevatten. Er is een bekend probleem waarbij parameterwaarden die enkele aanhalingstekens bevatten of tussen enkele aanhalingstekens staan, niet goed worden doorgegeven aan het script. Wanneer u standaardparameterwaarden opgeeft die een spatie binnen een script bevatten, gebruikt u in plaats daarvan dubbele aanhalingstekens. Wanneer u standaardparameterwaarden opgeeft tijdens het maken of uitvoeren van een script, is het niet nodig om de standaardwaarde tussen dubbele of enkele aanhalingstekens te plaatsen, ongeacht of de waarde al dan niet een spatie bevat.
Parametervalidatie
Elke parameter in uw script heeft een dialoogvenster Eigenschappen van scriptparameter om validatie voor die parameter toe te voegen. Nadat u de validatie hebt toegevoegd, krijgt u fouten als u een waarde voor een parameter ingeeft die niet voldoet aan de validatie.
Voorbeeld: FirstName
In dit voorbeeld kunt u de eigenschappen van de tekenreeksparameter FirstName instellen.

De validatiesectie van het dialoogvenster Scriptparametereigenschappen bevat de volgende velden voor uw gebruik:
- Minimale lengte: het minimale aantal tekens van het veld FirstName.
- Maximumlengte: maximum aantal tekens van het veld FirstName
- RegEx: afkorting voor Regular Expression. Zie de volgende sectie, Using Regular Expression validation (Validatie van reguliere expressie gebruiken) voor meer informatie over het gebruik van de reguliere expressie.
- Aangepaste fout: handig voor het toevoegen van uw eigen aangepaste foutbericht dat eventuele foutberichten voor systeemvalidatie verd mogelijk maakt.
Validatie van reguliere expressie gebruiken
Een reguliere expressie is een compacte vorm van programmeren om een tekenreeks te controleren op basis van een gecodeerde validatie. U kunt bijvoorbeeld controleren of er geen hoofdletter is in het veld FirstName door in het [^A-Z] veld RegEx te plaatsen.
De reguliere expressieverwerking voor dit dialoogvenster wordt ondersteund door de .NET Framework. Zie .NET Regular Expression en Regular Expression Language voor hulp bij het gebruik van reguliere expressies.
Voorbeeldscripts
Hier zijn enkele voorbeelden van scripts die u mogelijk wilt gebruiken met deze mogelijkheid.
Een nieuwe map en een nieuw bestand maken
Met dit script maakt u een nieuwe map en een bestand in de map, op basis van uw naamgevingsinvoer.
Param(
[Parameter(Mandatory=$True)]
[string]$FolderName,
[Parameter(Mandatory=$True)]
[string]$FileName
)
New-Item $FolderName -type directory
New-Item $FileName -type file
Versie van het besturingssysteem krijgen
Dit script maakt gebruik van WMI om een query uit te voeren op de machine voor de versie van het besturingssysteem.
Write-Output (Get-WmiObject -Class Win32_operatingSystem).Caption
PowerShell-scripts bewerken of kopiëren
U kunt een bestaand PowerShell-script bewerken of kopiëren dat wordt gebruikt met de functie Scripts uitvoeren. In plaats van een script opnieuw te maken dat u moet wijzigen, kunt u het nu rechtstreeks bewerken. Beide acties gebruiken dezelfde wizard-ervaring als wanneer u een nieuw script maakt. Wanneer u een script bewerkt of kopieert, Configuration Manager de goedkeuringstoestand niet persistent.
Tip
Bewerk geen script dat actief wordt uitgevoerd op clients. Ze voltooien het uitvoeren van het oorspronkelijke script niet en mogelijk krijgt u niet de beoogde resultaten van deze clients.
Een script bewerken
- Ga naar het knooppunt Scripts onder de werkruimte Softwarebibliotheek.
- Selecteer het script dat u wilt bewerken en klik vervolgens op Bewerken in het lint.
- Wijzig ofimporter uw script opnieuw op de pagina Scriptdetails.
- Klik op Volgende om samenvatting weer te geven en vervolgens op Sluiten wanneer u klaar bent met bewerken.
Een script kopiëren
- Ga naar het knooppunt Scripts onder de werkruimte Softwarebibliotheek.
- Selecteer het script dat u wilt kopiëren en klik vervolgens op Kopiëren op het lint.
- Wijzig de naam van het script in het veld Scriptnaam en bewerk eventuele aanvullende wijzigingen.
- Klik op Volgende om samenvatting weer te geven en vervolgens op Sluiten wanneer u klaar bent met bewerken.
Een script uitvoeren
Nadat een script is goedgekeurd, kan het worden uitgevoerd op één apparaat of een verzameling. Zodra de uitvoering van uw script is gestart, wordt het snel gestart via een systeem met hoge prioriteit dat in één uur een tijdsuitvoering heeft. De resultaten van het script worden vervolgens geretourneerd met behulp van een statusberichtsysteem.
Een verzameling doelen voor uw script selecteren:
- Klik op Activa en naleving op de Configuration Manager-console.
- Klik op Apparaatverzamelingen in de werkruimte Activa en naleving.
- Klik in de lijst Apparaatverzamelingen op de verzameling apparaten waarop u het script wilt uitvoeren.
- Selecteer een verzameling naar keuze en klik op Script uitvoeren.
- Kies op de pagina Script van de wizard Script uitvoeren een script in de lijst. Alleen goedgekeurde scripts worden weergegeven.
- Klik op Volgende en voltooi de wizard.
Belangrijk
Als een script niet wordt uitgevoerd, bijvoorbeeld omdat een doelapparaat is uitgeschakeld tijdens de periode van één uur, moet u het opnieuw uitvoeren.
Uitvoering van doelmachine
Het script wordt uitgevoerd als het systeem- of computeraccount op de doelclient(s). Dit account heeft beperkte netwerktoegang. Alle toegang tot externe systemen en locaties door het script moet dienovereenkomstig worden ingericht.
Scriptbewaking
Nadat u het uitvoeren van een script op een verzameling apparaten hebt gestart, gebruikt u de volgende procedure om de bewerking te controleren. U kunt een script in realtime bewaken terwijl het wordt uitgevoerd, en later terugkeren naar de status en resultaten voor een bepaalde Uitvoering van scriptuitvoering. Scriptstatusgegevens worden opgeschoond als onderdeel van de onderhoudstaak Verouderde clientbewerkingen verwijderen of het verwijderen van het script.

Klik in Configuration Manager-console op Bewaking.
Klik in de werkruimte Bewaking op Scriptstatus.
In de lijst Scriptstatus bekijkt u de resultaten voor elk script dat u hebt gemaakt op clientapparaten. Een afsluitende scriptcode van 0 geeft in het algemeen aan dat het script is uitgevoerd.

Scriptuitvoer
De uitvoer van het retourscript van de client met behulp van JSON-opmaak door de resultaten van het script door te susen naar de cmdlet ConvertTo-Json. De JSON-indeling retourneert consistent leesbare scriptuitvoer. Voor scripts die geen objecten retourneren als uitvoer, converteert de cmdlet ConvertTo-Json de uitvoer naar een eenvoudige tekenreeks die de client retourneert in plaats van JSON.
Scripts die een onbekend resultaat krijgen of waarbij de client offline was, worden niet in de grafieken of gegevensset weer geven.
Vermijd het retourneren van grote scriptuitvoer omdat deze is afgekapt tot 4 kB.
Converteert een enum-object naar een tekenreekswaarde in scripts, zodat deze correct worden weergegeven in JSON-opmaak.

U kunt gedetailleerde scriptuitvoer weergeven in onbewerkte of gestructureerde JSON-indeling. Door deze opmaak is de uitvoer gemakkelijker te lezen en te analyseren. Als het script geldige tekst in JSON-indeling retourneert of als de uitvoer kan worden geconverteerd naar JSON met behulp van de PowerShell-cmdlet ConvertTo-Json, bekijkt u de gedetailleerde uitvoer als JSON-uitvoer of onbewerkte uitvoer. Anders is scriptuitvoer de enige optie.
Voorbeeld: Scriptuitvoer is een geldige JSON-uitvoer
Opdracht: $PSVersionTable.PSVersion
Major Minor Build Revision
----- ----- ----- --------
5 1 16299 551
Voorbeeld: Scriptuitvoer is geen geldige JSON
Opdracht: Write-Output (Get-WmiObject -Class Win32_OperatingSystem).Caption
Microsoft Windows 10 Enterprise
Logboekbestanden
Op de client, standaard in C:\Windows\CCM\logs:
- Scripts.log
- CcmMessaging.log
Op het MP, standaard in C:\SMS_CCM\Logs:
- MP_RelayMsgMgr.log
Op de siteserver standaard in C:\Program Files\Configuration Manager\Logs:
- SMS_Message_Processing_Engine.log