Complete-Transaction

Etkin işlemi işler.

Syntax

Default (Varsayılan)

Complete-Transaction
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

Description

Complete-Transaction cmdlet'i etkin bir işlem işler. Bir işlem işlediğinizde, işlemdeki komutlar sonlandırılır ve komutlardan etkilenen veriler değiştirilir.

İşlem birden çok abone içeriyorsa, işlemi işlemek için her Complete-Transaction komutu için bir Start-Transaction komutu girmeniz gerekir.

Complete-Transaction cmdlet'i, Windows PowerShell'deki işlemler özelliğini destekleyen bir cmdlet kümesidir. Daha fazla bilgi için bkz. about_Transactions.

Örnekler

Örnek 1: İşlem yürütme

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                      {}

Bu örnekte, bir işlem işlemek için Complete-Transaction cmdlet'ini kullandığınızda ne olacağı gösterilir.

Start-Transaction komutu işlemi başlatır. New-Item komutu, UseTransaction parametresini kullanarak komutu işleme ekler.

İlk Get-ChildItem komutu, yeni öğenin henüz kayıt defterine eklenmediğini gösterir.

Complete-Transaction komutu, kayıt defteri değişikliğini etkili hale getiren işlemi işler. Sonuç olarak, ikinci Get-ChildItem komutu kayıt defterinin değiştirildiğini gösterir.

Örnek 2: Birden fazla abonesi olan bir işlemi işleme

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}

Bu örnekte, birden fazla abonesi olan bir işlemi işlemek için Complete-Transaction nasıl kullanılacağı gösterilmektedir.

Çok aboneli bir işlem işlemek için, her Complete-Transaction komutu için bir Start-Transaction komutu girmeniz gerekir. Veriler yalnızca son Complete-Transaction komutu gönderildiğinde değiştirilir.

Gösterim amacıyla, bu örnekte komut satırına girilen bir dizi komut gösterilmektedir. Uygulamada, işlemler betiklerde çalıştırılır ve ikincil işlem ana betik tarafından çağrılan bir işlev veya yardımcı betik tarafından çalıştırılır.

Bu örnekte, bir Start-Transaction komutu işlemi başlatır. New-Item parametresine sahip bir komutu, MyCompany anahtarını Yazılım anahtarına ekler. New-Item cmdlet'i bir anahtar nesnesi döndürse de, kayıt defterindeki veriler henüz değiştirilmemiştir.

İkinci bir Start-Transaction komutu, mevcut işleme ikinci bir abone ekler. Get-Transaction cmdlet'i abone sayısının 2 olduğunu onaylar. UseTransaction parametresine sahip bir New-ItemProperty komutu, yeni MyCompany anahtarına bir kayıt defteri girdisi ekler. Komut yine bir değer döndürür, ancak kayıt defteri değiştirilmez.

İlk Complete-Transaction komutu abone sayısını 1 azaltır. Bu, bir Get-Transaction komutuyla onaylanır. Ancak, bir Get-ChildItem m* komutu tarafından kanıtlandığından hiçbir veri değiştirilmez.

İkinci Complete-Transaction komutu tüm işlemi işler ve kayıt defterindeki verileri değiştirir. Bu, değişiklikleri gösteren ikinci bir Get-ChildItem m* komutuyla onaylanır.

Örnek 3: Hiçbir veriyi değiştirmeyen bir işlem gerçekleştirme

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

Bu örnek, bir işlemde Get-* komutlarını ve verileri değiştirmeyen diğer komutları kullanmanın değerini gösterir. bir Get-\* komutu bir işlemde kullanıldığında, işlemin parçası olan nesneleri alır. Bu, değişiklikler işlenmeden önce işlemdeki değişikliklerin önizlemesini görüntülemenizi sağlar.

Bu örnekte bir işlem başlatılır. UseTransaction parametresine sahip bir New-Item komutu, işlemin bir parçası olarak kayıt defterine yeni bir anahtar ekler.

Complete-Transaction komutu çalıştırılmadan yeni kayıt defteri anahtarı kayıt defterine eklenmediği için, basit bir Get-ChildItem komutu kayıt defterini yeni anahtar olmadan gösterir.

Ancak, komutuna Get-ChildItem parametresini eklediğinizde, komut işlemin bir parçası olur ve henüz verilere eklenmese bile işlemdeki öğeleri alır.

Parametreler

-Confirm

Cmdlet'i çalıştırmadan önce sizden onay ister.

Parametre özellikleri

Tür:SwitchParameter
Default value:False
Joker karakterleri destekler:False
DontShow:False
Diğer adlar:Cf

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

-WhatIf

Cmdlet çalıştırılırsa ne olacağını gösterir. Cmdlet çalıştırılmaz.

Parametre özellikleri

Tür:SwitchParameter
Default value:False
Joker karakterleri destekler:False
DontShow:False
Diğer adlar:Wi

Parametre kümeleri

(All)
Position:Named
Zorunlu:False
İşlem hattından gelen değer:False
Özellik adına göre işlem hattından gelen değer:False
Kalan bağımsız değişkenlerden elde edilen değer:False

CommonParameters

Bu cmdlet yaygın parametreleri destekler: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction ve -WarningVariable. Daha fazla bilgi için bkz. about_CommonParameters.

Girişler

None

Nesneleri bu cmdlet'e yöneltemezsiniz.

Çıkışlar

None

Bu cmdlet herhangi bir çıkış oluşturmaz.

Notlar

  • Kaydedilmiş bir işlemi geri alamaz veya geri alınmış bir işlemi işleyemezsiniz.

    Etkin işlem dışında hiçbir işlemi geri alamazsınız. Farklı bir işlemi geri almak için önce etkin işlemi işlemeniz veya geri almanız gerekir.

    Varsayılan olarak, işlemdeki bir komut hatayla sonuçlandığında olduğu gibi işlemin herhangi bir bölümü işlenemiyorsa, işlemin tamamı geri alınır.