THEMA about_Functions_Advanced_Methods KURZBESCHREIBUNG Beschreibt, wie in Funktionen, die das CmdletBinding-Attribut angeben, die für kompilierte Cmdlets verfügbaren Methoden und Eigenschaften verwendet werden können. DETAILBESCHREIBUNG Funktionen, die das CmdletBinding-Attribut angeben, können über die Variable "$pscmdlet" auf eine Reihe von Methoden und Eigenschaften zugreifen. Zu diesen Methoden gehören die folgenden: - Eingabeverarbeitungsmethoden, die von kompilierten Cmdlets für deren Aufgaben verwendet werden. - Die ShouldProcess-Methode und die ShouldContinue-Methode, mit denen vor einer Aktion Benutzerfeedback abgerufen wird. - Die ThrowTerminatingError-Methode zum Generieren von Fehlerdatensätzen. - Verschiedene Write-Methoden, die unterschiedliche Ausgabetypen zurückgeben. - Verschiedene Write-Methoden, die unterschiedliche Ausgabetypen zurückgeben. Erweiterten Funktionen stehen alle Methoden und Eigenschaften der PSCmdlet-Klasse zur Verfügung. Weitere Informationen zu diesen Methoden und Eigenschaften finden Sie unter "System.Management.Aut omation.PSCmdlet" in der MSDN Library (Microsoft Developer Network) unter https://go.microsoft.com/fwlink/?LinkId=142139 (möglicherweise auf Englisch). Eingabeverarbeitungsmethoden Die in diesem Abschnitt beschriebenen Methoden werden als Eingabeverarbeitungsmethoden bezeichnet. In Funktionen entsprechen diese drei Methoden den Funktionsblöcken Begin, Process und End. Jede Funktion muss einen oder mehrere Blöcke einschließen. Beim Ausführen einer Funktion verwendet die Windows PowerShell-Laufzeit den Code in diesen Blöcken. (Diese Blöcke stehen auch Funktionen zur Verfügung, für die das CmdletBinding-Attribut nicht verwendet wird.) Begin Dieser Block wird verwendet, um eine optionale einmalige Vorverarbeitung für die Funktion bereitzustellen. Die Windows PowerShell-Laufzeit verwendet den Code in diesem Block einmal für jede Instanz der Funktion in der Pipeline. Process Über diesen Block wird die datensatzweise Verarbeitung für die Funktion bereitgestellt. Dieser Block kann je nach Eingabe für die Funktion beliebig oft oder gar nicht verwendet werden. Wenn die Funktion beispielsweise den ersten Befehl in der Pipeline bildet, wird der Process-Block einmal verwendet. Wenn die Funktion nicht den ersten Befehl in der Pipeline bildet, wird der Process-Block einmal für jede Eingabe verwendet, die die Funktion von der Pipeline empfängt. Wenn keine Pipelineeingabe vorhanden ist, wird der Process-Block nicht verwendet. Dieser Block muss definiert werden, wenn ein Funktionsparameter zum Akzeptieren der Pipelineeingabe festgelegt wird. Wenn dieser Block nicht definiert ist und der Parameter Eingaben von der Pipeline akzeptiert, werden über die Pipeline keine Werte an die Funktion übergeben. Wenn die Funktion Bestätigungsanforderungen unterstützt (wenn der SupportsShouldProcess-Parameter des Parameter-Attributs auf $True festgelegt ist), muss zudem der Aufruf der ShouldProcess-M ethode innerhalb des Process-Blocks ausgeführt werden. End Über diesen Block wird die optionale einmalige Vorverarbeitung für die Funktion bereitgestellt. Im folgenden Beispiel wird die Gliederung in einer Funktion mit einem Begin-Block für die einmalige Vorverarbeitung, einem Process-Block für die Verarbeitung mehrerer Datensätze und einem End-Block für die einmalige Nachverarbeitung veranschaulicht. Function Test-ScriptCmdlet { [CmdletBinding(SupportsShouldProcess=$True)] Param ($Parameter1) Begin{} Process{} End{} } Bestätigungsmethoden ShouldProcess Diese Methode wird aufgerufen, um eine Bestätigung des Benutzers anzufordern, bevor von der Funktion eine Aktion ausgeführt wird, mit der das System geändert wird. Die Funktion kann anhand des von der Methode zurückgegebenen booleschen Werts weiter ausgeführt werden. Diese Methode kann nur im Process{}-Block der Funktion aufgerufen werden. Zudem muss das CmdletBinding-Attribut deklarieren, dass die Funktion ShouldProcess unterstützt (wie im vorherigen Beispiel gezeigt). Weitere Informationen zu dieser Methode finden Sie unter "System.Management.Automation.Cmdlet.ShouldProcess" in der MSDN Library unter "https://go.microsoft.com/fwlink/?LinkId=142142" (möglicherweise auf Englisch). Weitere Informationen zum Anfordern von Bestätigungen finden Sie im Kapitel zum Anfordern von Bestätigungen in der MSDN Library unter "https://go.microsoft.com/fwlink/?LinkID=136658" (möglicherweise auf Englisch). ShouldContinue Diese Methode wird aufgerufen, um eine zweite Bestätigungsmeldung anzufordern. Sie muss aufgerufen werden, wenn die ShouldProcess-Methode $true zurückgibt. Weitere Informationen zu dieser Methode finden Sie unter "System.Management.Automation.Cmdlet.ShouldContinue" in der MSDN Library unter "https://go.microsoft.com/fwlink/?LinkId=142143" (möglicherweise auf Englisch). Fehlermethoden Bei Fehlern können Funktionen zwei verschiedene Methoden aufrufen. Wenn ein Fehler ohne Abbruch auftritt, muss die Funktion die WriteError-Methode aufrufen, die im Abschnitt "Write-Methoden" beschrieben ist. Wenn ein Fehler mit Abbruch auftritt und die Ausführung der Funktion nicht fortgesetzt werden kann, muss die ThrowTerminatingError-Methode aufgerufen werden. Sie können auch die Throw-Anweisung für Fehler mit Abbruch und das Cmdlet "Write-Error" für Fehler mit Abbruch verwenden. Weitere Informationen finden Sie unter "System.Management.Automati on.Cmdlet. ThrowTerminatingError" in der MSDN Library unter "https://go.microsoft.com/fwlink/?LinkId=142144" (möglicherweise auf Englisch). Write-Methoden Eine Funktion kann die folgenden Methoden aufrufen, um unterschiedliche Ausgabetypen zurückzugeben. Nicht alle Ausgaben werden an den nächsten Befehl in der Pipeline gesendet. Sie können auch verschiedene Write-Cmdlets verwenden, z. B. Write-Error. WriteCommandDetail Weitere Informationen zur WriteCommandDetails-Methode finden Sie unter "System.Management.Automation.Cmdlet.WriteCommandDetail" in der MSDN Library unter "https://go.microsoft.com/fwlink/?LinkId=142155" (möglicherweise auf Englisch). WriteDebug Wenn Sie Informationen bereitstellen möchten, die für die Problembehandlung für eine Funktion verwendet werden können, muss von der Funktion die WriteDebug-Methode aufgerufen werden. Damit werden dem Benutzer Debugmeldungen angezeigt. Weitere Informationen finden Sie unter "System.Management.Automation.Cmdlet.WriteDebug" in der MSDN Library unter "https://go.microsoft.com/fwlink/?LinkId=142156" (möglicherweise auf Englisch). WriteError Funktionen müssen diese Methode bei Fehlern ohne Abbruch aufrufen, wenn die Funktion zum Fortsetzen der Datensatzverarbeitung vorgesehen ist. Weitere Informationen finden Sie unter "System.Management. Automation.Cmdlet.WriteError" in der MSDN Library unter "https://go.microsoft.com/fwlink/?LinkId=142157" (möglicherweise auf Englisch). Hinweis: Bei einem Fehler mit Abbruch muss die Funktion die ThrowTerminatingError-Methode aufrufen. WriteObject Diese Methode ermöglicht es der Funktion, ein Objekt an den nächsten Befehl in der Pipeline zu senden. In den meisten Fällen muss diese Methode verwendet werden, wenn die Funktion Daten zurückgibt. Weitere Informationen finden Sie unter "System.Management.Automation.PSCmdlet.WriteObject" in der MSDN Library unter "https://go.microsoft.com/fwlink/?LinkId=142158" (möglicherweise auf Englisch). WriteProgress Bei Funktionen, für deren Abschluss eine lange Zeit benötigt wird, ermöglicht diese Methode der Funktion das Aufrufen der WriteProgress-Methode, sodass Statusinformationen angezeigt werden. Beispielsweise kann der Prozentsatz der Fertigstellung angezeigt werden. Weitere Informationen finden Sie unter "System.Management.Automation.PSCmdlet.WriteProgress" in der MSDN Library unter "https://go.microsoft.com/fwlink/?LinkId=142160" (möglicherweise auf Englisch). WriteVerbose Wenn Sie ausführliche Informationen zu den Aktionen der Funktion bereitstellen möchten, muss die Funktion die WriteVerbose-Methode aufrufen, sodass dem Benutzer ausführliche Meldungen angezeigt werden. Standardmäßig werden keine ausführlichen Meldungen angezeigt. Weitere Informationen finden Sie unter "System.Management.Automation.PSCmdlet.WriteVerbose" in der MSDN Library unter "https://go.microsoft.com/fwlink/?LinkId=142162" (möglicherweise auf Englisch). WriteWarning Wenn Sie Informationen zu Bedingungen bereitstellen möchten, unter denen möglicherweise unerwartete Ergebnisse auftreten, muss die Funktion die WriteWarning-Methode aufrufen, mit der Benutzern Warnmeldungen angezeigt werden. Standardmäßig werden Warnmeldungen angezeigt. Weitere Informationen finden Sie unter "System.Management.Automation.PSCmdlet.WriteWarning" in der MSDN Library unter "https://go.microsoft.com/fwlink/?LinkId=142164" (möglicherweise auf Englisch). Hinweis: Sie können auch Warnmeldungen anzeigen, indem Sie die Variable "WarningPreference" konfigurieren oder die Befehlszeilenoptionen "Verbose" und "Debug" verwenden. Weitere Methoden und Eigenschaften Informationen zu den anderen Methoden und Eigenschaften, auf die über die Variable "$PSCmdlet" zugegriffen werden kann, finden Sie unter "System.Management.Automation.PSCmdlet" in der MSDN Library unter "https://go.microsoft.com/fwlink/? LinkId=142139" (möglicherweise auf Englisch). Mit der ParameterSetName-Eigenschaft können Sie beispielsweise den derzeit verwendeten Parametersatz anzeigen. Mit Parametersätzen können Sie eine Funktion erstellen, mit der anhand der beim Ausführen der Funktion angegebenen Parameter andere Aufgaben ausgeführt werden. SIEHE AUCH about_Functions_Advanced about_Functions_CmdletBindingAttributes about_Functions_Advanced_Parameters