Condividi tramite


Use-Transaction

Aggiunge il blocco di script alla transazione attiva.

Sintassi

Use-Transaction
   [-TransactedScript] <ScriptBlock>
   [-UseTransaction]
   [<CommonParameters>]

Descrizione

Il cmdlet Use-Transaction aggiunge un blocco di script a una transazione attiva. In questo modo è possibile eseguire script transazioni tramite oggetti Microsoft .NET Framework abilitati per la transazione. Il blocco di script può contenere solo oggetti .NET Framework abilitati per le transazioni, ad esempio istanze della classe Microsoft.PowerShell.Commands.Management.TransactedString.

Il parametro UseTransaction , facoltativo per la maggior parte dei cmdlet, è obbligatorio quando si usa questo cmdlet.

Use-Transaction è uno di un set di cmdlet che supportano la funzionalità delle transazioni in Windows PowerShell. Per altre informazioni, vedere about_Transactions.

Esempio

Esempio 1: Eseguire lo script usando un oggetto abilitato per la transazione

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

Questo esempio illustra come usare Use-Transaction per creare script su un oggetto .NET Framework abilitato per la transazione. In questo caso, l'oggetto è un oggetto TransactedString .

Il primo comando usa il cmdlet Start-Transaction per avviare una transazione.

Il secondo comando usa il comando New-Object per creare un oggetto TransactedString . Archivia l'oggetto nella variabile $TransactedString.

Il terzo e il quarto comando usano entrambi il metodo Append dell'oggetto TransactedString per aggiungere testo al valore di $TransactedString. Un comando fa parte della transazione. L'altro comando non è .

Il terzo comando usa il metodo Append della stringa transazionata per aggiungere Hello al valore di $TransactedString. Poiché il comando non fa parte della transazione, la modifica viene applicata immediatamente.

Il quarto comando usa Use-Transaction per aggiungere testo alla stringa nella transazione. Il comando usa il metodo Append per aggiungere ", World" al valore di $TransactedString. Il comando è racchiuso tra parentesi graffe ( {} ) per renderlo un blocco di script. Il parametro UseTransaction è obbligatorio in questo comando.

Il quinto e il sesto comando usano il metodo ToString dell'oggetto TransactedString per visualizzare il valore di TransactedString come stringa. Anche in questo caso, un comando fa parte della transazione. L'altra transazione non è .

Il quinto comando usa il metodo ToString per visualizzare il valore corrente della variabile $TransactedString. Poiché non fa parte della transazione, visualizza solo lo stato corrente della stringa.

Il sesto comando usa Use-Transaction per eseguire lo stesso comando nella transazione. Poiché il comando fa parte della transazione, visualizza il valore corrente della stringa nella transazione, in modo analogo a un'anteprima delle modifiche della transazione.

Il settimo comando usa il cmdlet Complete-Transaction per eseguire il commit della transazione.

Il comando finale usa il metodo ToString per visualizzare il valore risultante della variabile come stringa.

Esempio 2: Eseguire il rollback di una transazione

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

In questo esempio viene illustrato l'effetto del rollback di una transazione che include i comandi Use-Transaction . Come tutti i comandi in una transazione, quando viene eseguito il rollback della transazione, le modifiche transazionali vengono rimosse e i dati modificati.

Il primo comando usa Start-Transaction per avviare una transazione.

Il secondo comando usa New-Object per creare un oggetto TransactedString . Archivia l'oggetto nella variabile $TransactedString.

Il terzo comando, che non fa parte della transazione, usa il metodo Append per aggiungere "Hello" al valore di $TransactedString.

Il quarto comando usa Use-Transaction per eseguire un altro comando che usa il metodo Append nella transazione. Il comando usa il metodo Append per aggiungere ", World" al valore di $TransactedString.

Il quinto comando usa il cmdlet Undo-Transaction per eseguire il rollback della transazione. Di conseguenza, tutti i comandi eseguiti nella transazione vengono invertiti.

Il comando finale usa il metodo ToString per visualizzare il valore risultante di $TransactedString come stringa. I risultati mostrano che all'oggetto sono state applicate solo le modifiche apportate all'esterno della transazione.

Parametri

-TransactedScript

Specifica il blocco di script eseguito nella transazione. Immettere un blocco di script valido racchiuso tra parentesi graffe ({}). Questo parametro è obbligatorio.

Type:ScriptBlock
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-UseTransaction

Include il comando nella transazione attiva. Questo parametro è valido solo quando è in corso una transazione. Per altre informazioni, vedere about_Transactions.

Type:SwitchParameter
Aliases:usetx
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Input

None

Non è possibile inviare input tramite pipe a questo cmdlet.

Output

PSObject

Questo cmdlet restituisce il risultato della transazione.

Note

  • Il parametro UseTransaction include il comando nella transazione attiva. Poiché il cmdlet Use-Transaction viene sempre usato nelle transazioni, questo parametro è necessario per rendere effettivo qualsiasi comando Use-Transaction .