Complete-Transaction
Menerapkan transaksi aktif.
Sintaks
Default (Default)
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
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
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.
Properti parameter
| Jenis: | SwitchParameter |
| Nilai default: | False |
| Mendukung wildcard: | False |
| DontShow: | False |
| Alias: | Cf |
Kumpulan parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-WhatIf
Menunjukkan apa yang akan terjadi ketika cmdlet dijalankan. Cmdlet tidak dijalankan.
Properti parameter
| Jenis: | SwitchParameter |
| Nilai default: | False |
| Mendukung wildcard: | False |
| DontShow: | False |
| Alias: | wi |
Kumpulan parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
CommonParameters
Cmdlet ini mendukung parameter umum: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction, dan -WarningVariable. Untuk informasi selengkapnya, lihat about_CommonParameters.
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.