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: トランザクションが有効なオブジェクトを使用したスクリプト
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
この例では、トランザクションが有効な .NET Framework オブジェクトに対してスクリプトを作成 Use-Transaction
する方法を示します。 この場合、オブジェクトは TransactedString オブジェクトです。
最初のコマンドでは、コマンドレットを Start-Transaction
使用してトランザクションを開始します。
2 番目のコマンドでは、New-Object コマンドを使用して TransactedString オブジェクトを作成します。 変数にオブジェクトを $TransactedString
格納します。
3 番目と 4 番目のコマンドでは、TransactedString オブジェクトの Append メソッドを使用して、値にテキストを$TransactedString
追加します。 1 つのコマンドがトランザクションの一部です。 もう 1 つのコマンドは実行されません。
3 番目のコマンドでは、 トランザクション文字列の Append メソッドを使用して、Hello を値 $TransactedString
に追加します。 このコマンドはトランザクションの一部ではないので、変更内容は直ちに反映されます。
4 番目のコマンドは、トランザクション内の文字列にテキストを追加するために使用 Use-Transaction
します。 このコマンドでは、Append メソッドを使用して、値に ", World" を$TransactedString
追加します。 コマンドは中かっこ ({}
) で囲んでスクリプト ブロックにします。 このコマンドでは 、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 番目のコマンドは、TransactedString オブジェクトを作成するために使用New-Object
します。 変数にオブジェクトを $TransactedString
格納します。
トランザクションの一部ではない 3 番目のコマンドでは、Append メソッドを使用して値に "Hello" を$TransactedString
追加します。
4 番目のコマンドは、トランザクションで Append メソッドを使用する別のコマンドを実行するために使用Use-Transaction
します。 このコマンドでは、Append メソッドを使用して、値に ", World" を$TransactedString
追加します。
5 番目のコマンドは、Undo-Transaction コマンドレットを使用してトランザクションをロールバックします。 その結果、トランザクションで実行されたすべてのコマンドが元に戻されます。
最後のコマンドでは、ToString メソッドを使用して、結果の$TransactedString
値を文字列として表示します。 結果は、トランザクションの外部で行われた変更のみがオブジェクトに適用されたことを示しています。
パラメーター
-TransactedScript
トランザクションで実行されるスクリプト ブロックを指定します。 有効なスクリプト ブロックを中かっこ ({}
) で囲んだものをすべて入力します。 このパラメーターは必須です。
Type: | ScriptBlock |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-UseTransaction
アクティブなトランザクションのコマンドが含まれます。 このパラメーターは、トランザクションが進行中の場合のみ有効です。 詳細については、「about_transactions」を参照してください。
Type: | SwitchParameter |
Aliases: | usetx |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
入力
None
パイプを使用してこのコマンドレットに入力を渡すことはできません。
出力
PSObject
このコマンドレットは、トランザクションの結果を返します。
メモ
- UseTransaction パラメーターには、アクティブなトランザクションにコマンドが含まれています。 コマンドレットは常に
Use-Transaction
トランザクションで使用されるため、このパラメーターはコマンドを有効にするためにUse-Transaction
必要です。
関連リンク
PowerShell
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示