PowerShell 2.0からトランザクションがサポートされました。これにより、関連する複数の処理を一単位としてまとめ、その一連の処理を「すべて成功」か「すべて失敗」かを保証することができます。今回はPowerShell 2.0におけるトランザクション処理について説明します。
はじめに
PowerShell 2.0からトランザクションがサポートされました。これにより、関連する複数の処理を一単位としてまとめ、その一連の処理を「すべて成功」か「すべて失敗」かを保証することができます。
今回はPowerShell 2.0におけるトランザクション処理について説明します。
対象読者
- PowerShellの基本的な操作ができる方。
PowerShellについて学びたい方は、PowerShell入門の連載を参照ください。
実行環境
- PowerShell 2.0
トランザクション用コマンドレット
PowerShell 2.0では表1に示すトランザクション専用のコマンドレットが準備されています。
| コマンドレット | 説明 |
| Start-Transaction | 新しいトランザクションを開始する |
| Use-Transaction | トランザクションにコマンドまたは式を追加する |
| Undo-Transaction | トランザクションをロールバックしてデータが変更されないようにする |
| Complete-Transaction | トランザクションをコミットする。トランザクション対象が変更される |
| Get-Transaction | アクティブなトランザクションに関する情報を取得する |
PowerShell 2.0は200を超すコマンドレットが標準搭載されていますが、すべてのコマンドレットをトランザクションで使用できるわけではありません。トランザクションを使用するには、コマンドレットとプロバイダーがトランザクションをサポートしている必要があります。
トランザクションで使用可能なコマンドレットは、次のように入力することで探すことができます。
Get-Help * -parameter UseTransaction
また、トランザクションをサポートするプロバイダーは、次のように入力することで探すことができます。
Get-PSProvider | Where {$_.Capabilities -like "*transactions*"}
実行結果を見ると分かるように、Windows PowerShell レジストリ プロバイダーがトランザクションをサポートしていることが分かります。
トランザクションの開始
トランザクションを開始するには、Start-Transactionコマンドレットを使用します。Start-Transactionコマンドレットの基本構文は次の通りです(ほかにも使用可能なパラメーターがあります。詳細はヘルプを参照ください)。
Start-Transaction [-RollbackPreference {<Error> | <TerminatingError> | <Never>}]
-RollbackPreference パラメーターを使用すると、トランザクションが自動的にロールバックする条件を指定することができます。-RollbackPreference に指定できる値は次の通りです。
| 値 | 説明 |
| Error | 終了エラーまたは未終了エラーが発生した場合、トランザクションを自動的にロールバックさせる |
| TerminatingError | 終了エラーが発生した場合、トランザクションを自動的にロールバックさせる |
| Never | トランザクションを自動的にロールバックさせない |
-RollbackPreferenceパラメーターを省略した場合には、既定値として"Error"が割り当てられます。
リスト1はHKCU\Software(HKEY_CURRENT_USERレジストリのSoftware)に移動後、トランザクションを開始します。
PS> cd HKCU:\oftware PS> Start-Transaction
この記事は参考になりましたか?
- PowerShell 2.0の新機能連載記事一覧
-
- PowerShell 2.0の新機能(7) ――デバッグ編
- PowerShell 2.0の新機能(6) ――他言語の利用
- PowerShell 2.0の新機能(5) ――トランザクション編
- この記事の著者
-
HIRO(ヒロ)
HIRO's.NETのHIROです。とある半導体工場のSEです。VB.NET, C#, PowerShellによるプログラミングを楽しんでいます。最近はBlog でPowerShellについて書いています。2008/07/07にPowerShell from Japan!!というサイトを立ち上げまし...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア


