Freigeben über


Use-Transaction

Fügt den Skriptblock der aktiven Transaktion hinzu.

Syntax

Use-Transaction [-TransactedScript] <scriptblock> [-UseTransaction] [<CommonParameters>]

Beschreibung

Das Cmdlet "Use-Transaction" fügt einer aktiven Transaktion einen Skriptblock hinzu. Dies ermöglicht die Transaktionsskripterstellung mit transaktionsfähigen Microsoft .NET Framework-Objekten. Der Skriptblock darf nur transaktionsfähige .NET Framework-Objekte enthalten, z. B. Instanzen der Microsoft.PowerShell.Commands.Management.TransactedString-Klasse.

Beim Verwenden dieses Cmdlets ist der UseTransaction-Parameter erforderlich, der für die meisten Cmdlets optional ist.

Das Cmdlet "Use-Transaction" gehört zu einem Satz von Cmdlets, die das Transaktionsfeature in Windows PowerShell unterstützen. Weitere Informationen finden Sie unter "about_Transactions".

Parameter

-TransactedScript <scriptblock>

Gibt den Skriptblock an, der in der Transaktion ausgeführt wird. Geben Sie einen beliebigen gültigen Skriptblock in geschweiften Klammern ( { } ) ein. Dieser Parameter ist erforderlich.

Erforderlich?

true

Position?

1

Standardwert

Keiner

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-UseTransaction

Schließt den Befehl in die aktive Transaktion ein. Dieser Parameter ist nur gültig, wenn eine Transaktion ausgeführt wird. Weitere Informationen finden Sie unter "about_Transactions".

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

<CommonParameters>

Dieses Cmdlet unterstützt die folgenden allgemeinen Parameter: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer und -OutVariable. Weitere Informationen finden Sie unter about_Commonparameters.

Eingaben und Ausgaben

Der Eingabetyp ist der Typ der Objekte, die über die Pipeline an das Cmdlet übergeben werden können. Der Rückgabetyp ist der Typ der Objekte, die das Cmdlet zurückgibt.

Eingaben

Keiner

Eingaben können nicht über die Pipeline an dieses Cmdlet übergeben werden.

Ausgaben

PSObject

Use-Transaction gibt das Ergebnis der Transaktion zurück.

Hinweise

Mit dem Use-Transaction-Parameter wird der Befehl in die aktive Transaktion eingeschlossen. Da das Cmdlet "Use-Transaction" immer in Transaktionen verwendet wird, muss dieser Parameter jeden Use-Transaction-Befehl wirksam machen.

Beispiel 1

C:\PS>start-transaction

C:\PS> $transactedString = New-Object Microsoft.PowerShell.Commands.Management.TransactedString

C:\PS> $transactedString.Append("Hello")
C:\PS> use-transaction -TransactedScript { $transactedString.Append(", World") } -UseTransaction

C:\PS> $transactedString.ToString()
Hello
 
C:\PS> use-transaction -transactedScript { $transactedString.ToString() } -UseTransaction
Hello, World

C:\PS> complete-transaction
C:\PS> $transactedString.ToString()
Hello, World

Beschreibung
-----------
In diesem Beispiel wird die Verwendung des Cmdlets "Use-Transaction" zur Skripterstellung für ein transaktionsfähiges .NET Framework-Objekt veranschaulicht. In diesem Fall ist das Objekt ein TransactedString-Objekt. 

Der erste Befehl startet mit dem Cmdlet "Start-Transaction" eine Transaktion. 

Der zweite Befehl erstellt mit dem Befehl "New-Object" ein TransactedString-Objekt. Das Objekt wird in der Variablen "$TransactedString" gespeichert.

Im dritten und vierten Befehl wird mit der Append-Methode des TransactedString-Objekts Text zum Wert von "$TransactedString" hinzugefügt. Ein Befehl ist ein Teil der Transaktion, der andere nicht.

Im dritten Befehl wird die Append-Methode der in die Transaktion eingefügten Zeichenfolge verwendet, um "Hello" zum Wert von "$TransactedString" hinzuzufügen. Da der Befehl nicht Teil der Transaktion ist, wird die Änderung sofort übernommen.

Im vierten Befehl wird mit dem Cmdlet "Use-Transaction" Text zur Zeichenfolge in der Transaktion hinzugefügt. Der Befehl fügt mit der Append-Methode ", World" zum Wert von "$TransactedString" hinzu. Der Befehl wird in Klammern ( {} ) eingeschlossen, um einen Skriptblock zu bilden. Der UseTransaction-Parameter ist in diesem Befehl erforderlich.

Im fünften und sechsten Befehl wird mit der ToString-Methode des TransactedString-Objekts der Wert von TransactedString als Zeichenfolge angezeigt. Auch hier ist ein Befehl Teil der Transaktion, der andere nicht.

Im fünften Befehl wird mit der ToString-Methode der aktuelle Wert der Variablen "$TransactedString" angezeigt. Da er kein Teil der Transaktion ist, wird nur der aktuelle Status der Zeichenfolge angezeigt.

Der sechste Befehl führt mit dem Cmdlet "Use-Transaction" den gleichen Befehl in der Transaktion aus. Da der Befehl Teil der Transaktion ist, wird der aktuelle Wert der Zeichenfolge innerhalb der Transaktion angezeigt, vergleichbar mit einer Vorschau der Transaktionsänderungen.

Der siebte Befehl führt mit dem Cmdlet "Complete-Transaction" einen Commit für die Transaktion aus.

Der letzte Befehl zeigt mithilfe der ToString-Methode den resultierenden Wert der Variablen als Zeichenfolge an.





Beispiel 2

C:\PS>start-transaction

C:\PS> $transactedString = New-Object Microsoft.PowerShell.Commands.Management.TransactedString

C:\PS> $transactedString.Append("Hello")
C:\PS> use-transaction -TransactedScript { $transactedString.Append(", World") } -UseTransaction

C:\PS> undo-transaction

C:\PS> $transactedString.ToString()
Hello

Beschreibung
-----------
In diesem Beispiel werden die Auswirkungen veranschaulicht, wenn eine Transaktion zurückgesetzt wird, die Use-Transaction-Befehle enthält. Wie alle Befehle in einer Transaktion werden die Transaktionsänderungen beim Zurücksetzen der Transaktion verworfen, und die Daten sind unverändert.

Der erste Befehl startet mit dem Cmdlet "Start-Transaction" eine Transaktion. 

Der zweite Befehl erstellt mit dem Befehl "New-Object" ein TransactedString-Objekt. Das Objekt wird in der Variablen "$TransactedString" gespeichert.

Der dritte Befehl ist kein Teil der Transaktion und fügt mithilfe der Append-Methode "Hello" zum Wert von "$TransactedString" hinzu. 

Im vierten Befehl wird mit dem Cmdlet "Use-Transaction" ein anderer Befehl ausgeführt, der die Append-Methode innerhalb der Transaktion verwendet. Der Befehl fügt mit der Append-Methode ", World" zum Wert von "$TransactedString" hinzu. 

Der fünfte Befehl setzt die Transaktion mit dem Cmdlet "Undo-Transaction" zurück. Folglich wird ein Rollback aller innerhalb der Transaktion ausgeführten Befehle ausgeführt.

Der letzte Befehl zeigt mithilfe der ToString-Methode den resultierenden Wert von "$TransactedString" als Zeichenfolge an. Die Ergebnisse zeigen, dass nur die außerhalb der Transaktion vorgenommenen Änderungen für das Objekt übernommen wurden.





Siehe auch

Konzepte

about_Transactions
Start-Transaction
Get-Transaction
Complete-Transaction
Undo-Transaction