Complete-Transaction
Genomför den aktiva transaktionen.
Syntax
Complete-Transaction
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
Cmdleten Complete-Transaction
genomför en aktiv transaktion. När du genomför en transaktion slutförs kommandona i transaktionen och de data som påverkas av kommandona ändras.
Om transaktionen innehåller flera prenumeranter måste du ange ett Complete-Transaction
kommando för varje Start-Transaction
kommando för att genomföra transaktionen.
Cmdleten Complete-Transaction
är en av en uppsättning cmdletar som stöder transaktionsfunktionen i Windows PowerShell.
Mer information finns i about_Transactions.
Exempel
Exempel 1: Checka in en transaktion
Set-Location hkcu:\software
Start-Transaction
New-Item MyCompany -UseTransaction
Get-ChildItem m*
Hive: HKEY_CURRENT_USER\software
SKC VC Name Property
--- -- ---- --------
82 1 Microsoft {(default)}
Complete-Transaction
Get-ChildItem m*
Hive: HKEY_CURRENT_USER\Software
SKC VC Name Property
--- -- ---- --------
82 1 Microsoft {(default)}
0 0 MyCompany {}
Det här exemplet visar vad som händer när du använder cmdleten Complete-Transaction
för att checka in en transaktion.
Kommandot Start-Transaction
startar transaktionen. Kommandot New-Item använder parametern UseTransaction för att inkludera kommandot i transaktionen.
Det första Get-ChildItem
kommandot visar att det nya objektet ännu inte har lagts till i registret.
Kommandot Complete-Transaction
checkar in transaktionen, vilket gör registerändringen effektiv. Därför visar det andra Get-ChildItem
kommandot att registret har ändrats.
Exempel 2: Checka in en transaktion som har fler än en prenumerant
Set-Location hkcu:\software
Start-Transaction
New-Item MyCompany -UseTransaction
Hive: HKEY_CURRENT_USER\Software
SKC VC Name Property
--- -- ---- --------
0 0 MyCompany {}
Start-Transaction
Get-Transaction
RollbackPreference SubscriberCount Status
------------------ --------------- ------
Error 2 Active
New-ItemProperty -Path MyCompany -Name MyKey -Value -UseTransaction
MyKey
-----
123
Complete-Transaction
Get-Transaction
RollbackPreference SubscriberCount Status
------------------ --------------- ------
Error 1 Active
Get-ChildItem m*
Hive: HKEY_CURRENT_USER\Software
SKC VC Name Property
--- -- ---- --------
82 1 Microsoft {(default)}
Complete-Transaction
Get-ChildItem m*
Hive: HKEY_CURRENT_USER\Software
SKC VC Name Property
--- -- ---- --------
82 1 Microsoft {(default)}
0 1 MyCompany {MyKey}
Det här exemplet visar hur du använder Complete-Transaction
för att checka in en transaktion som har fler än en prenumerant.
Om du vill checka in en transaktion med flera prenumeranter måste du ange ett Complete-Transaction
kommando för varje Start-Transaction
kommando. Data ändras bara när det slutliga Complete-Transaction
kommandot skickas.
I demonstrationssyfte visar det här exemplet en serie kommandon som angetts på kommandoraden. I praktiken kommer transaktioner sannolikt att köras i skript, där den sekundära transaktionen körs av en funktion eller ett hjälpskript som anropas av huvudskriptet.
I det här exemplet startar ett Start-Transaction
kommando transaktionen. Ett New-Item
kommando med parametern UseTransaction lägger till nyckeln MyCompany i programvarunyckeln. Även om cmdleten New-Item
returnerar ett nyckelobjekt ändras inte data i registret ännu.
Ett andra Start-Transaction
kommando lägger till en andra prenumerant i den befintliga transaktionen. Cmdleten Get-Transaction
bekräftar att antalet prenumeranter är 2. Ett New-ItemProperty-kommando med parametern UseTransaction lägger till en registerpost i den nya MyCompany-nyckeln. Återigen returnerar kommandot ett värde, men registret ändras inte.
Det första Complete-Transaction
kommandot minskar antalet prenumeranter med 1. Detta bekräftas av ett Get-Transaction
kommando. Inga data ändras dock, vilket framgår av ett Get-ChildItem m*
kommando.
Det andra Complete-Transaction
kommandot checkar in hela transaktionen och ändrar data i registret. Detta bekräftas av ett andra Get-ChildItem m*
kommando som visar ändringarna.
Exempel 3: Utför en transaktion som inte ändrar några data
Set-Location hkcu:\software
Start-Transaction
New-Item MyCompany -UseTransaction
Get-ChildItem m*
Hive: HKEY_CURRENT_USER\Software
SKC VC Name Property
--- -- ---- --------
82 1 Microsoft {(default)}
Get-ChildItem m* -UseTransaction
Hive: HKEY_CURRENT_USER\Software
SKC VC Name Property
--- -- ---- --------
82 1 Microsoft {(default)}
0 0 MyCompany {}
Complete-Transaction
Det här exemplet visar värdet för att använda Get-*-kommandon och andra kommandon som inte ändrar data i en transaktion. När ett Get-\*
kommando används i en transaktion hämtar det de objekt som ingår i transaktionen. På så sätt kan du förhandsgranska ändringarna i transaktionen innan ändringarna checkas in.
I det här exemplet startas en transaktion. Ett nytt objekt-kommando med parametern UseTransaction lägger till en ny nyckel i registret som en del av transaktionen.
Eftersom den nya registernyckeln inte läggs till i registret förrän Complete-Transaction
kommandot körs, visar ett enkelt Get-ChildItem
kommando registret utan den nya nyckeln.
Men när du lägger till parametern UseTransaction i Get-ChildItem
kommandot blir kommandot en del av transaktionen och den hämtar objekten i transaktionen även om de ännu inte har lagts till i data.
Parametrar
-Confirm
Uppmanar dig att bekräfta innan du kör cmdleten.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
Visar vad som skulle hända om cmdleten kördes. Cmdleten körs inte.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Indata
None
Du kan inte skicka objekt till den här cmdleten.
Utdata
None
Den här cmdleten genererar inga utdata.
Kommentarer
Du kan inte återställa en transaktion som har checkats in eller checka in en transaktion som har återställts.
Du kan inte återställa någon annan transaktion än den aktiva transaktionen. Om du vill återställa en annan transaktion måste du först checka in eller återställa den aktiva transaktionen.
Om någon del av en transaktion inte kan genomföras som standard, till exempel när ett kommando i transaktionen resulterar i ett fel, återställs hela transaktionen.
Relaterade länkar
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för