Complete-Transaction
Menerapkan transaksi aktif.
Sintaks
Complete-Transaction
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Deskripsi
cmdlet Complete-Transaction
melakukan transaksi aktif. Saat Anda melakukan transaksi, perintah dalam transaksi diselesaikan dan data yang terpengaruh oleh perintah diubah.
Jika transaksi mencakup beberapa pelanggan, untuk melakukan transaksi, Anda harus memasukkan satu perintah Complete-Transaction
untuk setiap perintah Start-Transaction
.
Cmdlet Complete-Transaction
adalah salah satu set cmdlet yang mendukung fitur transaksi di Windows PowerShell.
Untuk informasi selengkapnya, lihat about_Transactions.
Contoh
Contoh 1: Menerapkan transaksi
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 {}
Contoh ini menunjukkan apa yang terjadi saat Anda menggunakan cmdlet Complete-Transaction
untuk melakukan transaksi.
Perintah Start-Transaction
memulai transaksi. Perintah New-Item menggunakan parameter UseTransaction untuk menyertakan perintah dalam transaksi.
Perintah Get-ChildItem
pertama menunjukkan bahwa item baru belum ditambahkan ke registri.
Perintah Complete-Transaction
menerapkan transaksi, yang membuat registri berubah efektif. Akibatnya, perintah Get-ChildItem
kedua menunjukkan bahwa registri diubah.
Contoh 2: Menerapkan transaksi yang memiliki lebih dari satu pelanggan
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}
Contoh ini menunjukkan cara menggunakan Complete-Transaction
untuk melakukan transaksi yang memiliki lebih dari satu pelanggan.
Untuk melakukan transaksi multi-pelanggan, Anda harus memasukkan satu perintah Complete-Transaction
untuk setiap perintah Start-Transaction
. Data diubah hanya ketika perintah Complete-Transaction
akhir dikirimkan.
Untuk tujuan demonstrasi, contoh ini menunjukkan serangkaian perintah yang dimasukkan di baris perintah. Dalam praktiknya, transaksi kemungkinan akan dijalankan dalam skrip, dengan transaksi sekunder dijalankan oleh fungsi atau skrip pembantu yang dipanggil oleh skrip utama.
Dalam contoh ini, perintah Start-Transaction
memulai transaksi. Perintah New-Item
dengan parameter UseTransaction menambahkan kunci MyCompany ke kunci Perangkat Lunak. Meskipun cmdlet New-Item
mengembalikan objek kunci, data dalam registri belum diubah.
Perintah Start-Transaction
kedua menambahkan pelanggan kedua ke transaksi yang ada. Cmdlet Get-Transaction
mengonfirmasi bahwa jumlah pelanggan adalah 2. Perintah New-ItemProperty dengan parameter UseTransaction menambahkan entri registri ke kunci MyCompany baru. Sekali lagi, perintah mengembalikan nilai, tetapi registri tidak diubah.
Perintah Complete-Transaction
pertama mengurangi jumlah pelanggan sebesar 1. Ini dikonfirmasi oleh perintah Get-Transaction
. Namun, tidak ada data yang diubah, sebagaimana dibuktikan oleh perintah Get-ChildItem m*
.
Perintah Complete-Transaction
kedua menerapkan seluruh transaksi dan mengubah data dalam registri. Ini dikonfirmasi oleh perintah Get-ChildItem m*
kedua, yang menunjukkan perubahan.
Contoh 3: Melakukan transaksi yang tidak mengubah data apa pun
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
Contoh ini menunjukkan nilai penggunaan perintah Get-*, dan perintah lain yang tidak mengubah data, dalam transaksi. Ketika perintah Get-\*
digunakan dalam transaksi, perintah tersebut mendapatkan objek yang merupakan bagian dari transaksi. Ini memungkinkan Anda untuk mempratinjau perubahan dalam transaksi sebelum perubahan diterapkan.
Dalam contoh ini, transaksi dimulai. Perintah New-Item dengan parameter UseTransaction menambahkan kunci baru ke registri sebagai bagian dari transaksi.
Karena kunci registri baru tidak ditambahkan ke registri hingga perintah Complete-Transaction
dijalankan, perintah Get-ChildItem
sederhana menunjukkan registri tanpa kunci baru.
Namun, ketika Anda menambahkan parameter UseTransaction ke perintah Get-ChildItem
, perintah menjadi bagian dari transaksi, dan mendapatkan item dalam transaksi meskipun belum ditambahkan ke data.
Parameter
-Confirm
Meminta konfirmasi sebelum menjalankan cmdlet.
Jenis: | SwitchParameter |
Alias: | cf |
Position: | Named |
Nilai default: | False |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-WhatIf
Menunjukkan apa yang akan terjadi jika cmdlet berjalan. Cmdlet tidak dijalankan.
Jenis: | SwitchParameter |
Alias: | wi |
Position: | Named |
Nilai default: | False |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
Input
None
Anda tidak dapat menyalurkan objek ke cmdlet ini.
Output
None
Cmdlet ini tidak menghasilkan output apa pun.
Catatan
Anda tidak dapat mengembalikan transaksi yang telah dilakukan, atau melakukan transaksi yang telah digulung balik.
Anda tidak dapat mengembalikan transaksi apa pun selain transaksi aktif. Untuk mengembalikan transaksi yang berbeda, Anda harus terlebih dahulu menerapkan atau mengembalikan transaksi aktif.
Secara default, jika ada bagian dari transaksi yang tidak dapat dilakukan, seperti ketika perintah dalam transaksi menghasilkan kesalahan, seluruh transaksi digulung balik.