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.