Undo-Transaction
有効なトランザクションをロールバックします。
構文
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
使用してアクティブなトランザクションを取得します。 ステータスが Active であり、サブスクライバーの数が 1 であることに注意してください。
5 番目のコマンドでは、もう一度コマンドを Start-Transaction
使用します。 通常、別のトランザクションの進行中にトランザクションを開始することは、メイン トランザクションで使用されるスクリプトに独自の完全なトランザクションが含まれている場合に発生します。 この例は、段階的に確認できるように対話形式で実行されます。 別のトランザクションの進行中にコマンドを実行 Start-Transaction
すると、コマンドは既存のトランザクションを新しいサブスクライバーとして結合し、サブスクライバー数が増加します。
6 番目のコマンドでは、コマンドレットを Get-Transaction
使用してアクティブなトランザクションを取得します。 サブスクライバーの数が 2 になったことに注意してください。
7 番目のコマンドは、トランザクションのロールバックに使用 Undo-Transaction
します。 このコマンドはオブジェクトを返しません。
最後のコマンドは、 Get-Transaction
アクティブなトランザクション(この場合は最後にアクティブなトランザクション)を取得するコマンドです。 トランザクションがロールバックされたことと、サブスクライバーの数が 0 になったことが結果に示されます。つまり、トランザクションがすべてのサブスクライバーに対してロールバックされました。
パラメーター
-Confirm
コマンドレットの実行前に確認を求めるメッセージが表示されます。
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
コマンドレットの実行時に発生する内容を示します。 このコマンドレットは実行されません。
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
入力
None
パイプを使用してこのコマンドレットに入力を渡すことはできません。
出力
None
このコマンドレットによる戻り値はありません。
メモ
コミット済みのトランザクションはロールバックできません。
有効でないトランザクションはロールバックできません。 独立した別のトランザクションをロールバックするには、有効なトランザクションを先にコミットするかロールバックする必要があります。
トランザクションをロールバックすると、そのトランザクションは終了します。 トランザクションを再度使用するには、トランザクションを新たに開始する必要があります。
関連リンク
PowerShell
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示