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.