有効なトランザクションをロールバックします。

構文

Undo-Transaction [-確認] [-WhatIf] [<CommonParameters>]

説明

Undo-Transaction コマンドレットは、有効なトランザクションをロールバックします。トランザクションをロールバックすると、そのトランザクションでコマンドによって加えられた変更内容は破棄され、元のデータが復元されます。

トランザクションに複数のサブスクライバーが含まれている場合、Undo-Transaction コマンドを実行すると、トランザクション全体がすべてのサブスクライバーに対してロールバックされます。

既定では、トランザクション内のいずれかのコマンドでエラーが発生すると、トランザクションは自動的にロールバックされます。ただし、別のロールバック設定を使用してトランザクションを開始できます。また、このコマンドレットを使用して、有効なトランザクションをいつでもロールバックすることができます。

Undo-Transaction コマンドレットは、Windows PowerShell のトランザクション機能をサポートする一連のコマンドレットのうちの 1 つです。詳細については、「about_Transactions」を参照してください。

パラメーター

-確認

コマンドを実行する前に確認メッセージを表示します。

必須

false

位置

named

既定値

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-WhatIf

実際にコマンドを実行せずに、コマンドを実行すると何が起きるかを出力します。

必須

false

位置

named

既定値

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

<CommonParameters>

このコマンドレットは、次の共通パラメーターをサポートします: -Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer、および -OutVariable。Ô”¼š¤Ë¤Ä¤¤¤Æ¤Ï¡¢次を参照してください: about_Commonparameters.

入力と出力

入力値の型は、コマンドレットへのパイプが可能なオブジェクトの型です。戻り値の型は、コマンドレットによって返されるオブジェクトの型です。

入力

なし

パイプを使用してこのコマンドレットに入力を渡すことはできません。

出力

なし

このコマンドレットによる戻り値はありません。

コミット済みのトランザクションはロールバックできません。

有効でないトランザクションはロールバックできません。独立した別のトランザクションをロールバックするには、有効なトランザクションを先にコミットするかロールバックする必要があります。

トランザクションをロールバックすると、そのトランザクションは終了します。トランザクションを再度使用するには、トランザクションを新たに開始する必要があります。

例 1

C:\PS>undo-transaction

説明
-----------
このコマンドは、現在の (有効な) トランザクションをロールバックします。






例 2

C:\PS>cd hkcu:\software

PS HKCU:\Software> start-transaction
PS HKCU:\Software> new-item MyCompany -usetransaction
PS HKCU:\Software> undo-transaction

説明
-----------
このコマンドは、トランザクションを開始してからロールバックします。その結果、レジストリは変更されません。






例 3

C:\PS>cd hkcu:\software

PS HKCU:\Software> start-transaction
PS HKCU:\Software> new-item MyCompany -usetransaction
PS HKCU:\Software> get-transaction


RollbackPreference   SubscriberCount   Status
------------------   ---------------   -----
Error                1                 Active


PS HKCU:\Software> start-transaction
PS HKCU:\Software> get-transaction

RollbackPreference   SubscriberCount   Status
------------------   ---------------   -----
Error                2                 Active

PS HKCU:\Software> undo-transaction
PS HKCU:\Software> get-transaction

RollbackPreference   SubscriberCount   Status
------------------   ---------------   -----
Error                0                 RolledBack

説明
-----------
この例では、いずれかのサブスクライバーがトランザクションをロールバックすると、トランザクション全体がすべてのサブスクライバーに対してロールバックされることを示します。

最初のコマンドは、場所を HKCU:\Software レジストリ キーに変更します。

2 番目のコマンドは、トランザクションを開始します。

3 番目のコマンドは、New-Item コマンドレットを使用して新しいレジストリ キーを作成します。UseTransaction パラメーターを使用して、変更内容をトランザクションに含めます。

4 番目のコマンドは、Get-Transaction コマンドレットを使用して有効なトランザクションを取得します。ステータスが Active であり、サブスクライバーの数が 1 であることに注意してください。

5 番目のコマンドは、Start-Transaction コマンドを再度使用します。通常は、
メインのトランザクションが使用するスクリプトに完了した独自のトランザクションが含まれている場合、別のトランザクションの進行中にトランザクションが開始されます (この例は対話式に実行されるので、いくつかの段階に分けて確認できます)。

別のトランザクションの進行中に Start-Transaction コマンドを入力すると、既存のトランザクションが新しい "サブスクライバー" として追加されて、サブスクライバーの数がインクリメントされます。

6 番目のコマンドは、Get-Transaction コマンドレットを使用して有効なトランザクションを取得します。サブスクライバーの数が 2 になったことに注意してください。
  
7 番目のコマンドは、Undo-Transaction コマンドレットを使用してトランザクションをロールバックします。このコマンドはオブジェクトを返しません。

最後のコマンドは Get-Transaction です。このコマンドは有効な (またはこの場合は、最後に有効だったトランザクション) トランザクションを取得します。トランザクションがロールバックされたことと、サブスクライバーの数が 0 になったことが結果に示されます。つまり、トランザクションがすべてのサブスクライバーに対してロールバックされました。






関連項目




目次