Erstellen und Ausführen von PowerShell-Skripts über die Configuration Manager-KonsoleCreate and run PowerShell scripts from the Configuration Manager console

Gilt für: System Center Configuration Manager (Current Branch)Applies to: System Center Configuration Manager (Current Branch)

System Center Configuration Manager verfügt über eine integrierte Funktion zum Ausführen von PowerShell-Skripts.System Center Configuration Manager has an integrated ability to run Powershell scripts. PowerShell bietet den Vorteil der Erstellung ausgeklügelter, automatisierter Skripts, die von einer größeren Community verstanden und geteilt werden.Powershell has the benefit of creating sophisticated, automated scripts that are understood and shared with a larger community. Die Skripts vereinfachen die Erstellung benutzerdefinierter Tools zur Verwaltung von Software und ermöglichen Ihnen, alltägliche Aufgaben schnell zu erledigen, sodass Sie große Aufträge einfacher und konsistenter bewältigen können.The scripts simplify building custom tools to administer software and let you accomplish mundane tasks quickly, allowing you to get large jobs done more easily and more consistently.

Hinweis

Configuration Manager aktiviert dieses optionale Feature nicht automatisch.Configuration Manager doesn't enable this optional feature by default. Sie müssen dieses Feature aktivieren, bevor Sie es verwenden.You must enable this feature before using it. Weitere Informationen finden Sie unter Enable optional features from updates (Aktivieren optionaler Features von Updates).For more information, see Enable optional features from updates.

Durch diese Integration in System Center Configuration Manager können Sie die Funktion Skripts ausführen verwenden, um folgende Aufgaben auszuführen:With this integration in System Center Configuration Manager, you can use the Run Scripts functionality to do the following things:

  • Erstellen und Bearbeiten von Skripts für die Verwendung mit System Center Configuration ManagerCreate and edit scripts for use with System Center Configuration Manager.
  • Verwalten der Skriptnutzung mithilfe von Rollen und SicherheitsbereichenManage script usage through roles and security scopes.
  • Anwenden von Skripts auf Sammlungen einzelner lokal verwalteter Windows-PCsRun scripts on collections or individual on-premises managed Windows PCs.
  • Abrufen schnell aggregierter Skriptergebnisse von ClientgerätenGet rapid aggregated script results from client devices.
  • Überwachen der Skriptausführung und Anzeigen von Berichtsergebnissen in der SkriptausgabeMonitor script execution and view reporting results from script output.

Warnung

Angesichts der Leistungsfähigkeit von Skripts möchten wir Sie daran erinnern, diese bewusst und sorgfältig einzusetzen.Given the power of scripts, we remind you to be intentional and careful with their usage. Wir haben zusätzliche Sicherheitsvorkehrungen eingebaut, um Sie zu unterstützen: getrennte Rollen und Bereiche.We have built in additional safeguards to assist you; segregated roles and scopes. Stellen Sie die Fehlerfreiheit von Skripts sicher, bevor Sie sie ausführen. Bestätigen Sie außerdem, dass sie aus einer vertrauenswürdigen Quelle stammen, um eine unbeabsichtigte Ausführung von Skripts zu verhindern.Be sure to validate the accuracy of scripts before running them and confirm they are from a trusted source, to prevent unintended script execution. Achten Sie auf Sonderzeichen oder sonstige Obfuskation, und informieren Sie sich über die Absicherung von Skripts.Be mindful of extended characters or other obfuscation and educate yourself about securing scripts. Unter Learn more about PowerShell script security (Weitere Informationen zur sicheren Verwendung von PowerShell-Skripts) finden Sie weiterführende Hinweise.Learn more about PowerShell script security

Erforderliche KomponentenPrerequisites

  • Um PowerShell-Skripts ausführen zu können, muss auf dem Client PowerShell 3.0 installiert sein.To run PowerShell scripts, the client must be running PowerShell version 3.0 or later. Wenn ein Skript jedoch Funktionen aus einer neueren PowerShell-Version enthält, muss diese auch auf dem Client installiert sein, der diese Version von PowerShell ausführt.However, if a script you run contains functionality from a later version of PowerShell, the client on which you run the script must be running that version of PowerShell.
  • Das Ausführen von Skripts ist nur auf Clients mit Configuration Manager 1706 oder neuer möglich.Configuration Manager clients must be running the client from the 1706 release, or later in order to run scripts.
  • Um Skripts zu verwenden, müssen Sie Mitglied der entsprechenden Configuration Manager-Sicherheitsrolle sein.To use scripts, you must be a member of the appropriate Configuration Manager security role.
  • Importieren und Erstellen von Skripts: Ihr Konto benötigt die Berechtigung Erstellen für SMS-Skripts.To import and author scripts - Your account must have Create permissions for SMS Scripts.
  • Genehmigen und Ablehnen von Skripts: Ihr Konto benötigt die Berechtigung Genehmigen für SMS-Skripts.To approve or deny scripts - Your account must have Approve permissions for SMS Scripts.
  • Ausführen von Skripts: Ihr Konto benötigt die Berechtigung Skript ausführen für Sammlungen.To run scripts - Your account must have Run Script permissions for Collections.

Weitere Informationen zu Configuration Manager-Sicherheitsrollen finden Sie unter:For more information about Configuration Manager security roles:
Sicherheitsbereiche für das Ausführen von SkriptsSecurity scopes for run scripts
Sicherheitsrollen für das Ausführen von SkriptsSecurity roles for run scripts
Grundlagen der rollenbasierten VerwaltungFundamentals of role-based administration.

EinschränkungenLimitations

Von der Funktion „Skripts ausführen“ wird derzeit Folgendes unterstützt:Run Scripts currently supports:

  • Skriptsprachen: PowerShellScripting languages: PowerShell
  • Parametertypen: „integer“, „string“ und „list“Parameter types: integer, string, and list.

Warnung

Beachten Sie, dass die Verwendung von Parametern das Risiko für PowerShell Injection-Angriffe erhöht.Be aware that when using parameters, it opens a surface area for potential PowerShell injection attack risk. Es gibt verschiedene Möglichkeiten, dieses Risiko zu verringern. Sie können beispielsweise reguläre Ausdrücken zum Überprüfen der Parametereingabe oder vordefinierte Parameter verwenden.There are various ways to mitigate and work around, such as using regular expressions to validate parameter input or using predefined parameters. Als allgemeine bewährte Methode wird empfohlen, keine Geheimnisse wie Kennwörter in PowerShell-Skripts zu hinterlegen.Common best practice is not to include secrets in your PowerShell scripts (no passwords, etc.). Unter Learn more about PowerShell script security (Weitere Informationen zur sicheren Verwendung von PowerShell-Skripts) finden Sie weiterführende Hinweise.Learn more about PowerShell script security

Skript ausführen: Ersteller und GenehmigerRun Script authors and approvers

Die Funktion „Skripts ausführen“ arbeitet für die Implementierung und Ausführung eines Skripts mit dem Konzept von Skriptautoren und Skriptgenehmigern als getrennte Rollen.Run Scripts uses the concept of script authors and script approvers as separate roles for implementation and execution of a script. Die Trennung von Autor- und Genehmigerrolle ermöglicht eine wichtige Prozessüberprüfung für das überaus leistungsstarke Tool „Skripts ausführen“.Having the author and approver roles separated allows an important process check for the powerful tool that Run Scripts is. Mit der zusätzlichen Rolle Skriptausführende können Skripts ausgeführt aber nicht erstellt oder genehmigt werden.There's an additional script runners role that allows execution of scripts, but not creation or approval of scripts. Weitere Informationen finden Sie unter Erstellen von Sicherheitsrollen für Skripts.See Create security roles for scripts.

Steuerung von SkriptrollenScripts roles control

Standardmäßig können Benutzer ein von Ihnen erstelltes Skript nicht genehmigen.By default, users can't approve a script they've authored. Da Skripts leistungsstark und vielseitig sind und auf vielen Geräten bereitgestellt werden können, lassen sich für das Erstellen und Genehmigen von Skripts unterschiedliche Rollen definieren.Because scripts are powerful, versatile, and potentially deployed to many devices, you can separate the roles between the person that authors the script and the person that approves the script. Dies bietet Ihnen zusätzliche Sicherheit vor der unbeaufsichtigten Ausführung eines Skripts.These roles give an additional level of security against running a script without oversight. Sie können die sekundäre Genehmigung deaktivieren, um das Testen zu vereinfachen.You're able to turn off secondary approval, for ease of testing.

Genehmigen oder Ablehnen eines SkriptsApprove or Deny a script

Skripts müssen von der Rolle Skriptgenehmiger genehmigt werden, bevor sie ausgeführt werden dürfen.Scripts must be approved, by the script approver role, before they can be run. So genehmigen Sie ein SkriptTo approve a script:

  1. Klicken Sie in der Configuration Manager-Konsole auf Softwarebibliothek.In the Configuration Manager console, click Software Library.
  2. Klicken Sie im Arbeitsbereich Softwarebibliothek auf Skripts.In the Software Library workspace, click Scripts.
  3. Wählen Sie in der Liste Skript das Skript, das Sie genehmigen oder ablehnen möchten. Klicken Sie dann in der Gruppe Skript auf der Registerkarte Start auf Genehmigen/Ablehnen.In the Script list, choose the script you want to approve or deny and then, on the Home tab, in the Script group, click Approve/Deny.
  4. Aktivieren Sie im Dialogfeld Skript genehmigen oder ablehnen für das Skript entweder das Optionsfeld Genehmigen oder Ablehnen.In the Approve or deny script dialog box, select Approve, or Deny for the script. Geben Sie optional einen Kommentar zu Ihrer Entscheidung ein.Optionally, enter a comment about your decision. Wenn Sie ein Skript ablehnen, kann es nicht auf Clientgeräten ausgeführt werden.If you deny a script, it can't be run on client devices.
    Skript: GenehmigungScript - Approval
  5. Schließen Sie den Assistenten ab.Complete the wizard. In der Liste Skript ändert sich die Spalte Genehmigungsstatus abhängig von der Aktion, die Sie ausgeführt haben.In the Script list, you see the Approval State column change depending on the action you took.

Benutzern erlauben, eigene Skripts zu genehmigenAllow users to approve their own scripts

Diese Genehmigung erfolgt in erster Linie in der Testphase der Skriptentwicklung.This approval is primarily used for the testing phase of script development.

  1. Klicken Sie in der Configuration Manager-Konsole auf Verwaltung.In the Configuration Manager console, click Administration.
  2. Erweitern Sie im Arbeitsbereich Verwaltung den Bereich Standortkonfiguration, und klicken Sie dann auf Standorte.In the Administration workspace, expand Site Configuration, and then click Sites.
  3. Wählen Sie in der Liste der Standorte Ihren Standort aus, und klicken Sie dann auf der Registerkarte Start in der Gruppe Standorte auf Hierarchieeinstellungen.In the list of sites, choose your site and then, on the Home tab, in the Sites group, click Hierarchy Settings.
  4. Deaktivieren Sie im Dialogfeld Eigenschaften von Hierarchieeinstellungen auf der Registerkarte Allgemein das Kontrollkästchen Script authors require additional script approver (Skriptautoren benötigen einen zusätzlichen Skriptgenehmiger).On the General tab of the Hierarchy Settings Properties dialog box, clear the checkbox Script authors require additional script approver.

Wichtig

Als bewährte Methode sollten Sie nicht zulassen, dass Skriptautoren ihre eigenen Skripts genehmigen können.As a best practice, you shouldn't allow a script author to approve their own scripts. Dies sollte nur in einer Testumgebung gestattet sein.It should only be allowed in a lab setting. Bedenken Sie die möglichen Auswirkungen, die eine Änderung dieser Einstellung in einer Produktionsumgebung mit sich bringt.Carefully consider the potential impact of changing this setting in a production environment.

SicherheitsbereichenSecurity scopes

(Mit Version 1710 eingeführt)(Introduced with version 1710)
Die Funktion „Skripts ausführen“ arbeitet mit Sicherheitsbereichen, einer bereits vorhandenen Configuration Manager-Funktion, um die Erstellung und Ausführung von Skripts zu steuern, indem Kategorien zugewiesen werden, die Benutzergruppen darstellen.Run Scripts uses security scopes, an existing feature of Configuration Manager, to control scripts authoring and execution through assigning tags that represent user groups. Weitere Informationen zu Sicherheitsbereichen finden Sie unter Konfigurieren der rollenbasierten Verwaltung für System Center Configuration Manager.For more information on using security scopes, see Configure role-based administration for System Center Configuration Manager.

Erstellen von Sicherheitsrollen für SkriptsCreate security roles for scripts

Die drei Sicherheitsrollen zum Ausführen von Skripts werden standardmäßig nicht in Configuration Manager erstellt.The three security roles used for running scripts aren't created by default in Configuration Manager. Führen Sie zum Erstellen der Rollen für die Skriptausführenden, -ersteller und -genehmiger die folgenden Schritte aus:To create the script runners, script authors, and script approvers roles, follow the outlined steps.

  1. Navigieren Sie in der Configuration Manager-Konsole zu Verwaltung >Sicherheit >Sicherheitsrollen.In the Configuration Manager console, go to Administration >Security >Security Roles
  2. Klicken Sie mit der rechten Maustaste auf die Rolle und anschließend mit der linken auf Kopieren.Right-click on a role and click Copy. Der zu kopierenden Rolle sind bereits Berechtigungen zugewiesen.The role you copy has permissions already assigned. Achten Sie darauf, nur die gewünschten Rollen zu nutzen.Make sure you take only the permissions that you want.
  3. Legen Sie für die benutzerdefinierte Rolle Name und Beschreibung fest.Give the custom role a Name and a Description.
  4. Weisen Sie der Sicherheitsrolle die unten aufgeführten Berechtigungen zu.Assign the security role the permissions outlined below.

Berechtigungen für SicherheitsrollenSecurity Role Permissions

Rollenname: SkriptausführendeRole Name: Script Runners

  • Beschreibung: Durch die folgenden Berechtigungen können mit dieser Rolle nur Skripts ausgeführt werden, die zuvor erstellt und von anderen Rollen genehmigt wurden.Description: These permissions enable this role to only run scripts that were previously created and approved by other roles.
  • Berechtigungen: Legen Sie für die folgenden Berechtigungen als Status Ja fest.Permissions: Ensure the following are set to Yes.
KategorieCategory BerechtigungPermission ZustandState
SammlungCollection Skript ausführenRun Script JaYes
StandortSite SieheRead JaYes
SMS-SkriptsSMS Scripts SieheRead JaYes

Rollenname: SkriptgenehmigerRole Name: Script Authors

  • Beschreibung: Durch die folgenden Berechtigungen können mit dieser Rolle Skripts erstellt, aber nicht genehmigt oder ausgeführt werden.Description: These permissions enable this role to author scripts, but they can’t approve or run them.
  • Berechtigungen: Legen Sie für die folgenden Berechtigungen den in der Tabelle aufgeführten Status fest.Permissions: Ensure the following permissions are set.
KategorieCategory BerechtigungPermission ZustandState
SammlungCollection Skript ausführenRun Script NeinNo
StandortSite SieheRead JaYes
SMS-SkriptsSMS Scripts ErstellenCreate JaYes
SMS-SkriptsSMS Scripts SieheRead JaYes
SMS-SkriptsSMS Scripts LöschenDelete JaYes
SMS-SkriptsSMS Scripts ÄndernModify JaYes

Rollenname: SkriptgenehmigerRole Name: Script Approvers

  • Beschreibung: Durch die folgenden Berechtigungen können mit dieser Rolle Skripts genehmigt, aber nicht erstellt oder ausgeführt werden.Description: These permissions enable this role to approve scripts, but they can’t create or run them.
  • Berechtigungen: Legen Sie für die folgenden Berechtigungen den in der Tabelle aufgeführten Status fest.Permissions: Ensure the following permissions are set.
KategorieCategory BerechtigungPermission ZustandState
SammlungCollection Skript ausführenRun Script NeinNo
StandortSite SieheRead JaYes
SMS-SkriptsSMS Scripts SieheRead JaYes
SMS-SkriptsSMS Scripts GenehmigenApprove JaYes
SMS-SkriptsSMS Scripts ÄndernModify JaYes

Beispiel für SMS-Skript-Berechtigungen für die Rolle SkripterstellerExample of SMS Scripts permissions for the script authors role

Beispiel für SMS-Skript-Berechtigungen für die Rolle Skriptersteller

Erstellen eines SkriptsCreate a script

  1. Klicken Sie in der Configuration Manager-Konsole auf Softwarebibliothek.In the Configuration Manager console, click Software Library.
  2. Klicken Sie im Arbeitsbereich Softwarebibliothek auf Skripts.In the Software Library workspace, click Scripts.
  3. Klicken Sie auf der Registerkarte Start in der Gruppe Erstellen auf Skript erstellen.On the Home tab, in the Create group, click Create Script.
  4. Konfigurieren Sie im Assistenten Skript erstellen auf der Seite Skript die folgenden Einstellungen:On the Script page of the Create Script wizard, configure the following settings:
    • Skriptname: Geben Sie einen Namen für das Skript ein.Script Name - Enter a name for the script. Sie können zwar mehrere Skripts mit dem gleichen Namen erstellen, dies erschwert aber das Auffinden des benötigten Skripts in der Configuration Manager-Konsole.Although you can create multiple scripts with the same name, using duplicate names makes it harder for you to find the script you need in the Configuration Manager console.
    • Skriptsprache: Derzeit werden nur PowerShell-Skripts unterstützt.Script language - Currently, only PowerShell scripts are supported.
    • Importieren: Importieren Sie ein PowerShell-Skript in die Konsole.Import - Import a PowerShell script into the console. Das Skript wird im Feld Skript angezeigt.The script is displayed in the Script field.
    • Löschen: Entfernt das aktuelle Skript aus dem Feld „Skript“Clear - Removes the current script from the Script field.
    • Skript: Zeigt das gerade importierte Skript.Script - Displays the currently imported script. Sie können das Skript in diesem Feld nach Bedarf bearbeiten.You can edit the script in this field as necessary.
  5. Schließen Sie den Assistenten ab.Complete the wizard. Das neue Skript wird in der Liste Skript mit dem Status Warten auf Genehmigung angezeigt.The new script is displayed in the Script list with a status of Waiting for approval. Bevor Sie dieses Skript auf Clientgeräten ausführen können, müssen Sie es genehmigen.Before you can run this script on client devices, you must approve it.

Wichtig

Vermeiden Sie im Skript einen Neustart des Geräts oder einen Neustart des Configuration Manager-Agents, wenn Sie das Feature „Skripts ausführen“ verwenden.Avoid scripting a device reboot or a restart of the Configuration Manager agent when using the Run Scripts feature. Dies könnte zu einem kontinuierlichen Neustartzustand führen.Doing so could lead to a continuous rebooting state. Bei Bedarf stehen ab Configuration Manager, Version 1710, Erweiterungen für das Clientbenachrichtigungsfeature zur Verfügung, die das Neustarten von Geräten ermöglichen.If needed, there are enhancements to the client notification feature that enable restarting devices, starting in Configuration Manager version 1710. Anhand der Spalte Neustart steht aus können Sie Geräte identifizieren, für die ein Neustart erforderlich ist.The pending restart column can help identify devices that need a restart.

SkriptparameterScript parameters

(Mit Version 1710 eingeführt)(Introduced with version 1710)
Durch Hinzufügen von Parametern zu einem Skript können Sie Ihre Arbeit flexibler gestalten.Adding parameters to a script provides increased flexibility for your work. Sie können bis zu 10 Parameter einschließen.You can include up to 10 parameters. Im Folgenden wird die aktuelle Fähigkeit der Funktion „Skripts ausführen“ mit Skriptparametern für die Datentypen String und Integer dargelegt.The following outlines the Run Scripts feature's current capability with script parameters for; String, Integer data types. Listen mit vordefinierten Werten sind ebenfalls verfügbar.Lists of preset values are also available. Wenn das Skript nicht unterstützte Datentypen aufweist, erhalten Sie eine Warnung.If your script has unsupported data types, you get a warning.

Klicken Sie im Dialogfeld Skript erstellen unter Skript auf Skriptparameter.In the Create Script dialog, click Script Parameters under Script.

Jeder Parameter Ihres Skripts hat ein eigenes Dialogfeld, in dem Sie weitere Details und eine Validierung hinzufügen können.Each of your script's parameters has its own dialog for adding further details and validation. Wenn ein Standardparameter im Skript vorhanden ist, wird er in der Parameterbenutzeroberfläche aufgelistet, und Sie können ihn festlegen.If there's a default parameter in the script, it will be enumerated in the parameter UI and you can set it. Configuration Manager überschreibt den Standardwert nicht, da der Dienst nie direkt das Skript verändert.Configuration Manager won't overwrite the default value since it will never modify the script directly. Stellen Sie sich dieses Prinzip als „vorab aufgefüllte, vorgeschlagene Werte“ vor, die auf der Benutzeroberfläche bereitgestellt werden. Der Zugriff auf die „Standardwerte“ wird zur Laufzeit jedoch von Configuration Manager nicht genehmigt.You can think of this as “pre-populated suggested values” are provided in the UI, but Configuration Manager doesn't provide access to “default” values at run-time. Sie können dieses Problem umgehen, indem Sie das Skript so bearbeiten, dass es die richtigen Standardwerte enthält.This can be worked around by editing the script to have the correct defaults.

Wichtig

Parameterwerte dürfen keinen Apostroph enthalten.Parameter values can't contain an apostrophe.
Es gibt ein bekanntes Problem in Configuration Manager, Version 1802: Parameter mit Leerzeichen werden nicht ordnungsgemäß an das Skript übergeben.There is a known issue in Configuration Manager version 1802 where parameters with spaces don't get passed to the script properly. Wenn ein Leerzeichen im Parameter verwendet wird, wird nur das erste Element im Parameter an das Skript übergeben, alles nach dem Leerzeichen wird nicht übergeben.If a space is used in the parameter, only the first item in the parameter is passed to the script and everything after the space is not passed. Administratoren können dieses Problem in Skripts umgehen, indem sie Leerzeichen durch alternative Zeichen ersetzen und sie konvertieren oder indem sie andere Methoden nutzen.Admins can script around this by substituting alternate characters for spaces and converting them, or with other methods.

Validierung von ParameternParameter validation

Für jeden Parameter in Ihrem Skript gibt es das Dialogfeld Skriptparameter – Eigenschaften, in dem Sie eine Validierung für den jeweiligen Parameter hinzufügen können.Each parameter in your script has a Script Parameter Properties dialog for you to add validation for that parameter. Nach dem Hinzufügen der Validierung sollten Sie Fehlermeldungen erhalten, wenn Sie einen Wert für einen Parameter eingeben, der nicht dessen Validierung entspricht.After adding validation, you should get errors if you're entering a value for a parameter that doesn't meet its validation.

Beispiel: FirstNameExample: FirstName

In diesem Beispiel können Sie die Eigenschaften des Zeichenfolgenparameters FirstName festlegen.In this example, you're able to set the properties of the string parameter, FirstName.

Skriptparameter: String

Der Abschnitt „Überprüfung“ des Dialogfelds Skriptparametereigenschaften enthält die folgenden Felder, die Sie verwenden können:The validation section of the Script Parameter Properties dialog contains the following fields for your use:

  • Mindestlänge: Minimale Anzahl von Zeichen im Feld FirstName.Minimum Length - minimum number of characters of the FirstName field.
  • Maximale Länge: Maximale Anzahl von Zeichen im Feld FirstName.Maximum Length- maximum number of characters of the FirstName field
  • RegEx: Kofferwort für Regular Expression, d.h. regulärer Ausdruck.RegEx - short for Regular Expression. Weitere Informationen zur Verwendung von regulären Ausdrücken finden Sie im nächsten Abschnitt Durchführen der Überprüfung von regulären Ausdrücken.For more information on using the Regular Expression, see the next section, Using Regular Expression validation.
  • Benutzerdef. Fehler: Nützlich zum Hinzufügen einer eigenen benutzerdefinierten Fehlermeldung, die alle Fehlermeldungen im Rahmen der Systemüberprüfung ersetzt.Custom Error - useful for adding your own custom error message that supersedes any system validation error messages.

Durchführen der Überprüfung von regulären AusdrückenUsing Regular Expression validation

Ein regulärer Ausdruck stellt eine kompakte Programmiermethode dar, um eine Zeichenfolge anhand einer codierten Überprüfung zu überprüfen.A regular expression is a compact form of programming for checking a string of characters against an encoded validation. Sie können z.B. im Feld FirstName nach einem fehlenden Großbuchstaben suchen, indem Sie [^A-Z] in das Feld RegEx eingeben.For example, you could check for the absence of a capital alphabetic character in the FirstName field by placing [^A-Z] in the RegEx field.

Die Verarbeitung regulärer Ausdrücke für dieses Dialogfeld wird vom .NET Framework unterstützt.The regular expression processing for this dialog is supported by the .NET Framework. Anleitungen zur Verwendung regulärer Ausdrücke finden Sie unter .net regulärer Ausdruck und Sprache für reguläreAusdrücke.For guidance on using regular expressions, see .NET Regular Expression and Regular Expression Language.

Beispiele für SkriptsScript examples

Hier finden Sie einige Beispiele, die Skripts veranschaulichen, die sich mit dieser Funktion verwenden lassen.Here are a couple examples that illustrate scripts you might want to use with this capability.

Erstellen eines neuen Ordners und einer neuen DateiCreate a new folder and file

Dieses Skript erstellt basierend auf der Namenseingabe einen neuen Ordner und eine Datei in diesem Ordner.This script creates a new folder and a file within the folder, given your naming input.

Param(
[Parameter(Mandatory=$True)]
[string]$FolderName,
[Parameter(Mandatory=$True)]
[string]$FileName
)

New-Item $FolderName -type directory
New-Item $FileName -type file

Abrufen der BetriebssystemversionGet OS Version

Dieses Skript verwendet WMI, um die Betriebssystemversion des Computers abzufragen.This script uses WMI to query the machine for its OS version.

Write-Output (Get-WmiObject -Class Win32_operatingSystem).Caption

Bearbeiten oder Kopieren von PowerShell-SkriptsEdit or copy PowerShell scripts

(Mit Version 1902 eingeführt)(Introduced with version 1902)
Sie können ein vorhandenes PowerShell-Skript bearbeiten oder kopieren, das mit dem Feature Skripts ausführen verwendet wird.You can Edit or Copy an existing PowerShell script used with the Run Scripts feature. Sie können ein Skript, das Sie ändern müssen, nun direkt bearbeiten und müssen es nicht mehr neu erstellen.Instead of recreating a script that you need to change, now directly edit it. Für beide Aktionen wird der gleiche Assistent wie zum Erstellen eines neuen Skripts verwendet.Both actions use the same wizard experience as when you create a new script. Wenn Sie ein Skript bearbeiten oder kopieren, behält Configuration Manager den Genehmigungsstatus nicht bei.When you edit or copy a script, Configuration Manager doesn't persist the approval state.

Tipp

Bearbeiten Sie kein Skript, das aktiv auf Clients ausgeführt wird.Don't edit a script that's actively running on clients. Auf diesen wird die Ausführung des ursprünglichen Skripts nicht abgeschlossen, und Sie erhalten möglicherweise nicht die gewünschten Ergebnisse von diesen Clients.They won't finish running the original script, and you may not get the intended results from these clients.

Bearbeiten eines SkriptsEdit a script

  1. Wechseln Sie im Arbeitsbereich Software Bibliothek zum Knoten Skripts .Go to the Scripts node under the Software Library workspace.
  2. Wählen Sie das zu bearbeitende Skript aus, und klicken Sie dann im Menüband auf Bearbeiten .Select the script to edit, then click Edit in the ribbon.
  3. Ändern oder importieren Sie das Skript auf der Seite " Skript Details ".Change or reimport your script in the Script Details page.
  4. Klicken Sie auf weiter , um die Zusammenfassung anzuzeigen und zu Schließen , wenn Sie die Bearbeitung abgeschlossen habenClick Next to view the Summary then Close when you're finished editing.

Kopieren eines SkriptsCopy a script

  1. Wechseln Sie im Arbeitsbereich Software Bibliothek zum Knoten Skripts .Go to the Scripts node under the Software Library workspace.
  2. Wählen Sie das zu Kopier Endes Skript aus, und klicken Sie dann im Menüband auf Kopieren .Select the script to copy, then click Copy in the ribbon.
  3. Benennen Sie das Skript im Feld Skript Name um, und nehmen Sie ggf. weitere bearbeitbare Änderungen vor.Rename the script in the Script name field and make any additional edits you may need.
  4. Klicken Sie auf weiter , um die Zusammenfassung anzuzeigen und zu Schließen , wenn Sie die Bearbeitung abgeschlossen habenClick Next to view the Summary then Close when you're finished editing.

Ausführen eines SkriptsRun a script

Nachdem ein Skript genehmigt wurde, kann es für ein einzelnes Gerät oder eine Sammlung ausgeführt werden.After a script is approved, it can be run against a single device or a collection. Sobald die Ausführung Ihres Skripts beginnt, wird es schnell in einem System mit hoher Priorität gestartet, bei dem binnen einer Stunde ein Timeout auftritt.Once execution of your script begins, it's launched quickly through a high priority system that times-out in one hour. Die Ergebnisse des Skripts werden dann über ein Zustandsmeldungssystem zurückgegeben.The results of the script are then returned using a state message system.

So wählen Sie eine Sammlung von Zielen für Ihr Skript ausTo select a collection of targets for your script:

  1. Klicken Sie in der Configuration Manager-Konsole auf Bestand und Kompatibilität.In the Configuration Manager console, click Assets and Compliance.
  2. Klicken Sie im Arbeitsbereich Bestand und Kompatibilität auf Gerätesammlungen.In the Assets and Compliance workspace, click Device Collections.
  3. Klicken Sie in der Liste Gerätesammlungen auf die Sammlung von Geräten, auf denen das Skript ausgeführt werden soll.In the Device Collections list, click the collection of devices on which you want to run the script.
  4. Wählen Sie eine Sammlung Ihrer Wahl aus, und klicken Sie auf Skript ausführen.Select a collection of your choice, click Run Script.
  5. Wählen Sie im Assistenten Skript ausführen auf der Seite Skript ein Skript in der Liste aus.On the Script page of the Run Script wizard, choose a script from the list. Es werden nur genehmigte Skripts angezeigt.Only approved scripts are shown.
  6. Klicken Sie auf Weiter, und schließen Sie den Assistenten ab.Click Next, and then complete the wizard.

Wichtig

Wenn ein Skript nicht ausgeführt wird, weil ein Zielgerät beispielsweise während des einstündigen Zeitraums ausgeschaltet ist, müssen Sie es erneut ausführen.If a script does not run, for example because a target device is turned off during the one hour time period, you must run it again.

Ausführung auf dem ZielcomputerTarget machine execution

Das Skript wird mit dem Konto System oder Computer auf den entsprechenden Zielclients ausgeführt.The script is executed as the system or computer account on the targeted client(s). Dieses Konto hat begrenzten Netzwerkzugriff.This account has limited network access. Jeder Zugriff auf Remotesysteme und -standorte durch das Skript muss entsprechend eingerichtet werden.Any access to remote systems and locations by the script must be provisioned accordingly.

SkriptüberwachungScript monitoring

Nachdem Sie mit der Anwendung eines Skripts auf eine Sammlung von Geräten begonnen haben, gehen Sie wie folgt vor, um den Vorgang zu überwachen.After you have initiated running a script on a collection of devices, use the following procedure to monitor the operation. Ab Version 1710 können Sie ein Skript in Echtzeit überwachen, während es ausgeführt wird, und Sie können auch zu einem Bericht für eine bestimmte Ausführung von „Skript ausführen“ zurückkehren.Beginning with version 1710, you're both able to monitor a script in real time as it executes, and you can also return to a report for a given Run Script execution. Die Skriptstatusdaten werden als Teil des Wartungstasks zum Löschen veralteter Clientvorgänge oder durch Löschen des Skripts bereinigt.Script status data is cleaned up as part of the Delete Aged Client Operations maintenance task or deletion of the script.

Skriptüberwachung: Status der Skriptausführung

  1. Klicken Sie in der Configuration Manager-Konsole auf Überwachung.In the Configuration Manager console, click Monitoring.

  2. Klicken Sie im Arbeitsbereich Überwachung auf Skriptstatus.In the Monitoring workspace, click Script Status.

  3. In der Liste Skriptstatus sehen Sie die Ergebnisse für jedes Skript, das Sie auf Clientgeräten ausgeführt haben.In the Script Status list, you view the results for each script you ran on client devices. Der Exitcode 0 eines Skripts bedeutet im Allgemeinen, dass das Skript erfolgreich ausgeführt wurde.A script exit code of 0 generally indicates that the script ran successfully.

    • Ab der Configuration Manager-Version 1802 wird die Skriptausgabe auf 4 KB beschränkt, wodurch die Anzeige übersichtlicher wird.Beginning in Configuration Manager 1802, script output is truncated to 4 KB to allow for better display experience.

    Skriptmonitor: gekürztes Skript

Skriptausgabe in 1810Script output in 1810

Sie können die ausführliche Skriptausgabe im nicht formatierten Format oder im strukturierten JSON-Format anzeigen.You can view detailed script output in raw or structured JSON format. Diese Formatierung vereinfacht das Lesen und Analysieren der Ausgabe.This formatting makes the output easier to read and analyze. Wenn das Skript einen gültigen JSON-formatierten Text zurückgibt, zeigen Sie dann die ausführliche Ausgabe entweder als JSON-Ausgabe oder Nicht formatierte Ausgabe an.If the script returns valid JSON-formatted text, then view the detailed output as either JSON Output or Raw Output. Andernfalls ist die einzige Option Skriptausgabe.Otherwise the only option is Script Output.

Beispiel: Die Skriptausgabe weist ein gültiges JSON-Format auf.Example: Script output is valid JSON

Befehl: $PSVersionTable.PSVersionCommand: $PSVersionTable.PSVersion

Major  Minor  Build  Revision
-----  -----  -----  --------
5      1      16299  551

Beispiel: Die Skriptausgabe weist kein gültiges JSON-Format auf.Example: Script output isn't valid JSON

Befehl: Write-Output (Get-WmiObject -Class Win32_OperatingSystem).CaptionCommand: Write-Output (Get-WmiObject -Class Win32_OperatingSystem).Caption

Microsoft Windows 10 Enterprise
  • 1810-Clients geben eine Ausgabe von weniger als 80KB über einen schnellen Kommunikationskanal an den Standort zurück.1810 clients return output less than 80 KB to the site over a fast communication channel. Durch diese Änderung wird die Leistung vom Anzeigen des Skripts und Abfragen der Ausgabe verbessert.This change increases the performance of viewing script or query output.

    • Wenn die Ausgabe des Skripts oder der Abfrage 80 KB überschreitet, sendet der Client die Daten über eine Zustandsmeldung.If the script or query output is greater than 80 KB, the client sends the data via a state message.
    • Clients vor Version 1802 verwenden weiterhin Zustandsmeldungen.Pre-1802 clients continue to use state messages.

Skriptausgabe vor 1810Script output pre-1810

  • Ab der Configuration Manager-Version 1802 wird für die Rückgabe der Skriptausgabe JSON verwendet.Starting in Configuration Manager version 1802, script output returns using JSON formatting. Dieses Format gibt konsistent eine lesbare Skriptausgabe zurück.This format consistently returns a readable script output.

  • Skripts mit unbekanntem Ergebnis oder einem Client, der offline war, werden nicht in den Diagrammen oder Datasets angezeigt.Scripts that get an unknown result, or where the client was offline, won't show in the charts or data set.

  • Vermeiden Sie die Rückgabe einer umfassenden Skriptausgabe, da diese auf 4 KB beschränkt wird.Avoid returning large script output since it's truncated to 4 KB.

  • Einige Funktionen im Zusammenhang mit der Skriptausgabeformatierung sind nicht verfügbar, wenn die Configuration Manager-Version 1802 (oder eine neuere Version) mit einer älteren Clientversion verwendet wird.Some functionality with script output formatting isn't available when running Configuration Manager version 1802 or later with a down-level version of the client.

    • Bei einer Konfigurations-Manager-Clientversion, die neuer als Version 1802 ist, erhalten Sie eine Zeichenfolgeausgabe.When you have a pre-1802 Configuration Manager client, you get a string output.
    • Für die Konfigurations-Manager-Clientversion 1802 und höher erhalten Sie die JSON-Formatierung.For Configuration Manager client version 1802 and above, you get JSON formatting.
      • Sie erhalten z.B. möglicherweise Ergebnisse mit TEXT auf einer Clientversion und „TEXT“ (die Ausgabe ist in doppelte Anführungszeichen eingeschlossen) auf einer anderen Version, die im Diagramm als zwei verschiedene Kategorien angezeigt werden.For example, you might get results that say TEXT on one client version and "TEXT" (the output is surrounded in double quotes) on other version, which will be put in chart as two different categories.
      • Wenn Sie dieses Verhalten umgehen möchten, führen Sie das Skript ggf. für zwei verschiedene Sammlungen aus.If you need to work around this behavior, consider running script against two different collections. Eines mit der Clientversion, die älter als Version 1802 ist, und ein anderes mit der Clientversion 1802 und höher.One with pre-1802 clients and another with 1802 and higher clients. Oder Sie konvertieren ein Enumerationsobjekt in einen Zeichenfolgenwert, damit die JSON-Formatierung bei der Anzeige der Skripts korrekt verwendet wird.Or, you can convert an enum object to a string value in scripts so they're properly displayed in JSON formatting.
  • Konvertieren Sie Enumerationsobjekte in Zeichenfolgenwerte, damit die JSON-Formatierung bei der Anzeige der Skripts korrekt verwendet wird.Convert an enum object to a string value in scripts so they're properly displayed in JSON formatting.

    Konvertieren eines Enumerationsobjekts in einen Zeichenfolgenwert

ProtokolldateienLog files

Ab Version 1810 wurde die zusätzliche Protokollierung zur Problembehandlung hinzugefügt.Starting in version 1810, additional logging was added for troubleshooting.

  • Für den Client standardmäßig unter C:\Windows\CCM\logs:On the client, by default in C:\Windows\CCM\logs:

    • Scripts.logScripts.log
    • CcmMessaging.logCcmMessaging.log
  • Auf dem Verwaltungspunkt standardmäßig unter: C:\SMS_CCM\Logs:On the MP, by default in C:\SMS_CCM\Logs:

    • MP_RelayMsgMgr.logMP_RelayMsgMgr.log
  • Auf dem Standortserver standardmäßig unter: C:\Programme\Configuration Manager\Logs:On the site server, by default in C:\Program Files\Configuration Manager\Logs:

    • SMS_Message_Processing_Engine.logSMS_Message_Processing_Engine.log

Siehe auchSee Also