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

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

Det här exemplet visar hur du använder Use-Transaction 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 append-metoden för TransactedString-objektet för att lägga till text i värdet $TransactedStringför . Ett kommando är en del av transaktionen. Det andra kommandot är inte.

Det tredje kommandot använder metoden Lägg till i den transacted strängen för att lägga till Hello i värdet $TransactedStringför . 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" till 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

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

Det här exemplet visar effekten av att återställa en transaktion som innehåller Use-Transaction kommandon. 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 append-metoden för att lägga till "Hello" i värdet $TransactedStringför .

Det fjärde kommandot använder Use-Transaction för att köra ett annat kommando som använder append-metoden i transaktionen. Kommandot använder metoden Lägg till för att lägga till " World" till 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 $TransactedString för 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 kommandon ska vara Use-Transaction effektiva.