Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op: Configuration Manager (current branch)
Configuration Manager heeft een geïntegreerde mogelijkheid om PowerShell-scripts uit te voeren. PowerShell heeft het voordeel dat het geavanceerde, geautomatiseerde scripts kan maken die worden begrepen en gedeeld met een grotere community. De scripts vereenvoudigen het bouwen van aangepaste tools voor het beheren van software en stellen je in staat alledaagse taken snel uit te voeren, zodat je grote taken gemakkelijker en consistenter kunt uitvoeren.
Opmerking
In versie 2006 en eerder schakelt Configuration Manager deze optionele functie standaard niet in. U moet deze functie inschakelen voordat u deze gebruikt. Zie Optionele functies inschakelen tegen updates voor meer informatie.
Met deze integratie in Configuration Manager kunt u de functionaliteit Scripts uitvoeren gebruiken om het volgende te doen:
- Scripts maken en bewerken voor gebruik met Configuration Manager.
- Beheer scriptgebruik via rollen en beveiligingsbereiken.
- Mapondersteuning voor scripts.
- Voer scripts uit op verzamelingen of afzonderlijke on-premises beheerde Windows-pc's.
- Plan de runtime van scripts in UTC op verzamelingen of afzonderlijke on-premises beheerde Windows-pc's.
- Krijg snel geaggregeerde scriptresultaten van clientapparaten.
- Controleer de uitvoering van scripts en bekijk rapportageresultaten van scriptuitvoer.
Waarschuwing
- Gezien de kracht van scripts, herinneren we u eraan om opzettelijk en voorzichtig te zijn met het gebruik ervan. We hebben aanvullende waarborgen ingebouwd om u te helpen; gescheiden rollen en reikwijdten. Zorg ervoor dat u de nauwkeurigheid van scripts valideert voordat u ze uitvoert en controleer of ze afkomstig zijn van een vertrouwde bron, om te voorkomen dat scripts onbedoeld worden uitgevoerd. Houd rekening met uitgebreide tekens of andere verduistering en leer jezelf over het beveiligen van scripts. Meer informatie over PowerShell-scriptbeveiliging
- Bepaalde antimalwaresoftware kan onbedoeld gebeurtenissen activeren tegen de functies van Configuration Manager Run Scripts of CMPivot. Het wordt aanbevolen om %windir%\CCM\ScriptStore uit te sluiten, zodat de antimalwaresoftware het mogelijk maakt om deze functies zonder interferentie uit te voeren.
Vereisten
- Als u PowerShell-scripts wilt uitvoeren, moet PowerShell versie 3.0 of hoger op de client worden uitgevoerd. Als een script dat u uitvoert echter functionaliteit bevat uit een nieuwere versie van PowerShell, moet die versie van PowerShell worden uitgevoerd op de client waarop u het script uitvoert.
- Op Configuration Manager-clients moet de client vanaf release 1706 of hoger worden uitgevoerd om scripts te kunnen uitvoeren.
- Als u scripts wilt gebruiken, moet u lid zijn van de juiste beveiligingsrol van Configuration Manager.
- 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 het goedkeuren van sms-scripts hebben.
- Als u scripts wilt uitvoeren, moet uw account de machtiging Script uitvoeren voor verzamelingen hebben.
Voor meer informatie over beveiligingsrollen in Configuration Manager:Beveiligingsbereiken
voor scripts uitvoeren Beveiligingsrollen
voor scripts
uitvoerenBasisprincipes van beheer op basis van rollen.
Beperkingen
Run Scripts ondersteunt momenteel:
- Scripttalen: PowerShell
- Parametertypen: geheel getal, tekenreeks en lijst.
Waarschuwing
Houd er rekening mee dat wanneer u parameters gebruikt, dit een oppervlak opent voor potentiële PowerShell-injectie-aanvalsrisico's. Er zijn verschillende manieren om dit te beperken en te omzeilen, zoals het gebruik van reguliere expressies om parameterinvoer te valideren of het gebruik van vooraf gedefinieerde parameters. Algemene aanbevolen procedure is om geen geheimen in uw PowerShell-scripts op te nemen (geen wachtwoorden enzovoort). Meer informatie over PowerShell-scriptbeveiliging
Scriptmakers en goedkeurders uitvoeren
Scripts uitvoeren gebruikt het concept van scriptauteurs en scriptgoedkeurders als afzonderlijke rollen voor implementatie en uitvoering van een script. Door de rollen auteur en fiatteur gescheiden te hebben, kan een belangrijke procescontrole worden uitgevoerd voor het krachtige hulpprogramma dat Scripts uitvoeren is. Er is een extra rol als scriptrunner die het uitvoeren van scripts mogelijk maakt, maar niet het maken of goedkeuren van scripts. Zie Beveiligingsrollen voor scripts maken.
Controle over scriptrollen
Standaard kunnen gebruikers een script dat ze hebben gemaakt niet goedkeuren. Omdat scripts krachtig en veelzijdig zijn en op veel apparaten kunnen worden 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 om het testen te vergemakkelijken.
Een script goedkeuren of weigeren
Scripts moeten worden goedgekeurd door de rol van scriptgoedkeurder 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. U kunt desgewenst een opmerking over uw beslissing invoeren. Als u een script weigert, kan het niet worden uitgevoerd op clientapparaten.
- Voltooi de wizard. In de lijst Script ziet u hoe de kolom Goedkeuringsstatus verandert, afhankelijk van de actie die u hebt uitgevoerd.
Gebruikers toestaan hun eigen scripts goed te keuren
Deze goedkeuring wordt hoofdzakelijk gebruikt voor de testfase van scriptontwikkeling.
- Klik in de Configuration Manager-console op Beheer.
- Vouw Siteconfiguratie uit in de werkruimte Beheer en klik 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.
- Schakel op het tabblad Algemeen van het dialoogvenster Eigenschappen voor hiërarchie-instellingen het selectievakje Scriptauteurs vereisen extra fiatteur van scripts uit.
Belangrijk
Het is raadzaam de auteur van scripts niet toe te staan zijn eigen scripts goed te keuren. Het mag alleen worden toegestaan in een laboratoriumomgeving. Denk zorgvuldig na over de mogelijke invloed van het wijzigen van deze instelling in een productieomgeving.
Beveiligingsbereiken
Scripts uitvoeren maakt gebruik van beveiligingsbereiken, een bestaande functie van Configuration Manager, om het ontwerpen en uitvoeren van scripts te beheren door het toewijzen van tags 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 in Configuration Manager gemaakt. Volg de beschreven stappen om de rollen voor scriptlopers, scriptauteurs en scriptfiatteurs te maken.
- Gain de Configuration Manager-console naar Beveiligingsrollen voor beveiliging beheren>>
- 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 gewenste machtigingen gebruikt.
- Geef de aangepaste rol een naam en een beschrijving.
- Wijs de beveiligingsrol de hieronder beschreven machtigingen toe.
Machtigingen van beveiligingsrol
Rolnaam: Script Runners
- 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 | Status |
|---|---|---|
| Verzameling | Script uitvoeren | Ja |
| Locatie | Lezen | Ja |
| SMS-scripts | Lezen | Ja |
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 | Status |
|---|---|---|
| Verzameling | Script uitvoeren | Nee |
| Locatie | Lezen | Ja |
| SMS-scripts | Maken | Ja |
| SMS-scripts | Lezen | Ja |
| SMS-scripts | Verwijderen | Ja |
| SMS-scripts | Wijzigen | Ja |
Rolnaam: Scriptgoedkeurders
- Beschrijving: Met deze machtigingen kan deze rol scripts goedkeuren, maar ze kunnen deze niet maken of uitvoeren.
- Machtigingen: Zorg ervoor dat de volgende machtigingen zijn ingesteld.
| Categorie | Machtiging | Status |
|---|---|---|
| Verzameling | Script uitvoeren | Nee |
| Locatie | Lezen | Ja |
| SMS-scripts | Lezen | Ja |
| SMS-scripts | Goedkeuren | Ja |
| SMS-scripts | Wijzigen | Ja |
Voorbeeld van machtigingen voor sms-scripts voor de rol scriptauteurs
Mapondersteuning voor scripts
Vanaf versie 2403 kunt u scripts ordenen met behulp van mappen. Deze wijziging maakt een betere categorisering en beheer van scripts mogelijk.
Open de Configuration Manager-console en ga naar de werkruimte Softwarebibliotheek. Selecteer op het lint of in het snelmenu in de scripts een van de volgende opties:
- Map maken
- Map verwijderen
- Naam van map wijzigen
- Mappen verplaatsen
- Beveiligingsbereiken instellen
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 voor het script in. Hoewel u meerdere scripts met dezelfde naam kunt maken, maakt het gebruik van dubbele namen het moeilijker om het script dat u nodig hebt te vinden 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 .
- Wissen : het huidige script wordt verwijderd uit het veld Script.
- Script : hiermee wordt het momenteel geïmporteerde script weergegeven. U kunt het script in dit veld zo nodig bewerken.
- Voltooi de wizard. Het nieuwe script wordt in de lijst met scripts weergegeven met de status Wachten op goedkeuring. Voordat u dit script kunt uitvoeren op clientapparaten, moet u het goedkeuren.
Belangrijk
Vermijd het uitvoeren van scripts, het opnieuw opstarten van het apparaat of het opnieuw opstarten van de Configuration Manager-agent wanneer u de functie Scripts uitvoeren gebruikt. Als u dit wel doet, kan dit ertoe leiden dat de computer continu opnieuw wordt opgestart. Indien nodig zijn er verbeteringen in de meldingsfunctie van de client waarmee apparaten opnieuw kunnen worden opgestart. De kolom voor het opnieuw opstarten in behandeling kan helpen bij het identificeren van apparaten die opnieuw moeten worden opgestart.
Parameters voor het script
Door parameters toe te voegen aan een script krijgt u meer flexibiliteit bij uw werk. U kunt maximaal 10 parameters opgeven. Het volgende schetst de huidige mogelijkheden van de functie Run Scripts met scriptparameters voor; Gegevenstypen Tekenreeks, Geheel getal . Er zijn ook lijsten met vooraf gedefinieerde waarden beschikbaar. Als uw script niet-ondersteunde gegevenstypen bevat, 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ïnventariseerd in de gebruikersinterface van de parameter en kunt u deze instellen. Configuration Manager zal de standaardwaarde niet overschrijven, omdat het script nooit rechtstreeks wordt gewijzigd. U kunt dit zien als 'vooraf ingevulde voorgestelde waarden' die in de gebruikersinterface worden geleverd, maar Configuration Manager biedt geen toegang tot 'standaard'-waarden tijdens runtime. Dit kan worden omzeild door het script te bewerken zodat de juiste standaardinstellingen beschikbaar zijn.
Belangrijk
Parameterwaarden mogen niet één aanhalingsteken bevatten.
Er is een bekend probleem waarbij parameterwaarden die enkele aanhalingstekens bevatten of tussen enkele aanhalingstekens staan, niet goed worden doorgegeven aan het script. Gebruik in plaats daarvan dubbele aanhalingstekens wanneer u standaardparameterwaarden opgeeft die een spatie in een script bevatten. Wanneer tijdens het maken of uitvoeren van een script standaardparameterwaarden worden opgegeven, hoeft u de standaardwaarde niet tussen dubbele of enkele aanhalingstekens te plaatsen, ongeacht of de waarde een spatie bevat of niet.
Parametervalidatie
Elke parameter in uw script heeft een dialoogvenster Eigenschappen van scriptparameters waarmee u validatie voor die parameter kunt toevoegen. Na het toevoegen van de validatie treden er fouten op als u een waarde invoert voor een parameter die niet voldoet aan de validatie.
Voorbeeld: FirstName
In dit voorbeeld kunt u de eigenschappen van de tekenreeksparameter FirstName instellen.
De sectie Validatie van het dialoogvenster Eigenschappen van scriptparameters bevat de volgende velden:
- Minimale lengte - minimum aantal tekens in het veld Voornaam .
- Maximum lengte - maximum aantal tekens van het veld Voornaam
- RegEx - afkorting van Regular Expression. Zie de volgende sectie, Validatie van reguliere expressies 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 bij systeemvalidatie vervangt.
Validatie van reguliere expressies gebruiken
Een reguliere expressie is een compacte programmeervorm voor het controleren van een tekenreeks met een gecodeerde validatie. U kunt bijvoorbeeld controleren of er geen hoofdletters in het veld Voornaam staan door de tekst in het veld RegEx te plaatsen[^A-Z].
De verwerking van de reguliere expressies voor dit dialoogvenster wordt ondersteund door het .NET Framework. Zie .NET Regular Expression and Regular Expression Language.
Voorbeelden van scripts
Hier volgen enkele voorbeelden ter illustratie van scripts die u mogelijk met deze functie wilt gebruiken.
Een nieuwe map en een nieuw bestand maken
Dit script maakt een nieuwe map en een bestand in de map, op basis van uw naamgeving.
Param(
[Parameter(Mandatory=$True)]
[string]$FolderName,
[Parameter(Mandatory=$True)]
[string]$FileName
)
New-Item $FolderName -type directory
New-Item $FileName -type file
Versie van besturingssysteem downloaden
Dit script gebruikt 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 dat u moet wijzigen opnieuw te maken, kunt u het nu rechtstreeks bewerken. Voor beide acties wordt dezelfde wizardervaring gebruikt als bij het maken van een nieuw script. Wanneer u een script bewerkt of kopieert, behoudt Configuration Manager de goedkeuringsstatus niet.
Tip
Bewerk geen script dat actief wordt uitgevoerd op clients. Ze voltooien het oorspronkelijke script niet en u krijgt mogelijk 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 op Bewerken op het lint.
- Wijzig het script of importeer het opnieuw op de pagina Scriptdetails .
- Klik op Volgende om het overzicht weer te geven en klik 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 op Kopiëren op het lint.
- Wijzig de naam van het script in het veld Scriptnaam en breng eventuele aanvullende wijzigingen aan.
- Klik op Volgende om het overzicht weer te geven en klik 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 je script begint, wordt het snel gestart via een systeem met hoge prioriteit en de time-out verloopt binnen een uur. De resultaten van het script worden vervolgens geretourneerd met behulp van een statusberichtsysteem.
Een verzameling doelen selecteren voor uw script:
- Klik in de Configuration Manager-console op Activa en naleving.
- Klik in de werkruimte Activa en compliance op Apparaatverzamelingen.
- Klik in de lijst Apparaatcollecties 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 voer de wizard uit.
Belangrijk
Als een script niet wordt uitgevoerd, bijvoorbeeld omdat een doelapparaat is uitgeschakeld gedurende een periode van één uur, moet u het script opnieuw uitvoeren.
De runtime van scripts plannen
Vanaf de huidige vertakkingsversie 2309 van Configuration Manager kunt u de runtime van scripts nu plannen in UTC.
Uitvoering van scripts voor een verzameling plannen:
Klik in de Configuration Manager-console op Activa en naleving.
Klik in de werkruimte Activa en compliance op Apparaatverzamelingen.
Klik in de lijst Apparaatcollecties op de verzameling apparaten waarop u het script wilt plannen.
Selecteer een verzameling naar keuze en klik op Script uitvoeren.
Plan op de pagina Planning het script dat moet worden uitgevoerd met selectievakje en geef de planningstijd op in UTC.
Controleer de gegevens die worden weergegeven op de overzichtspagina.
Klik op Volgende en voer de wizard uit.
Opmerking
Elke 5 minuten worden maximaal vijfentwintig geplande scripts verwerkt.
Uitvoering van doelcomputer
Het script wordt uitgevoerd als het systeem - of computeraccount op de beoogde client(s). Dit account heeft beperkte netwerktoegang. Toegang tot externe systemen en locaties via het script moet dienovereenkomstig worden ingericht.
Scripts controleren
Nadat u de uitvoering van een script op een verzameling apparaten hebt gestart, gebruikt u de volgende procedure om de bewerking te controleren. U kunt een script tijdens de uitvoering in realtime volgen en later terugkeren naar de status en resultaten van een bepaalde uitvoering van een uitvoeringsscript. Statusgegevens van het script worden opgeschoond als onderdeel van de onderhoudstaak Oude clientbewerkingen verwijderen of het verwijderen van het script.
Klik in de Configuration Manager-console op Controle.
Klik in de bewakingswerkruimte op Scriptstatus.
In de lijst Scriptstatus kunt u de resultaten bekijken voor elk script dat u hebt uitgevoerd op clientapparaten. De afsluitcode van het script van 0 geeft meestal aan dat het script is uitgevoerd.
Planningsscript Controle van een verzameling
Klik in de Configuration Manager-console op Controle.
Klik in de bewakingswerkruimte op het knooppunt Geplande scripts.
Er wordt een nieuwe rij weergegeven in de lijst met geplande scripts.
Controleer of er een nieuwe rij wordt weergegeven in de lijst met geplande scripts. De statuskolom moet de waarde Gepland bevatten. De kolom ClientOperationId moet leeg zijn. Controleer of ook de andere kolommen, zoals Scriptnaam, Planningstijd, de juiste waarden hebben.
Vernieuw na de planningstijd het knooppunt Geplande scripts . De statuskolom moet de waarde Succesvol gestarte clientbewerking bevatten. De kolom ClientOperationId moet een geheel getal bevatten.
Klik in de bewakingswerkruimte op het knooppunt Scriptstatus. Controleer of de nieuwe rij in de lijst wordt weergegeven en of de ClientOperationId gelijk is aan de ClientOperationId van het knooppunt Geplande scripts .
Klik op Status weergeven en controleer of de scriptuitvoer wordt weergegeven.
Scriptuitvoer
De retourscriptuitvoer van de client met JSON-opmaak door de resultaten van het script door te sturen naar de ConvertTo-JSON-cmdlet . De JSON-indeling retourneert consistent leesbare scriptuitvoer. Voor scripts die objecten niet als uitvoer retourneren, converteert de ConvertTo-Json cmdlet de uitvoer naar een eenvoudige tekenreeks die de client retourneert in plaats van JSON.
Scripts met een onbekend resultaat, of waarbij de client offline was, worden niet weergegeven in de grafieken of gegevensset.
Retourneer geen grote scriptuitvoer, omdat deze wordt afgekapt tot 4 kB.
Converteer een opsommingsobject naar een tekenreekswaarde in scripts, zodat deze correct worden weergegeven in JSON-opmaak.
U kunt gedetailleerde scriptuitvoer weergeven in onbewerkte of gestructureerde JSON-indeling. Met deze opmaak is de uitvoer gemakkelijker te lezen en te analyseren. Als het script geldige tekst met JSON-indeling retourneert of als de uitvoer kan worden geconverteerd naar JSON met behulp van de ConvertTo-JSON PowerShell-cmdlet , geeft u de gedetailleerde uitvoer weer als JSON-uitvoer of Onbewerkte uitvoer. Anders is Scriptuitvoer de enige optie.
Voorbeeld: Scriptuitvoer kan worden geconverteerd naar een geldige JSON
Bevel: $PSVersionTable.PSVersion
Major Minor Build Revision
----- ----- ----- --------
5 1 16299 551
Voorbeeld: Scriptuitvoer is niet geldig JSON
Bevel: 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 de 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
Automatiseren met Windows PowerShell
U kunt de volgende PowerShell-cmdlets gebruiken om sommige van deze taken te automatiseren:
- Goedkeuren-CMScript
- Deny-CMScript
- Get-CMScript
- Invoke-CMScript
- New-CMScript
- Remove-CMScript
- Set-CMScript