Delen via


Use-Transaction

Voegt het scriptblok toe aan de actieve transactie.

Syntaxis

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

Description

Met de Use-Transaction cmdlet wordt een scriptblok toegevoegd 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_Transactions voor 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 Use-Transaction u een script uitvoert op basis van een .NET Framework-object met transactiefuncties. In dit geval is het object een TransactedString-object .

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

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

De derde en vierde opdrachten gebruiken beide de methode Toevoegen 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 Toevoegen 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 gebruikt de methode Toevoegen om ', Wereld' 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 transactedString weer te geven als een tekenreeks. Nogmaals, één opdracht maakt deel uit van de transactie. De andere transactie is niet.

De vijfde opdracht gebruikt 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 uit te voeren in de transactie. 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 gebruikt de Complete-Transaction cmdlet om de transactie door te voeren.

De laatste opdracht gebruikt 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.

Met de tweede opdracht New-Object maakt u een TransactedString-object . Het object wordt opgeslagen in de $TransactedString variabele.

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 gebruikt de methode Toevoegen om ', Wereld' toe te voegen aan de waarde van $TransactedString.

De vijfde opdracht maakt gebruik van de cmdlet Undo-Transaction 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 als een tekenreeks weer te geven. 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_transactions voor 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 Use-Transaction cmdlet altijd wordt gebruikt in transacties, is deze parameter vereist om elke Use-Transaction opdracht effectief te maken.