Undo-Transaction
アクティブなトランザクションをロールバックします。
構文
Default (既定)
Undo-Transaction
[-WhatIf]
[-Confirm]
[<CommonParameters>]
説明
Undo-Transaction コマンドレットは、アクティブなトランザクションをロールバックします。 トランザクションをロールバックすると、トランザクション内のコマンドによって行われた変更は破棄され、データは元の形式に復元されます。
トランザクションに複数のサブスクライバーが含まれている場合、Undo-Transaction コマンドはすべてのサブスクライバーのトランザクション全体をロールバックします。
既定では、トランザクション内のコマンドでエラーが発生した場合、トランザクションは自動的にロールバックされます。 ただし、トランザクションは別のロールバック設定を使用して開始できます。このコマンドレットを使用すると、アクティブなトランザクションをいつでもロールバックできます。
Undo-Transaction コマンドレットは、Windows PowerShell のトランザクション機能をサポートする一連のコマンドレットの 1 つです。 詳細については、about_Transactionsを参照してください。
例
例 1: 現在のトランザクションをロールバックする
Undo-Transaction
このコマンドは、現在アクティブなトランザクションをロールバックします。
例 2: トランザクションを開始してロールバックする
Set-Location HKCU:\software
Start-Transaction
New-Item -Path "ContosoCompany" -UseTransaction
Undo-Transaction
この例では、トランザクションを開始し、ロールバックします。 その結果、レジストリに対する変更は行われません。
例 3: すべてのサブスクライバーのトランザクションをロールバックする
Set-Location HKCU:\software
Start-Transaction
New-Item -Path "ContosoCompany" -UseTransaction
Get-Transaction
RollbackPreference SubscriberCount Status
------------------ --------------- -----
Error 1 Active
Start-Transaction
Get-Transaction
RollbackPreference SubscriberCount Status
------------------ --------------- -----
Error 2 Active
Undo-Transaction
Get-Transaction
RollbackPreference SubscriberCount Status
------------------ --------------- -----
Error 0 RolledBack
この例では、サブスクライバーがトランザクションをロールバックすると、すべてのサブスクライバーに対してトランザクション全体がロールバックされることを示します。
最初のコマンドは、場所を HKCU:\Software レジストリ キーに変更します。
2 番目のコマンドは、トランザクションを開始します。
3 番目のコマンドでは、New-Item コマンドレットを使用して新しいレジストリ キーを作成します。 このコマンドでは、UseTransaction パラメーターを使用して、トランザクションに変更を含めます。
4 番目のコマンドでは、Get-Transaction コマンドレットを使用してアクティブなトランザクションを取得します。 状態がアクティブで、サブスクライバー数が 1 であることに注意してください。
5 番目のコマンドでは、Start-Transaction コマンドをもう一度使用します。 通常、別のトランザクションの進行中にトランザクションを開始することは、メイン トランザクションで使用されるスクリプトに独自の完全なトランザクションが含まれている場合に発生します。 この例は、段階的に確認できるように対話形式で実行されます。 別のトランザクションの進行中に Start-Transaction コマンドを実行すると、コマンドは既存のトランザクションを新しいサブスクライバーとして結合し、サブスクライバー数が増加します。
6 番目のコマンドでは、Get-Transaction コマンドレットを使用してアクティブなトランザクションを取得します。 サブスクライバー数が 2 になったことに注意してください。
7 番目のコマンドでは、Undo-Transaction を使用してトランザクションをロールバックします。 このコマンドはオブジェクトを返しません。
最後のコマンドは、アクティブなトランザクション (この場合は、最後にアクティブなトランザクション) を取得する Get-Transaction コマンドです。 結果は、トランザクションがロールバックされ、サブスクライバー数が 0 であることを示し、トランザクションがすべてのサブスクライバーに対してロールバックされたことを示しています。
パラメーター
-Confirm
コマンドレットを実行する前に確認を求めるメッセージが表示されます。
パラメーターのプロパティ
| 型: | SwitchParameter |
| 規定値: | False |
| ワイルドカードのサポート: | False |
| DontShow: | False |
| Aliases: | cf |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-WhatIf
コマンドレットを実行した場合の動作を示します。 コマンドレットは実行されません。
パラメーターのプロパティ
| 型: | SwitchParameter |
| 規定値: | False |
| ワイルドカードのサポート: | False |
| DontShow: | False |
| Aliases: | ウィスコンシン |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
CommonParameters
このコマンドレットでは、一般的なパラメーター -Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction、-WarningVariable の各パラメーターがサポートされています。 詳細については、about_CommonParametersを参照してください。
入力
None
このコマンドレットに入力をパイプすることはできません。
出力
None
このコマンドレットによる戻り値はありません。
メモ
コミットされたトランザクションをロールバックすることはできません。
アクティブなトランザクション以外のトランザクションはロールバックできません。 別の独立したトランザクションをロールバックするには、最初にアクティブなトランザクションをコミットまたはロールバックする必要があります。
トランザクションをロールバックすると、トランザクションが終了します。 トランザクションをもう一度使用するには、新しいトランザクションを開始する必要があります。