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.