Use-Transaction
スクリプト ブロックを有効なトランザクションに追加します。
構文
Use-Transaction
[-TransactedScript] <ScriptBlock>
[-UseTransaction]
[<CommonParameters>]
説明
Use-Transaction
コマンドレットは、アクティブなトランザクションにスクリプト ブロックを追加します。 これにより、トランザクションが有効な Microsoft .NET Framework オブジェクトを使用して、トランザクション スクリプトを実行できます。 スクリプト ブロックには、トランザクションが有効な .NET Framework オブジェクト ( Microsoft.PowerShell.Commands.Management.TransactedString クラスのインスタンスなど) のみを含めることができます。
ほとんどのコマンドレットでは省略可能な UseTransaction パラメーターは、このコマンドレットを使用する場合に必要です。
Use-Transaction
は、Windows PowerShell のトランザクション機能をサポートするコマンドレットのセットの 1 つです。 詳細については、「 about_Transactions」を参照してください。
例
例 1: トランザクションが有効なオブジェクトを使用したスクリプト
Start-Transaction
$transactedString = New-Object Microsoft.PowerShell.Commands.Management.TransactedString
$transactedString.Append("Hello")
Use-Transaction -TransactedScript { $transactedString.Append(", World") } -UseTransaction
$transactedString.ToString()
Hello
Use-Transaction -TransactedScript { $transactedString.ToString() } -UseTransaction
Hello, World
Complete-Transaction
$transactedString.ToString()
Hello, World
この例では、 Use-Transaction
を使用して、トランザクションが有効な .NET Framework オブジェクトに対してスクリプトを作成する方法を示します。 この場合、オブジェクトは TransactedString オブジェクトです。
最初のコマンドでは、 Start-Transaction
コマンドレットを使用してトランザクションを開始します。
2 番目のコマンドでは、New-Object コマンドを使用して、 TransactedString オブジェクトを作成します。 $TransactedString
変数にオブジェクトが格納されます。
3 番目と 4 番目のコマンドはどちらも、TransactedString オブジェクトの Append メソッドを使用して、$TransactedString
の値にテキストを追加します。 1 つのコマンドがトランザクションの一部です。 もう 1 つのコマンドは実行されません。
3 番目のコマンドでは、トランザクション文字列の Append メソッドを使用して、hello を $TransactedString
の値に追加します。 このコマンドはトランザクションの一部ではないので、変更内容は直ちに反映されます。
4 番目のコマンドでは、 Use-Transaction
を使用して、トランザクション内の文字列にテキストを追加します。 このコマンドでは、 Append メソッドを使用して、 $TransactedString
の値に ", World" を追加します。 コマンドは中かっこ ({}
) で囲んでスクリプト ブロックにします。 このコマンドでは、 UseTransaction パラメーターが必要です。
5 番目と 6 番目のコマンドでは、TransactedString オブジェクトの ToString メソッドを使用して、TransactedString の値を文字列として表示します。 ここでも、1 つのコマンドがトランザクションの一部です。 もう 1 つのトランザクションは実行されません。
5 番目のコマンドでは、 ToString メソッドを使用して、$TransactedString変数の現在の値を表示します。 このコマンドはトランザクションの一部ではないので、文字列の現在の状態のみを表示します。
6 番目のコマンドでは、 Use-Transaction
を使用してトランザクションで同じコマンドを実行します。 コマンドはトランザクションの一部であるため、トランザクションの変更のプレビューと同様に、トランザクション内の文字列の現在の値が表示されます。
7 番目のコマンドでは、 Complete-Transaction
コマンドレットを使用してトランザクションをコミットします。
最後のコマンドでは、 ToString メソッドを使用して、変数の結果の値を文字列として表示します。
例 2: トランザクションをロールバックする
Start-Transaction
$transactedString = New-Object Microsoft.PowerShell.Commands.Management.TransactedString
$transactedString.Append("Hello")
Use-Transaction -TransactedScript { $transactedString.Append(", World") } -UseTransaction
Undo-Transaction
$transactedString.ToString()
Hello
この例では、 Use-Transaction
コマンドを含むトランザクションをロールバックする効果を示します。 トランザクション内のすべてのコマンドと同様に、トランザクションをロールバックすると、トランザクションされた変更内容は破棄され、データは変更されません。
最初のコマンドでは、 Start-Transaction
を使用してトランザクションを開始します。
2 番目のコマンドでは、 New-Object
を使用して TransactedString オブジェクトを作成します。 $TransactedString
変数にオブジェクトが格納されます。
トランザクションの一部ではない 3 番目のコマンドでは、 Append メソッドを使用して、 $TransactedString
の値に "Hello" を追加します。
4 番目のコマンドでは、 Use-Transaction
を使用して、トランザクションで Append メソッドを使用する別のコマンドを実行します。 このコマンドでは、 Append メソッドを使用して、 $TransactedString
の値に ", World" を追加します。
5 番目のコマンドは、Undo-Transaction コマンドレットを使用してトランザクションをロールバックします。 その結果、トランザクションで実行されたすべてのコマンドが元に戻されます。
最後のコマンドでは、 ToString メソッドを使用して、 $TransactedString
の結果の値を文字列として表示します。 結果は、トランザクションの外部で行われた変更のみがオブジェクトに適用されたことを示しています。
パラメーター
-TransactedScript
トランザクションで実行されるスクリプト ブロックを指定します。 有効なスクリプト ブロックを中かっこ ({}
) で囲み入力します。 このパラメーターは必須です。
型: | ScriptBlock |
配置: | 0 |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-UseTransaction
アクティブなトランザクションのコマンドが含まれます。 このパラメーターは、トランザクションが進行中の場合のみ有効です。 詳細については、「 about_transactions」を参照してください。
型: | SwitchParameter |
Aliases: | usetx |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
入力
None
パイプを使用してこのコマンドレットに入力を渡すことはできません。
出力
PSObject
このコマンドレットは、トランザクションの結果を返します。
メモ
- UseTransaction パラメーターには、アクティブなトランザクションにコマンドが含まれています。
Use-Transaction
コマンドレットは常にトランザクションで使用されるため、このパラメーターは、Use-Transaction
コマンドを有効にするために必要です。
関連リンク
PowerShell