Use-Transaction
Fügt der aktiven Transaktion den Skriptblock hinzu.
Syntax
Default (Standard)
Use-Transaction
[-TransactedScript] <ScriptBlock>
[-UseTransaction]
[<CommonParameters>]
Beschreibung
Das Cmdlet Use-Transaction fügt einer aktiven Transaktion einen Skriptblock hinzu. Auf diese Weise können Sie transaktionente Skripts mithilfe von transaktionsfähigen Microsoft .NET Framework-Objekten ausführen. Der Skriptblock kann nur transaktionsfähige .NET Framework-Objekte enthalten, z. B. Instanzen der Microsoft.PowerShell.Commands.Management.TransactedString Klasse.
Der parameter UseTransaction, der für die meisten Cmdlets optional ist, ist erforderlich, wenn Sie dieses Cmdlet verwenden.
Use-Transaction ist eine Reihe von Cmdlets, die das Transaktionsfeature in Windows PowerShell unterstützen. Weitere Informationen finden Sie unter about_Transactions.
Beispiele
Beispiel 1: Skript mithilfe eines transaktionsfähigen Objekts
Start-Transaction
$transactedString = New-Object Microsoft.PowerShell.Commands.Management.TransactedString
$transactedString.Append("Hello")
Use-Transaction -TransactedScript { $transactedString.Append(", World") } -UseTransaction
$transactedString.ToString()
Hello
Use-Transaction -TransactedScript { $transactedString.ToString() } -UseTransaction
Hello, World
Complete-Transaction
$transactedString.ToString()
Hello, World
In diesem Beispiel wird gezeigt, wie sie Use-Transaction für ein transaktionsfähiges .NET Framework-Objekt verwenden. In diesem Fall ist das Objekt ein TransactedString--Objekt.
Der erste Befehl verwendet das cmdlet Start-Transaction zum Starten einer Transaktion.
Der zweite Befehl verwendet den befehl New-Object zum Erstellen eines TransactedString--Objekts. Es speichert das Objekt in der $TransactedString Variablen.
Die dritten und vierten Befehle verwenden beide die methode Append des TransactedString--Objekts, um dem Wert von $TransactedStringText hinzuzufügen. Ein Befehl ist Teil der Transaktion. Der andere Befehl ist nicht.
Der dritte Befehl verwendet die methode Append der transacted string, um Hello zum Wert von $TransactedStringhinzuzufügen. Da der Befehl nicht Teil der Transaktion ist, wird die Änderung sofort angewendet.
Der vierte Befehl verwendet Use-Transaction, um der Zeichenfolge in der Transaktion Text hinzuzufügen. Der Befehl verwendet die Append Methode, um ", World" zum Wert von $TransactedStringhinzuzufügen. Der Befehl ist in geschweifte Klammern ({}) eingeschlossen, um ihn zu einem Skriptblock zu machen. Der parameter UseTransaction ist in diesem Befehl erforderlich.
Die fünften und sechsten Befehle verwenden die ToString--Methode des TransactedString- Objekts, um den Wert der TransactedString- als Zeichenfolge anzuzeigen. Auch hier ist ein Befehl Teil der Transaktion. Die andere Transaktion ist nicht.
Der fünfte Befehl verwendet die ToString--Methode, um den aktuellen Wert der $TransactedString Variablen anzuzeigen. Da sie nicht Teil der Transaktion ist, wird nur der aktuelle Status der Zeichenfolge angezeigt.
Der sechste Befehl verwendet Use-Transaction, um denselben Befehl in der Transaktion auszuführen. Da der Befehl Teil der Transaktion ist, wird der aktuelle Wert der Zeichenfolge in der Transaktion ähnlich wie eine Vorschau der Transaktion angezeigt.
Der siebte Befehl verwendet das Cmdlet Complete-Transaction, um die Transaktion zu übernehmen.
Der letzte Befehl verwendet die ToString--Methode, um den resultierenden Wert der Variablen als Zeichenfolge anzuzeigen.
Beispiel 2: Zurücksetzen einer Transaktion
Start-Transaction
$transactedString = New-Object Microsoft.PowerShell.Commands.Management.TransactedString
$transactedString.Append("Hello")
Use-Transaction -TransactedScript { $transactedString.Append(", World") } -UseTransaction
Undo-Transaction
$transactedString.ToString()
Hello
Dieses Beispiel zeigt die Auswirkung des Rollbacks einer Transaktion, die Use-Transaction Befehle enthält. Wie alle Befehle in einer Transaktion werden bei einem Rollback der Transaktion die durchgeführten Änderungen verworfen, und die Daten bleiben unverändert.
Der erste Befehl verwendet Start-Transaction, um eine Transaktion zu starten.
Der zweite Befehl verwendet New-Object zum Erstellen eines TransactedString--Objekts. Es speichert das Objekt in der $TransactedString Variablen.
Der dritte Befehl, der nicht Teil der Transaktion ist, verwendet die Append Methode, um "Hello" zum Wert von $TransactedStringhinzuzufügen.
Der vierte Befehl verwendet Use-Transaction, um einen anderen Befehl auszuführen, der die methode Append in der Transaktion verwendet. Der Befehl verwendet die Append Methode, um ", World" zum Wert von $TransactedStringhinzuzufügen.
Der fünfte Befehl verwendet das Cmdlet Undo-Transaction zum Zurücksetzen der Transaktion. Daher werden alle befehle, die in der Transaktion ausgeführt werden, umgekehrt.
Der letzte Befehl verwendet die ToString--Methode, um den resultierenden Wert von $TransactedString als Zeichenfolge anzuzeigen. Die Ergebnisse zeigen, dass nur die Änderungen, die außerhalb der Transaktion vorgenommen wurden, auf das Objekt angewendet wurden.
Parameter
-TransactedScript
Gibt den Skriptblock an, der in der Transaktion ausgeführt wird. Geben Sie einen beliebigen gültigen Skriptblock ein, der in geschweifte Klammern ({}) eingeschlossen ist. Dieser Parameter ist erforderlich.
Parametereigenschaften
| Typ: | ScriptBlock |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | 0 |
| Obligatorisch: | True |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-UseTransaction
Enthält den Befehl in der aktiven Transaktion. Dieser Parameter ist nur gültig, wenn eine Transaktion ausgeführt wird. Weitere Informationen finden Sie unter about_Transactions.
Parametereigenschaften
| Typ: | SwitchParameter |
| Standardwert: | False |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
| Aliase: | usetx |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
CommonParameters
Dieses Cmdlet unterstützt die allgemeinen Parameter -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction und -WarningVariable. Weitere Informationen findest du unter about_CommonParameters.
Eingaben
None
Sie können keine Eingabe an dieses Cmdlet weiterleiten.
Ausgaben
PSObject
Dieses Cmdlet gibt das Ergebnis der Transaktion zurück.
Hinweise
- Der parameter UseTransaction enthält den Befehl in der aktiven Transaktion. Da das Cmdlet
Use-Transactionimmer in Transaktionen verwendet wird, ist dieser Parameter erforderlich, umUse-TransactionBefehl wirksam zu machen.