Delen via


about_Transactions

Korte beschrijving

Hierin wordt beschreven hoe u transacties beheert in PowerShell.

Lange beschrijving

Transacties worden ondersteund in PowerShell vanaf PowerShell 2.0. Met deze functie kunt u een transactie starten, aangeven welke opdrachten deel uitmaken van de transactie en een transactie doorvoeren of terugdraaien.

OVER TRANSACTIES

In PowerShell is een transactie een set van een of meer opdrachten die worden beheerd als een logische eenheid. Een transactie kan worden voltooid ('doorgevoerd'), waarmee gegevens worden gewijzigd die worden beïnvloed door de transactie. Een transactie kan ook volledig ongedaan worden gemaakt ('teruggedraaid'), zodat de betrokken gegevens niet door de transactie worden gewijzigd.

Omdat de opdrachten in een transactie worden beheerd als een eenheid, worden alle opdrachten doorgevoerd of worden alle opdrachten teruggedraaid.

Transacties worden veel gebruikt in gegevensverwerking, met name in databasebewerkingen en voor financiële transacties. Transacties worden meestal gebruikt wanneer het slechtste scenario voor een reeks opdrachten niet allemaal mislukt, maar dat sommige opdrachten slagen terwijl andere mislukken, waardoor het systeem een beschadigde, onwaar- of oninterpretabele status heeft die moeilijk te herstellen is.

TRANSACTIE-CMDLETS

PowerShell bevat verschillende cmdlets die zijn ontworpen voor het beheren van transacties.

  • Start-Transactie: Hiermee start u een nieuwe transactie.
  • Use-Transaction: voegt een opdracht of expressie toe aan de transactie. De opdracht moet objecten met transactie-functionaliteit gebruiken.
  • Ongedaan maken van transactie: hiermee wordt de transactie teruggedraaid, zodat er geen gegevens door de transactie worden gewijzigd.
  • Complete-Transaction: voert de transactie door. De gegevens die worden beïnvloed door de transactie, worden gewijzigd.
  • Get-Transaction: haalt informatie op over de actieve transactie.

Voor een lijst met transactie-cmdlets typt u:

get-command *transaction

Voor gedetailleerde informatie over de cmdlets typt u:

get-help use-transaction -detailed

ELEMENTEN WAARVOOR TRANSACTIES ZIJN INGESCHAKELD

Als u wilt deelnemen aan een transactie, moeten zowel de cmdlet als de provider transacties ondersteunen. Deze functie is ingebouwd in de objecten die worden beïnvloed door de transactie.

De PowerShell Registry-provider ondersteunt transacties in Windows Vista. Het TransactedString-object (Microsoft.PowerShell.Commands.Management.TransactedString) werkt met elk besturingssysteem waarop PowerShell wordt uitgevoerd.

Andere PowerShell-providers kunnen transacties ondersteunen. Als u de PowerShell-providers in uw sessie wilt vinden die transacties ondersteunen, gebruikt u de volgende opdracht om de waarde 'Transacties' te vinden in de eigenschap Capabilities van providers:

get-psprovider | where {$_.Capabilities -like "*transactions*"}

Zie de Help voor de provider voor meer informatie over een provider. Als u hulp bij providers wilt krijgen, typt u:

get-help <provider-name>

Als u bijvoorbeeld Help voor de registerprovider wilt ophalen, typt u:

get-help registry

DE PARAMETER USETRANSACTION

Cmdlets die transacties kunnen ondersteunen, hebben een UseTransaction-parameter. Deze parameter bevat de opdracht in de actieve transactie. U kunt de volledige parameternaam of de alias usetx gebruiken.

De parameter kan alleen worden gebruikt wanneer de sessie een actieve transactie bevat. Als u een opdracht invoert met de parameter UseTransaction wanneer er geen actieve transactie is, mislukt de opdracht.

Als u cmdlets wilt zoeken met de parameter UseTransaction, typt u:

get-help * -parameter UseTransaction

In PowerShell Core ondersteunen alle cmdlets die zijn ontworpen voor gebruik met PowerShell-providers transacties. Als gevolg hiervan kunt u de provider-cmdlets gebruiken om transacties te beheren.

Zie about_Providers voor meer informatie over PowerShell-providers.

HET TRANSACTIEOBJECT

Transacties worden weergegeven in PowerShell door een transactieobject, System.Management.Automation.Transaction.

Het object heeft de volgende eigenschappen:

  • RollbackPreference: bevat de terugdraaivoorkeur die is ingesteld voor de huidige transactie. U kunt de voorkeur voor terugdraaien instellen wanneer u Start-Transaction gebruikt om de transactie te starten.

    De terugdraaivoorkeur bepaalt de voorwaarden waaronder de transactie automatisch wordt teruggedraaid. Geldige waarden zijn Fout, TerminatingError en Nooit. De standaardwaarde is Fout.

  • Status: Bevat de huidige status van de transactie. Geldige waarden zijn Actief, Doorgevoerd en Teruggedraaid.

  • SubscriberCount: bevat het aantal abonnees voor de transactie. Een abonnee wordt toegevoegd aan een transactie wanneer u een transactie start terwijl er een andere transactie wordt uitgevoerd. Het aantal abonnees wordt afgebroken wanneer een abonnee de transactie doorvoert.

ACTIEVE TRANSACTIES

In PowerShell is slechts één transactie tegelijk actief en kunt u alleen de actieve transactie beheren. Meerdere transacties kunnen tegelijkertijd in dezelfde sessie worden uitgevoerd, maar alleen de meest recent gestarte transactie is actief.

Als gevolg hiervan kunt u geen bepaalde transactie opgeven wanneer u de transactie-cmdlets gebruikt. Opdrachten zijn altijd van toepassing op de actieve transactie.

Dit is het meest duidelijk in het gedrag van de Cmdlet Get-Transaction. Wanneer u een opdracht Get-Transaction invoert, krijgt Get-Transaction altijd slechts één transactieobject. Dit object is het object dat de actieve transactie vertegenwoordigt.

Als u een andere transactie wilt beheren, moet u eerst de actieve transactie voltooien door deze door te voeren of terug te draaien. Wanneer u dit doet, wordt de vorige transactie automatisch actief. Transacties worden actief in de omgekeerde volgorde waarin ze worden gestart, zodat de laatst gestarte transactie altijd actief is.

ABONNEES EN ONAFHANKELIJKE TRANSACTIES

Als u een transactie start terwijl een andere transactie wordt uitgevoerd, start PowerShell standaard geen nieuwe transactie. In plaats daarvan wordt een 'abonnee' toegevoegd aan de huidige transactie.

Wanneer een transactie meerdere abonnees heeft, wordt met één opdracht Transactie ongedaan maken op elk moment de volledige transactie voor alle abonnees teruggedraaid. Als u de transactie echter wilt doorvoeren, moet u voor elke abonnee een opdracht Volledige transactie invoeren.

Als u het aantal abonnees voor een transactie wilt vinden, controleert u de eigenschap SubscriberCount van het transactieobject. Met de volgende opdracht wordt bijvoorbeeld de cmdlet Get-Transaction gebruikt om de waarde op te halen van de eigenschap SubscriberCount van de actieve transactie:

(Get-Transaction).SubscriberCount

Het toevoegen van een abonnee is het standaardgedrag omdat de meeste transacties die worden gestart terwijl een andere transactie wordt uitgevoerd, betrekking hebben op de oorspronkelijke transactie. In het typische model roept een script met een transactie een helperscript aan dat een eigen transactie bevat. Omdat de transacties zijn gerelateerd, moeten ze worden teruggedraaid of vastgelegd als een eenheid.

U kunt echter een transactie starten die onafhankelijk is van de huidige transactie met behulp van de onafhankelijke parameter van de cmdlet Start-Transaction.

Wanneer u een onafhankelijke transactie start, maakt Start-Transaction een nieuw transactieobject en wordt de nieuwe transactie de actieve transactie. De onafhankelijke transactie kan worden doorgevoerd of teruggedraaid zonder dat dit van invloed is op de oorspronkelijke transactie.

Wanneer de onafhankelijke transactie is voltooid (doorgevoerd of teruggedraaid), wordt de oorspronkelijke transactie weer de actieve transactie.

GEGEVENS WIJZIGEN

Wanneer u transacties gebruikt om gegevens te wijzigen, worden de gegevens die worden beïnvloed door de transactie pas gewijzigd wanneer u de transactie doorvoert. Dezelfde gegevens kunnen echter worden gewijzigd door opdrachten die geen deel uitmaken van de transactie.

Houd hier rekening mee wanneer u transacties gebruikt om gedeelde gegevens te beheren. Databases hebben meestal mechanismen waarmee de gegevens worden vergrendeld terwijl u eraan werkt, waardoor andere gebruikers en andere opdrachten, scripts en functies deze niet kunnen wijzigen.

De vergrendeling is echter een functie van de database. Het is niet gerelateerd aan transacties. Als u werkt in een bestandssysteem met transactie-functionaliteit of een ander gegevensarchief, kunnen de gegevens worden gewijzigd terwijl de transactie wordt uitgevoerd.

Voorbeelden

In de voorbeelden in deze sectie wordt gebruikgemaakt van de PowerShell-registerprovider en wordt ervan uitgegaan dat u er bekend mee bent. Voor informatie over de registerprovider typt u 'get-help registry'.

VOORBEELD 1: EEN TRANSACTIE DOORVOEREN

Gebruik de cmdlet Start-Transaction om een transactie te maken. Met de volgende opdracht wordt een transactie gestart met de standaardinstellingen.

start-transaction

Als u opdrachten in de transactie wilt opnemen, gebruikt u de parameter UseTransaction van de cmdlet. Opdrachten zijn standaard niet opgenomen in de transactie,

De volgende opdracht, waarmee bijvoorbeeld de huidige locatie in de softwaresleutel van de HKCU: station wordt ingesteld, is niet opgenomen in de transactie.

cd hkcu:\Software

Met de volgende opdracht, waarmee de sleutel MyCompany wordt gemaakt, wordt de parameter UseTransaction van de cmdlet New-Item gebruikt om de opdracht op te nemen in de actieve transactie.

new-item MyCompany -UseTransaction

De opdracht retourneert een object dat de nieuwe sleutel vertegenwoordigt, maar omdat de opdracht deel uitmaakt van de transactie, wordt het register nog niet gewijzigd.

Hive: HKEY_CURRENT_USER\Software

SKC  VC Name                           Property
---  -- ----                           --------
  0   0 MyCompany                      {}

Als u de transactie wilt doorvoeren, gebruikt u de cmdlet Complete-Transaction. Omdat dit altijd van invloed is op de actieve transactie, kunt u de transactie niet opgeven.

complete-transaction

Hierdoor wordt de MyCompany-sleutel toegevoegd aan het register.

dir m*
Hive: HKEY_CURRENT_USER\software

SKC  VC Name                           Property
---  -- ----                           --------
 83   1 Microsoft                      {(default)}
  0   0 MyCompany                      {}

VOORBEELD 2: EEN TRANSACTIE TERUGDRAAIEN

Gebruik de cmdlet Start-Transaction om een transactie te maken. Met de volgende opdracht wordt een transactie gestart met de standaardinstellingen.

start-transaction

Met de volgende opdracht, waarmee de sleutel MyOtherCompany wordt gemaakt, wordt de parameter UseTransaction van de cmdlet New-Item gebruikt om de opdracht op te nemen in de actieve transactie.

new-item MyOtherCompany -UseTransaction

De opdracht retourneert een object dat de nieuwe sleutel vertegenwoordigt, maar omdat de opdracht deel uitmaakt van de transactie, wordt het register nog niet gewijzigd.

Hive: HKEY_CURRENT_USER\Software

SKC  VC Name                           Property
---  -- ----                           --------
  0   0 MyOtherCompany                 {}

Gebruik de cmdlet Undo Transaction om de transactie terug te draaien. Omdat dit altijd van invloed is op de actieve transactie, geeft u de transactie niet op.

Undo-transaction

Het resultaat is dat de MyOtherCompany-sleutel niet wordt toegevoegd aan het register.

dir m*
Hive: HKEY_CURRENT_USER\software

SKC  VC Name                           Property
---  -- ----                           --------
 83   1 Microsoft                      {(default)}
  0   0 MyCompany                      {}

VOORBEELD 3: EEN VOORBEELD VAN EEN TRANSACTIE BEKIJKEN

Normaal gesproken worden de opdrachten die worden gebruikt in een transactiewijzigingsgegevens. De opdrachten waarmee gegevens worden opgehaald, zijn echter ook handig in een transactie, omdat ze gegevens binnen de transactie ophalen. Dit biedt een voorbeeld van de wijzigingen die de transactie doorvoeren.

In het volgende voorbeeld ziet u hoe u de opdracht Get-ChildItem (de alias is 'dir') gebruikt om een voorbeeld van de wijzigingen in een transactie te bekijken.

Met de volgende opdracht wordt een transactie gestart.

start-transaction

De volgende opdracht maakt gebruik van de cmdlet New-ItemProperty om de registervermelding MyKey toe te voegen aan de MyCompany-sleutel. De opdracht gebruikt de parameter UseTransaction om de opdracht in de transactie op te nemen.

new-itemproperty -path MyCompany -Name MyKey -value 123 -UseTransaction

De opdracht retourneert een object dat de nieuwe registervermelding vertegenwoordigt, maar de registervermelding wordt niet gewijzigd.

MyKey
-----
123

Als u de items wilt ophalen die zich momenteel in het register bevinden, gebruikt u de opdracht Get-ChildItem ('dir') zonder de parameter UseTransaction. Met de volgende opdracht worden items opgehaald die beginnen met 'M'.

dir m*

Het resultaat geeft aan dat er nog geen vermeldingen zijn toegevoegd aan de sleutel Mijnbedrijf.

Hive: HKEY_CURRENT_USER\Software

SKC  VC Name                           Property
---  -- ----                           --------
 83   1 Microsoft                      {(default)}
  0   0 MyCompany                      {}

Als u een voorbeeld wilt bekijken van het effect van het doorvoeren van de transactie, voert u de opdracht Get-ChildItem (dir) in met de parameter UseTransaction. Deze opdracht heeft een weergave van de gegevens vanuit de transactie.

dir m* -useTransaction

Het resultaat laat zien dat, als de transactie is doorgevoerd, de mykey-vermelding wordt toegevoegd aan de mijnbedrijfssleutel.

Hive: HKEY_CURRENT_USER\Software

SKC  VC Name                           Property
---  -- ----                           --------
 83   1 Microsoft                      {(default)}
  0   1 MyCompany                      {MyKey}

VOORBEELD 4: TRANSACTED- EN NIET-TRANSACTED OPDRACHTEN COMBINEREN

U kunt niet-verwerkte opdrachten invoeren tijdens een transactie. De niet-uitgevoerde opdrachten zijn onmiddellijk van invloed op de gegevens, maar ze hebben geen invloed op de transactie. Met de volgende opdracht wordt een transactie gestart in de HKCU:\Software-registersleutel.

start-transaction

De volgende drie opdrachten gebruiken de cmdlet New-Item om sleutels toe te voegen aan het register. De eerste en derde opdrachten gebruiken de parameter UseTransaction om de opdrachten in de transactie op te nemen. Met de tweede opdracht wordt de parameter weggelaten. Omdat de tweede opdracht niet is opgenomen in de transactie, is deze onmiddellijk van kracht.

new-item MyCompany1 -UseTransaction
new-item MyCompany2
new-item MyCompany3 -UseTransaction

Als u de huidige status van het register wilt weergeven, gebruikt u de opdracht Get-ChildItem (dir) zonder de parameter UseTransaction. Met deze opdracht worden items opgehaald die beginnen met 'M'.

dir m*

Het resultaat laat zien dat de sleutel MyCompany2 wordt toegevoegd aan het register, maar dat de sleutels MyCompany1 en MyCompany3, die deel uitmaken van de transactie, niet worden toegevoegd.

Hive: HKEY_CURRENT_USER\Software

SKC  VC Name                           Property
---  -- ----                           --------
 83   1 Microsoft                      {(default)}
  0    0 MyCompany2                     {}

Met de volgende opdracht wordt de transactie doorgevoerd.

complete-transaction

Nu worden de sleutels die zijn toegevoegd als onderdeel van de transactie, weergegeven in het register.

dir m*
Hive: HKEY_CURRENT_USER\Software

SKC  VC Name                           Property
---  -- ----                           --------
83   1 Microsoft                      {(default)}
0    0 MyCompany1                     {}
0    0 MyCompany2                     {}
0    0 MyCompany3                     {}

VOORBEELD 5: AUTOMATISCH TERUGDRAAIEN GEBRUIKEN

Wanneer een opdracht in een transactie een fout van welke aard dan ook genereert, wordt de transactie automatisch teruggedraaid.

Dit standaardgedrag is ontworpen voor scripts die transacties uitvoeren. Scripts worden doorgaans goed getest en bevatten logica voor foutafhandeling, dus fouten worden niet verwacht en moeten de transactie beëindigen.

Met de eerste opdracht wordt een transactie gestart in de REGISTERsleutel HKCU:\Software.

start-transaction

De volgende opdracht maakt gebruik van de cmdlet New-Item om de MyCompany-sleutel toe te voegen aan het register. De opdracht gebruikt de parameter UseTransaction (de alias is usetx) om de opdracht in de transactie op te nemen.

New-Item MyCompany -UseTX

Omdat de MyCompany-sleutel al in het register bestaat, mislukt de opdracht en wordt de transactie teruggedraaid.

New-Item : A key at this path already exists
At line:1 char:9
+ new-item <<<<  MyCompany -usetx

Met een opdracht Get-Transaction wordt bevestigd dat de transactie is teruggedraaid en dat de SubscriberCount 0 is.

RollbackPreference   SubscriberCount   Status
------------------   ---------------   ------
Error                0                 RolledBack

VOORBEELD 6: DE TERUGDRAAIVOORKEUR WIJZIGEN

Als u wilt dat de transactie fouttoleranter is, kunt u de parameter RollbackPreference van Start-Transaction gebruiken om de voorkeur te wijzigen.

Met de volgende opdracht wordt een transactie gestart met de terugdraaivoorkeur 'Nooit'.

start-transaction -rollbackpreference Never

In dit geval wordt de transactie niet automatisch teruggedraaid wanneer de opdracht mislukt.

New-Item MyCompany -UseTX
New-Item : A key at this path already exists
At line:1 char:9
+ new-item <<<<  MyCompany -usetx

Omdat de transactie nog steeds actief is, kunt u de opdracht opnieuw indienen als onderdeel van de transactie.

New-Item MyOtherCompany -UseTX

VOORBEELD 7: DE CMDLET USE-TRANSACTION GEBRUIKEN

Met de cmdlet Use-Transaction kunt u directe scripting uitvoeren op Microsoft .NET Framework-objecten met transactie-functionaliteit. Use-Transaction maakt gebruik van een scriptblok dat alleen opdrachten en expressies kan bevatten die gebruikmaken van .NET Framework-objecten waarvoor transacties zijn ingeschakeld, zoals exemplaren van de klasse Microsoft.PowerShell.Commands.Management.TransactedString.

Met de volgende opdracht wordt een transactie gestart.

start-transaction

Met de volgende opdracht New-Object maakt u een exemplaar van de klasse TransactedString en slaat u deze op in de $t variabele.

$t = New-Object Microsoft.PowerShell.Commands.Management.TransactedString

De volgende opdracht gebruikt de methode Toevoegen van het Object TransactedString om tekst toe te voegen aan de tekenreeks. Omdat de opdracht geen deel uitmaakt van de transactie, is de wijziging onmiddellijk van kracht.

$t.append("Windows")

De volgende opdracht maakt gebruik van dezelfde toevoegmethode om tekst toe te voegen, maar de tekst wordt toegevoegd als onderdeel van de transactie. De opdracht wordt tussen accolades geplaatst en wordt ingesteld als de waarde van de ScriptBlock-parameter van Use-Transaction. De UseTransaction-parameter (UseTx) is vereist.

use-transaction {$t.append(" PowerShell")} -usetx

Als u de huidige inhoud van de transacted string in $t wilt zien, gebruikt u de Methode ToString van het Object TransactedString.

$t.tostring()

In de uitvoer ziet u dat alleen de niet-doorgevoerde wijzigingen effectief zijn.

Windows

Als u de huidige inhoud van de transacted string in $t wilt zien vanuit de transactie, sluit u de expressie in in een opdracht Use-Transaction.

use-transaction {$s.tostring()} -usetx

De uitvoer toont de transactieweergave.

PowerShell

Met de volgende opdracht wordt de transactie doorgevoerd.

complete-transaction

De uiteindelijke tekenreeks weergeven:

$t.tostring()
PowerShell

VOORBEELD 8: TRANSACTIES MET MEERDERE ABONNEES BEHEREN

Wanneer u een transactie start terwijl een andere transactie wordt uitgevoerd, maakt PowerShell standaard geen tweede transactie. In plaats daarvan wordt een abonnee toegevoegd aan de huidige transactie.

In dit voorbeeld ziet u hoe u een transactie met meerdere abonnees kunt weergeven en beheren.

Begin met het starten van een transactie in de HKCU:\Software-sleutel.

start-transaction

De volgende opdracht maakt gebruik van de opdracht Get-Transaction om de actieve transactie op te halen.

get-transaction

Het resultaat toont het object dat de actieve transactie vertegenwoordigt.

RollbackPreference   SubscriberCount   Status
------------------   ---------------   ------
Error                1                 Active

Met de volgende opdracht wordt de myCompany-sleutel aan het register toegevoegd. De opdracht gebruikt de parameter UseTransaction om de opdracht in de transactie op te nemen.

new-item MyCompany -UseTransaction

De volgende opdracht maakt gebruik van de opdracht Start-Transaction om een transactie te starten. Hoewel deze opdracht wordt getypt bij de opdrachtprompt, is dit scenario waarschijnlijker wanneer u een script uitvoert dat een transactie bevat.

start-transaction

Met een opdracht Get-Transaction ziet u dat het aantal abonnees op het transactieobject wordt verhoogd. De waarde is nu 2.

RollbackPreference   SubscriberCount   Status
------------------   ---------------   ------
Error                2                 Active

De volgende opdracht maakt gebruik van de cmdlet New-ItemProperty om de registervermelding MyKey toe te voegen aan de MyCompany-sleutel. De parameter UseTransaction wordt gebruikt om de opdracht in de transactie op te nemen.

new-itemproperty -path MyCompany -name MyKey -UseTransaction

De MyCompany-sleutel bestaat niet in het register, maar deze opdracht slaagt omdat de twee opdrachten deel uitmaken van dezelfde transactie.

Met de volgende opdracht wordt de transactie doorgevoerd. Als de transactie wordt teruggedraaid, wordt de transactie teruggedraaid voor alle abonnees.

complete-transaction

Met de opdracht Get-Transaction ziet u dat de abonnee op het transactieobject 1 telt, maar de waarde van Status is nog steeds actief (niet doorgevoerd).

RollbackPreference   SubscriberCount   Status
------------------   ---------------   ------
Error                1                 Active

Als u het doorvoeren van de transactie wilt voltooien, voert u een tweede opdracht Complete- Transaction in. Als u een transactie met meerdere abonnees wilt doorvoeren, moet u één opdracht complete transactie invoeren voor elke opdracht Start-Transaction.

complete-transaction

Een andere opdracht Get-Transaction geeft aan dat de transactie is doorgevoerd.

RollbackPreference   SubscriberCount   Status
------------------   ---------------   ------
Error                0                 Committed

VOORBEELD 9: ONAFHANKELIJKE TRANSACTIES BEHEREN

Wanneer u een transactie start terwijl een andere transactie wordt uitgevoerd, kunt u de onafhankelijke parameter van Start-Transaction gebruiken om de nieuwe transactie onafhankelijk van de oorspronkelijke transactie te maken.

Wanneer u dit doet, maakt Start-Transaction een nieuw transactieobject en wordt de nieuwe transactie de actieve transactie.

Begin met het starten van een transactie in de HKCU:\Software-sleutel.

start-transaction

De volgende opdracht maakt gebruik van de opdracht Get-Transaction om de actieve transactie op te halen.

get-transaction

Het resultaat toont het object dat de actieve transactie vertegenwoordigt.

RollbackPreference   SubscriberCount   Status
------------------   ---------------   ------
Error                1                 Active

Met de volgende opdracht wordt de registersleutel MyCompany toegevoegd als onderdeel van de transactie. De parameter UseTransaction (UseTx) wordt gebruikt om de opdracht in de actieve transactie op te nemen.

new-item MyCompany -use

Met de volgende opdracht wordt een nieuwe transactie gestart. De opdracht gebruikt de onafhankelijke parameter om aan te geven dat deze transactie geen abonnee is van de actieve transactie.

start-transaction -independent

Wanneer u een onafhankelijke transactie maakt, wordt de nieuwe (meest recent gemaakte) transactie de actieve transactie. U kunt een opdracht Get-Transaction gebruiken om de actieve transactie op te halen.

get-transaction

Houd er rekening mee dat de SubscriberCount van de transactie 1 is, wat aangeeft dat er geen andere abonnees zijn en dat de transactie nieuw is.

RollbackPreference   SubscriberCount   Status
------------------   ---------------   ------
Error                1                 Active

De nieuwe transactie moet zijn voltooid (vastgelegd of teruggedraaid) voordat u de oorspronkelijke transactie kunt beheren.

Met de volgende opdracht wordt de sleutel MyOtherCompany toegevoegd aan het register. De parameter UseTransaction (UseTx) wordt gebruikt om de opdracht in de actieve transactie op te nemen.

new-item MyOtherCompany -usetx

Nu kunt u de transactie terugdraaien. Als er één transactie met twee abonnees was, zou het terugdraaien van de transactie de hele transactie terugdraaien voor alle abonnees.

Omdat deze transacties echter onafhankelijk zijn, annuleert het terugdraaien van de nieuwste transactie de registerwijzigingen en maakt de oorspronkelijke transactie de actieve transactie.

undo-transaction

Met een opdracht Get-Transaction wordt bevestigd dat de oorspronkelijke transactie nog steeds actief is in de sessie.

get-transaction
RollbackPreference   SubscriberCount   Status
------------------   ---------------   ------
Error                1                 Active

Met de volgende opdracht wordt de actieve transactie doorgevoerd.

complete-transaction

Met de opdracht Get-ChildItem ziet u dat het register is gewijzigd.

dir m*
Hive: HKEY_CURRENT_USER\Software

SKC  VC Name                           Property
---  -- ----                           --------
 83   1 Microsoft                      {(default)}
  0   0 MyCompany                      {}

Zie ook