Delen via


Use-Transaction

Voegt het scriptblok toe aan de actieve transactie.

Syntaxis

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

Description

De cmdlet Use-Transaction voegt een scriptblok toe aan een actieve transactie. Hiermee kunt u transacted scripting uitvoeren met behulp van Microsoft .NET Framework-objecten waarvoor transacties zijn ingeschakeld. Het scriptblok kan alleen .NET Framework-objecten bevatten waarvoor transacties zijn ingeschakeld, zoals exemplaren van de klasse Microsoft.PowerShell.Commands.Management.TransactedString.

De parameter UseTransaction, die optioneel is voor de meeste cmdlets, is vereist wanneer u deze cmdlet gebruikt.

Use-Transaction is een van een set cmdlets die ondersteuning bieden voor de transactiefunctie in Windows PowerShell. Zie about_Transactionsvoor meer informatie.

Voorbeelden

Voorbeeld 1: Script met behulp van een object waarvoor transacties zijn ingeschakeld

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 dit voorbeeld ziet u hoe u Use-Transaction gebruikt om een script uit te voeren op een .NET Framework-object met transactiefuncties. In dit geval is het object een TransactedString--object.

De eerste opdracht maakt gebruik van de Start-Transaction cmdlet om een transactie te starten.

De tweede opdracht gebruikt de opdracht New-Object om een TransactedString--object te maken. Het object wordt opgeslagen in de variabele $TransactedString.

De derde en vierde opdrachten gebruiken beide de methode Append van het object TransactedString om tekst toe te voegen aan de waarde van $TransactedString. Eén opdracht maakt deel uit van de transactie. De andere opdracht is niet.

De derde opdracht maakt gebruik van de methode Append van de transacted string om Hello toe te voegen aan de waarde van $TransactedString. Omdat de opdracht geen deel uitmaakt van de transactie, wordt de wijziging onmiddellijk toegepast.

De vierde opdracht gebruikt Use-Transaction om tekst toe te voegen aan de tekenreeks in de transactie. De opdracht maakt gebruik van de methode Append om ', World' toe te voegen aan de waarde van $TransactedString. De opdracht staat tussen accolades ({}) om er een scriptblok van te maken. De parameter UseTransaction is vereist in deze opdracht.

De vijfde en zesde opdrachten gebruiken de methode ToString van het object TransactedString om de waarde van de TransactedString- als een tekenreeks weer te geven. Nogmaals, één opdracht maakt deel uit van de transactie. De andere transactie is niet.

De vijfde opdracht maakt gebruik van de methode ToString om de huidige waarde van de $TransactedString variabele weer te geven. Omdat deze geen deel uitmaakt van de transactie, wordt alleen de huidige status van de tekenreeks weergegeven.

De zesde opdracht gebruikt Use-Transaction om dezelfde opdracht in de transactie uit te voeren. Omdat de opdracht deel uitmaakt van de transactie, wordt de huidige waarde van de tekenreeks in de transactie weergegeven, net zoals een voorbeeld van de transactiewijzigingen.

De zevende opdracht maakt gebruik van de Complete-Transaction cmdlet om de transactie door te voeren.

De laatste opdracht maakt gebruik van de methode ToString om de resulterende waarde van de variabele weer te geven als een tekenreeks.

Voorbeeld 2: Een transactie terugdraaien

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

In dit voorbeeld ziet u het effect van het terugdraaien van een transactie met Use-Transaction opdrachten. Net als bij alle opdrachten in een transactie, worden de doorgevoerde wijzigingen verwijderd wanneer de transactie wordt teruggedraaid en worden de gegevens ongewijzigd.

De eerste opdracht gebruikt Start-Transaction om een transactie te starten.

De tweede opdracht gebruikt New-Object om een TransactedString--object te maken. Het object wordt opgeslagen in de variabele $TransactedString.

De derde opdracht, die geen deel uitmaakt van de transactie, gebruikt de methode Toevoegen om 'Hallo' toe te voegen aan de waarde van $TransactedString.

De vierde opdracht gebruikt Use-Transaction om een andere opdracht uit te voeren die gebruikmaakt van de methode Toevoegen in de transactie. De opdracht maakt gebruik van de methode Append om ', World' toe te voegen aan de waarde van $TransactedString.

De vijfde opdracht gebruikt de Undo-Transaction cmdlet om de transactie terug te draaien. Als gevolg hiervan worden alle opdrachten die in de transactie worden uitgevoerd, omgekeerd.

De laatste opdracht maakt gebruik van de methode ToString om de resulterende waarde van $TransactedString weer te geven als een tekenreeks. De resultaten tonen aan dat alleen de wijzigingen die buiten de transactie zijn aangebracht, zijn toegepast op het object.

Parameters

-TransactedScript

Hiermee geeft u het scriptblok op dat wordt uitgevoerd in de transactie. Voer een geldig scriptblok in tussen accolades ({}). Deze parameter is vereist.

Type:ScriptBlock
Position:0
Default value:None
Vereist:True
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-UseTransaction

Bevat de opdracht in de actieve transactie. Deze parameter is alleen geldig wanneer een transactie wordt uitgevoerd. Zie about_transactionsvoor meer informatie.

Type:SwitchParameter
Aliassen:usetx
Position:Named
Default value:False
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

Invoerwaarden

None

U kunt invoer voor deze cmdlet niet doorsluisen.

Uitvoerwaarden

PSObject

Met deze cmdlet wordt het resultaat van de transactie geretourneerd.

Notities

  • De parameter UseTransaction bevat de opdracht in de actieve transactie. Omdat de cmdlet Use-Transaction altijd wordt gebruikt in transacties, is deze parameter vereist om elke Use-Transaction opdracht effectief te maken.