Undo-Transaction
有効なトランザクションをロールバックします。
構文
Undo-Transaction [-Confirm] [-WhatIf] [<CommonParameters>]
説明
Undo-Transaction コマンドレットは、有効なトランザクションをロールバックします。トランザクションをロールバックすると、そのトランザクションでコマンドによって加えられた変更内容は破棄され、元のデータが復元されます。
トランザクションに複数のサブスクライバーが含まれている場合、Undo-Transaction コマンドを実行すると、トランザクション全体がすべてのサブスクライバーに対してロールバックされます。
既定では、トランザクション内のいずれかのコマンドでエラーが発生すると、トランザクションは自動的にロールバックされます。ただし、別のロールバック設定を使用してトランザクションを開始できます。また、このコマンドレットを使用して、有効なトランザクションをいつでもロールバックすることができます。
Undo-Transaction コマンドレットは、Windows PowerShell のトランザクション機能をサポートする一連のコマンドレットのうちの 1 つです。詳細については、「about_Transactions」を参照してください。
パラメーター
-Confirm
コマンドを実行する前に確認メッセージを表示します。
必須 |
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 になったことが結果に示されます。つまり、トランザクションがすべてのサブスクライバーに対してロールバックされました。
関連項目
概念
about_Transactions
about_Providers
Start-Transaction
Get-Transaction
Complete-Transaction
Use-Transaction