Dela via


Use-Transaction

Lägger till skriptblocket i den aktiva transaktionen.

Syntax

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

Description

Cmdleten Use-Transaction lägger till ett skriptblock i en aktiv transaktion. På så sätt kan du utföra transacted scripting med hjälp av transaktionsaktiverade Microsoft .NET Framework-objekt. Skriptblocket kan bara innehålla transaktionsaktiverade .NET Framework-objekt, till exempel instanser av klassen Microsoft.PowerShell.Commands.Management.TransactedString.

Parametern UseTransaction, som är valfri för de flesta cmdletar, krävs när du använder den här cmdleten.

Use-Transaction är en av en uppsättning cmdletar som stöder transaktionsfunktionen i Windows PowerShell. Mer information finns i about_Transactions.

Exempel

Exempel 1: Skript med hjälp av ett transaktionsaktiverat objekt

PS C:\> Start-Transaction
PS C:\> $transactedString = New-Object Microsoft.PowerShell.Commands.Management.TransactedString
PS C:\> $transactedString.Append("Hello")
PS C:\> Use-Transaction -TransactedScript { $transactedString.Append(", World") } -UseTransaction
PS C:\> $transactedString.ToString()
Hello
PS C:\> Use-Transaction -TransactedScript { $transactedString.ToString() } -UseTransaction
Hello, World
PS C:\> Complete-Transaction
PS C:\> $transactedString.ToString()
Hello, World

Det här exemplet visar hur du använder Use-Transaction till skript mot ett transaktionsaktiverat .NET Framework-objekt. I det här fallet är objektet ett TransactedString- objekt.

Det första kommandot använder cmdleten Start-Transaction för att starta en transaktion.

Det andra kommandot använder kommandot New-Object för att skapa ett TransactedString--objekt. Objektet lagras i variabeln $TransactedString.

De tredje och fjärde kommandona använder båda metoden Lägg till i TransactedString--objektet för att lägga till text i värdet för $TransactedString. Ett kommando är en del av transaktionen. Det andra kommandot är inte.

Det tredje kommandot använder metoden Lägg till för den transakterade strängen för att lägga till Hello i värdet för $TransactedString. Eftersom kommandot inte ingår i transaktionen tillämpas ändringen omedelbart.

Det fjärde kommandot använder Use-Transaction för att lägga till text i strängen i transaktionen. Kommandot använder metoden Lägg till för att lägga till "World" i värdet för $TransactedString. Kommandot omges av klammerparenteser ( {} ) för att göra det till ett skriptblock. Parametern UseTransaction krävs i det här kommandot.

De femte och sjätte kommandona använder metoden ToString för TransactedString-objektet för att visa värdet för TransactedString- som en sträng. Återigen är ett kommando en del av transaktionen. Den andra transaktionen är inte det.

Det femte kommandot använder metoden ToString för att visa det aktuella värdet för variabeln $TransactedString. Eftersom den inte ingår i transaktionen visas endast strängens aktuella tillstånd.

Det sjätte kommandot använder Use-Transaction för att köra samma kommando i transaktionen. Eftersom kommandot är en del av transaktionen visas det aktuella värdet för strängen i transaktionen, ungefär som en förhandsversion av transaktionsändringarna.

Det sjunde kommandot använder cmdleten Complete-Transaction för att genomföra transaktionen.

Det sista kommandot använder metoden ToString för att visa variabelns resulterande värde som en sträng.

Exempel 2: Återställa en transaktion

PS C:\> Start-Transaction
PS C:\> $transactedString = New-Object Microsoft.PowerShell.Commands.Management.TransactedString
PS C:\> $transactedString.Append("Hello")
PS C:\> Use-Transaction -TransactedScript { $transactedString.Append(", World") } -UseTransaction
PS C:\> Undo-Transaction
PS C:\> $transactedString.ToString()
Hello

Det här exemplet visar effekten av att återställa en transaktion som innehåller kommandona Use-Transaction. Precis som alla kommandon i en transaktion ignoreras de transaktionsförändrade ändringarna när transaktionen återställs och data ändras inte.

Det första kommandot använder Start-Transaction för att starta en transaktion.

Det andra kommandot använder New-Object för att skapa ett TransactedString--objekt. Objektet lagras i variabeln $TransactedString.

Det tredje kommandot, som inte ingår i transaktionen, använder metoden Append för att lägga till "Hello" i värdet för $TransactedString.

Det fjärde kommandot använder Use-Transaction för att köra ett annat kommando som använder metoden Append i transaktionen. Kommandot använder metoden Lägg till för att lägga till "World" i värdet för $TransactedString.

Det femte kommandot använder cmdleten Undo-Transaction för att återställa transaktionen. Därför ångras alla kommandon som utförs i transaktionen.

Det sista kommandot använder metoden ToString för att visa det resulterande värdet för $TransactedString som en sträng. Resultatet visar att endast de ändringar som gjordes utanför transaktionen tillämpades på objektet.

Parametrar

-TransactedScript

Anger skriptblocket som körs i transaktionen. Ange ett giltigt skriptblock som omges av klammerparenteser ( { } ). Den här parametern krävs.

Typ:ScriptBlock
Position:0
Standardvärde:None
Obligatorisk:True
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-UseTransaction

Innehåller kommandot i den aktiva transaktionen. Den här parametern är endast giltig när en transaktion pågår. Mer information finns i about_Transactions.

Typ:SwitchParameter
Alias:usetx
Position:Named
Standardvärde:False
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

Indata

None

Du kan inte skicka indata till den här cmdleten.

Utdata

PSObject

Den här cmdleten returnerar resultatet av transaktionen.

Kommentarer

  • Parametern UseTransaction innehåller kommandot i den aktiva transaktionen. Eftersom cmdleten Use-Transaction alltid används i transaktioner krävs den här parametern för att alla use-transaction-kommando ska vara effektiva.