Complete-Transaction
Menerapkan transaksi aktif.
Sintaks
Complete-Transaction
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Deskripsi
Complete-Transaction
Cmdlet 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 Complete-Transaction
perintah untuk setiap Start-Transaction
perintah.
Complete-Transaction
Cmdlet 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 Complete-Transaction
cmdlet untuk melakukan transaksi.
Perintah Start-Transaction
memulai transaksi. Perintah New-Item menggunakan parameter UseTransaction untuk menyertakan perintah dalam transaksi.
Perintah pertama Get-ChildItem
menunjukkan bahwa item baru belum ditambahkan ke registri.
Perintah Complete-Transaction
menerapkan transaksi, yang membuat registri berubah efektif. Akibatnya, perintah kedua Get-ChildItem
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 Complete-Transaction
perintah untuk setiap Start-Transaction
perintah. Data diubah hanya ketika perintah akhir Complete-Transaction
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. New-Item
Perintah dengan parameter UseTransaction menambahkan kunci MyCompany ke kunci Perangkat Lunak. New-Item
Meskipun cmdlet mengembalikan objek kunci, data dalam registri belum diubah.
Perintah kedua Start-Transaction
menambahkan pelanggan kedua ke transaksi yang ada. Get-Transaction
Cmdlet 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 pertama Complete-Transaction
mengurangi jumlah pelanggan sebesar 1. Ini dikonfirmasi oleh Get-Transaction
perintah. Namun, tidak ada data yang diubah, sebagaimana dibuktikan oleh Get-ChildItem m*
perintah.
Perintah kedua Complete-Transaction
menerapkan seluruh transaksi dan mengubah data dalam registri. Ini dikonfirmasi oleh perintah kedua Get-ChildItem m*
, 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. Get-\*
Ketika perintah 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 sampai Complete-Transaction
perintah dijalankan, perintah sederhana Get-ChildItem
menunjukkan registri tanpa kunci baru.
Namun, ketika Anda menambahkan parameter UseTransaction ke Get-ChildItem
perintah, perintah menjadi bagian dari transaksi, dan mendapatkan item dalam transaksi bahkan jika belum ditambahkan ke data.
Parameter
-Confirm
Meminta Anda mengonfirmasi sebelum menjalankan cmdlet.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
Menunjukkan apa yang akan terjadi jika cmdlet berjalan. Cmdlet tidak dijalankan.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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.
Link Terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk