Use-Transaction
Aggiunge il blocco di script alla transazione attiva.
Sintassi
Use-Transaction
[-TransactedScript] <ScriptBlock>
[-UseTransaction]
[<CommonParameters>]
Descrizione
Il Use-Transaction
cmdlet aggiunge un blocco di script a una transazione attiva. In questo modo è possibile eseguire lo scripting transazionale usando oggetti microsoft .NET Framework abilitati per le transazioni. 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 dei set di cmdlet che supportano la funzionalità transazioni in Windows PowerShell. Per altre informazioni, vedere about_Transactions.
Esempio
Esempio 1: Eseguire lo script usando un oggetto abilitato per la transazione
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
Questo esempio illustra come usare Use-Transaction
per creare script su un oggetto .NET Framework abilitato per le transazioni. In questo caso, l'oggetto è un oggetto TransactedString .
Il primo comando usa il Start-Transaction
cmdlet per avviare una transazione.
Il secondo comando usa il comando New-Object per creare un oggetto TransactedString . Archivia l'oggetto nella $TransactedString
variabile .
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 Complete-Transaction
cmdlet 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
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
In questo esempio viene illustrato l'effetto del rollback di una transazione che include Use-Transaction
comandi. 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 $TransactedString
variabile .
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 qualsiasi blocco di script valido racchiuso tra parentesi graffe ({}
). Questo parametro è obbligatorio.
Tipo: | ScriptBlock |
Posizione: | 0 |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-UseTransaction
Include il comando nella transazione attiva. Questo parametro è valido solo quando è in corso una transazione. Per altre informazioni, vedere about_transactions.
Tipo: | SwitchParameter |
Alias: | usetx |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | 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
Use-Transaction
cmdlet viene sempre usato nelle transazioni, questo parametro è necessario per rendere effettivo qualsiasiUse-Transaction
comando.