Use-Transaction
アクティブなトランザクションにスクリプト ブロックを追加します。
構文
Use-Transaction
[-TransactedScript] <ScriptBlock>
[-UseTransaction]
[<CommonParameters>]
説明
Use-Transaction コマンドレットは、アクティブなトランザクションにスクリプト ブロックを追加します。 これにより、トランザクションが有効な Microsoft .NET Framework オブジェクトを使用して、トランザクション スクリプトを実行できます。 スクリプト ブロックには、Microsoft.PowerShell.Commands.Management.TransactedString クラスのインスタンスなど、トランザクションが有効な .NET Framework オブジェクトのみを含めることができます。
このコマンドレットを使用する場合は、UseTransaction パラメーター (ほとんどのコマンドレットでは省略可能) が必要です。
Use-Transaction は、Windows PowerShell のトランザクション機能をサポートするコマンドレットのセットの 1 つです。 詳細については、「about_Transactions」を参照してください。
例
例 1: トランザクションが有効なオブジェクトを使用したスクリプト
PS C:\> Start-Transaction
PS C:\> $transactedString = New-Object Microsoft.PowerShell.Commands.Management.TransactedString
PS C:\> $transactedString.Append("Hello")
PS C:\> Use-Transaction -TransactedScript { $transactedString.Append(", World") } -UseTransaction
PS C:\> $transactedString.ToString()
Hello
PS C:\> Use-Transaction -TransactedScript { $transactedString.ToString() } -UseTransaction
Hello, World
PS C:\> Complete-Transaction
PS C:\> $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
5 番目と 6 番目のコマンドでは、TransactedString オブジェクトの ToString メソッドを使用して、TransactedString の値を文字列として表示します。 ここでも、1 つのコマンドがトランザクションの一部です。 もう 1 つのトランザクションは実行されません。
5 番目のコマンドは、ToString メソッドを使用して、$TransactedString変数の現在の値を表示します。 トランザクションの一部ではないため、文字列の現在の状態のみが表示されます。
6 番目のコマンドでは、use-Transaction
7 番目のコマンドでは、Complete-Transaction コマンドレットを使用してトランザクションをコミットします。
最後のコマンドでは、ToString メソッドを使用して、変数の結果の値を文字列として表示します。
例 2: トランザクションをロールバックする
PS C:\> Start-Transaction
PS C:\> $transactedString = New-Object Microsoft.PowerShell.Commands.Management.TransactedString
PS C:\> $transactedString.Append("Hello")
PS C:\> Use-Transaction -TransactedScript { $transactedString.Append(", World") } -UseTransaction
PS C:\> Undo-Transaction
PS C:\> $transactedString.ToString()
Hello
この例では、Use-Transaction コマンドを含むトランザクション
最初のコマンドでは、トランザクションの開始 を使用してトランザクションを開始します。
2 番目のコマンドでは、New-Object を使用して、TransactedString オブジェクトを作成します。 $TransactedString変数にオブジェクトが格納されます。
トランザクションの一部ではない 3 番目のコマンドでは、Append メソッドを使用して、$TransactedStringの値に "Hello" を追加します。
4 番目のコマンドでは、use-Transaction
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 コマンドを有効にするために必要です。