Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

PowerShell 2.0の新機能(5)
――トランザクション編

PowerShell 2.0のトランザクション処理

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加
2010/03/09 14:00

 PowerShell 2.0からトランザクションがサポートされました。これにより、関連する複数の処理を一単位としてまとめ、その一連の処理を「すべて成功」か「すべて失敗」かを保証することができます。今回はPowerShell 2.0におけるトランザクション処理について説明します。

目次

はじめに

 PowerShell 2.0からトランザクションがサポートされました。これにより、関連する複数の処理を一単位としてまとめ、その一連の処理を「すべて成功」か「すべて失敗」かを保証することができます。

 今回はPowerShell 2.0におけるトランザクション処理について説明します。

対象読者

  • PowerShellの基本的な操作ができる方。

 PowerShellについて学びたい方は、PowerShell入門の連載を参照ください。

実行環境

  • PowerShell 2.0

トランザクション用コマンドレット

 PowerShell 2.0では表1に示すトランザクション専用のコマンドレットが準備されています。

表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*"}
図1 Start-Transactionコマンドレットの実行例
図1 Start-Transactionコマンドレットの実行例

 実行結果を見ると分かるように、Windows PowerShell レジストリ プロバイダーがトランザクションをサポートしていることが分かります。

トランザクションの開始

 トランザクションを開始するには、Start-Transactionコマンドレットを使用します。Start-Transactionコマンドレットの基本構文は次の通りです(ほかにも使用可能なパラメーターがあります。詳細はヘルプを参照ください)。

Start-Transactionの書式
Start-Transaction [-RollbackPreference {<Error> | <TerminatingError> | <Never>}]

 -RollbackPreference パラメーターを使用すると、トランザクションが自動的にロールバックする条件を指定することができます。-RollbackPreference に指定できる値は次の通りです。

表2 -Stateパラメータに指定可能な値
説明
Error 終了エラーまたは未終了エラーが発生した場合、トランザクションを自動的にロールバックさせる
TerminatingError 終了エラーが発生した場合、トランザクションを自動的にロールバックさせる
Never トランザクションを自動的にロールバックさせない

 -RollbackPreferenceパラメーターを省略した場合には、既定値として"Error"が割り当てられます。

 リスト1はHKCU\Software(HKEY_CURRENT_USERレジストリのSoftware)に移動後、トランザクションを開始します。

リスト1 Start-Transactionコマンドレットの使用例
PS> cd HKCU:\oftware
PS> Start-Transaction 
図2 Start-Transactionコマンドレットの実行例
図2 Start-Transactionコマンドレットの実行例

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • HIRO(ヒロ)

    HIRO's.NETのHIROです。 とある半導体工場のSEです。 VB.NET, C#, PowerShellによるプログラミングを楽しんでいます。 最近はBlog でPowerShellについて書いています。 2008/07/07にPowerShell from Japan!!という...

バックナンバー

連載:PowerShell 2.0の新機能
All contents copyright © 2005-2019 Shoeisha Co., Ltd. All rights reserved. ver.1.5