SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

PowerShell 2.0の新機能

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

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


  • X ポスト
  • このエントリーをはてなブックマークに追加

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

  • X ポスト
  • このエントリーをはてなブックマークに追加

はじめに

 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コマンドレットの実行例

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
トランザクションへのコマンドの追加

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
PowerShell 2.0の新機能連載記事一覧

もっと読む

この記事の著者

HIRO(ヒロ)

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

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/4944 2010/03/23 19:58

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング