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 checkar in 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 mycompany-nyckeln 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
I det här exemplet visas 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ämtas 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 New-Item-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 hämtar objekten i transaktionen även om de ännu inte har lagts till i data.
Parametrar
Uppmanar dig att bekräfta innan du kör cmdleten.
| Type: | SwitchParameter |
| Aliases: | cf |
| Position: | Named |
| Default value: | False |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Visar vad som skulle hända om cmdleten kördes. Cmdleten körs inte.
| Type: | SwitchParameter |
| Aliases: | wi |
| Position: | Named |
| Default value: | False |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Indata
None
Du kan inte skicka objekt till den här cmdleten.
Utdata
None
Denna cmdlet 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 checkas in, till exempel när ett kommando i transaktionen resulterar i ett fel, återställs hela transaktionen som standard.
Relaterade länkar
Feedback
Skicka och visa feedback för