Complete-Transaction
Véglegesíti az aktív tranzakciót.
Syntax
Complete-Transaction
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
A Complete-Transaction
parancsmag aktív tranzakciót véglegesíti. Tranzakció véglegesítésekor a tranzakció parancsai véglegesítve lesznek, és a parancsok által érintett adatok módosulnak.
Ha a tranzakció több előfizetőt is tartalmaz, a tranzakció véglegesítéséhez minden Start-Transaction
parancshoz meg kell adnia egy Complete-Transaction
parancsot.
A Complete-Transaction
parancsmag a Windows PowerShell tranzakciós funkcióját támogató parancsmagok egyike.
További információ: about_Transactions.
Példák
1. példa: Tranzakció véglegesítése
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 {}
Ez a példa bemutatja, mi történik, ha a Complete-Transaction
parancsmaggal véglegesíti a tranzakciót.
A Start-Transaction
parancs elindítja a tranzakciót. Az Új elem parancs a UseTransaction paraméter használatával adja hozzá a parancsot a tranzakcióhoz.
Az első Get-ChildItem
parancs azt mutatja, hogy az új elem még nem lett hozzáadva a beállításjegyzékhez.
A Complete-Transaction
parancs véglegesíti a tranzakciót, ami a beállításjegyzék-módosítást hatékonyabbá teszi. Ennek eredményeképpen a második Get-ChildItem
parancs azt mutatja, hogy a beállításjegyzék megváltozott.
2. példa: Több előfizetővel rendelkező tranzakció véglegesítése
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}
Ez a példa bemutatja, hogyan lehet Complete-Transaction
egynél több előfizetővel rendelkező tranzakciót véglegesíteni.
Több-előfizetős tranzakció véglegesítéséhez minden Start-Transaction
parancshoz meg kell adnia egy Complete-Transaction
parancsot. Az adatok csak a végleges Complete-Transaction
parancs elküldésekor módosulnak.
Bemutató célokra ez a példa a parancssorba beírt parancsok sorozatát mutatja be. A gyakorlatban a tranzakciók valószínűleg szkriptekben futnak, és a másodlagos tranzakciót egy függvény vagy segédszkript futtatja, amelyet a fő szkript hív.
Ebben a példában egy Start-Transaction
parancs elindítja a tranzakciót. A New-Item
UseTransaction paraméterrel rendelkező parancs hozzáadja a MyCompany kulcsot a szoftverkulcshoz. Bár a New-Item
parancsmag egy kulcsobjektumot ad vissza, a beállításjegyzék adatai még nem változnak.
A második Start-Transaction
parancs hozzáad egy második előfizetőt a meglévő tranzakcióhoz. A Get-Transaction
parancsmag megerősíti, hogy az előfizetők száma 2. A UseTransaction paraméterrel rendelkező New-ItemProperty parancs hozzáad egy beállításjegyzék-bejegyzést az új MyCompany-kulcshoz. A parancs ismét visszaad egy értéket, de a beállításjegyzék nem módosul.
Az első Complete-Transaction
parancs 1-sel csökkenti az előfizetők számát. Ezt egy Get-Transaction
parancs megerősíti. Az adatok azonban nem változnak, ahogy azt egy Get-ChildItem m*
parancs is bizonyítja.
A második Complete-Transaction
parancs véglegesíti a teljes tranzakciót, és módosítja az adatokat a beállításjegyzékben. Ezt egy második Get-ChildItem m*
parancs is megerősíti, amely megjeleníti a módosításokat.
3. példa: Olyan tranzakció végrehajtása, amely nem módosít adatokat
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
Ez a példa bemutatja a Get-* parancsok és más olyan parancsok használatát, amelyek nem módosítják az adatokat egy tranzakcióban. Amikor egy parancsot Get-\*
használ egy tranzakcióban, lekéri a tranzakció részét képező objektumokat. Így a módosítások véglegesítése előtt megtekintheti a tranzakció módosításainak előnézetét.
Ebben a példában egy tranzakció indul el. A UseTransaction paraméterrel rendelkező New-Item parancs új kulcsot ad hozzá a beállításjegyzékhez a tranzakció részeként.
Mivel az új beállításkulcs a parancs futtatásáig nem lesz hozzáadva a Complete-Transaction
beállításjegyzékhez, egy egyszerű Get-ChildItem
parancs az új kulcs nélkül jeleníti meg a beállításjegyzéket.
Amikor azonban hozzáadja a UseTransaction paramétert a Get-ChildItem
parancshoz, a parancs a tranzakció részévé válik, és akkor is megkapja a tranzakció elemeit, ha még nincsenek hozzáadva az adatokhoz.
Paraméterek
-Confirm
Jóváhagyást kér a parancsmag futtatása előtt.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
Bemutatja, mi történne a parancsmag futtatásakor. A parancsmag nem fut.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Bevitelek
None
Ehhez a parancsmaghoz nem lehet objektumokat csövezni.
Kimenetek
None
Ez a parancsmag nem hoz létre kimenetet.
Jegyzetek
Nem állíthat vissza véglegesített tranzakciót, és nem véglegesíthet visszagörgetett tranzakciót.
Az aktív tranzakción kívül semmilyen tranzakciót nem állíthat vissza. Egy másik tranzakció visszaállításához először véglegesítenie vagy vissza kell állítania az aktív tranzakciót.
Alapértelmezés szerint, ha a tranzakció bármely része nem véglegesíthető, például ha a tranzakció egyik parancsa hibát eredményez, a teljes tranzakció vissza lesz állítva.
Kapcsolódó hivatkozások
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: