Delen via


Use-Transaction

Hiermee voegt u het scriptblok toe aan de actieve transactie.

Syntax

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

Description

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

De parameter UseTransaction , die voor de meeste cmdlets optioneel is, 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: een script uitvoeren met behulp van een object waarvoor transacties zijn ingeschakeld

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

In dit voorbeeld ziet u hoe u Use-Transaction gebruikt om een script uit te voeren op een .NET Framework-object waarvoor transacties zijn ingeschakeld. In dit geval is het object een TransactedString-object .

De eerste opdracht maakt gebruik van de cmdlet Start-Transaction 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 opdracht maken beide gebruik van 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 dat niet.

De derde opdracht gebruikt de methode Toevoegen van de transacted tekenreeks 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 opdracht gebruiken de methode ToString van het object TransactedString om de waarde van de TransactedString weer te geven als een tekenreeks. Nogmaals, één opdracht maakt deel uit van de transactie. De andere transactie is dat niet.

De vijfde opdracht gebruikt de methode ToString om de huidige waarde van de variabele $TransactedString 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, vergelijkbaar met een voorbeeld van de transactiewijzigingen.

De zevende opdracht maakt gebruik van de cmdlet Complete-Transaction 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

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

In dit voorbeeld ziet u het effect van het terugdraaien van een transactie met Use-Transaction-opdrachten . Net als alle opdrachten in een transactie, worden de doorgevoerde wijzigingen genegeerd wanneer de transactie wordt teruggedraaid en blijven 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 'Hello' toe te voegen aan de waarde van $TransactedString.

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

De vijfde opdracht gebruikt 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 gebruikt de methode ToString om de resulterende waarde van $TransactedString weer te geven als een tekenreeks. De resultaten laten zien 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 tussen accolades in ( { } ). Deze parameter is vereist.

Type:ScriptBlock
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-UseTransaction

Hiermee wordt de opdracht opgenomen in de actieve transactie. Deze parameter is alleen geldig wanneer een transactie wordt uitgevoerd. Zie about_Transactions voor meer informatie.

Type:SwitchParameter
Aliases:usetx
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Invoerwaarden

None

U kunt geen invoer doorsnijden naar deze cmdlet.

Uitvoerwaarden

PSObject

Deze cmdlet retourneert het resultaat van de transactie.

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.