Get-Transaction

Ottiene la transazione corrente (attiva).

Sintassi

Get-Transaction []

Descrizione

Il Get-Transaction cmdlet ottiene un oggetto che rappresenta la transazione corrente nella sessione.

Questo cmdlet non restituisce mai più di un oggetto perché è attiva una sola transazione alla volta. Se si avvia una o più transazioni indipendenti (usando il parametro Independent di Start-Transaction), la transazione avviata più di recente è attiva e si tratta della transazione restituita Get-Transaction .

Quando è stato eseguito il rollback o il commit di tutte le transazioni attive, questo cmdlet mostra la transazione attiva più di recente nella sessione.

Questo cmdlet è uno dei set di cmdlet che supportano la funzionalità transazioni in Windows PowerShell. Per altre informazioni, vedere about_Transactions.

Esempio

Esempio 1: Ottenere la transazione corrente

Start-Transaction
Get-Transaction

RollbackPreference   SubscriberCount   Status
------------------   ---------------   ------
Error                1                 Active

Questo comando usa il Get-Transaction cmdlet per ottenere la transazione corrente.

Esempio 2: Visualizzare le proprietà e i metodi dell'oggetto transazione

Get-Transaction | Get-Member

Name               MemberType Definition
----               ---------- ----------
Dispose            Method     System.Void Dispose(), System.Void Dispose(Boolean disposing)
Equals             Method     System.Boolean Equals(Object obj)
GetHashCode        Method     System.Int32 GetHashCode()
GetType            Method     System.Type GetType()
ToString           Method     System.String ToString()
IsCommitted        Property   System.Boolean IsCommitted {get;}
IsRolledBack       Property   System.Boolean IsRolledBack {get;}
RollbackPreference Property   System.Management.Automation.RollbackSeverity RollbackPreference {get;}
SubscriberCount    Property   System.Int32 SubscriberCount {get;set;}

Questo comando usa il Get-Member cmdlet per visualizzare le proprietà e i metodi dell'oggetto transazione.

Esempio 3: Visualizzare i valori delle proprietà di una transazione di cui è stato eseguito il rollback

Set-Location hklm:\software
Start-Transaction
New-Item MyCompany -UseTransaction
Undo-Transaction
Get-Transaction

RollbackPreference   SubscriberCount   Status
------------------   ---------------   ----------
Error                0                 RolledBack

Questo comando mostra i valori delle proprietà di un oggetto transazione per una transazione di cui stato eseguito il rollback.

Esempio 4: Visualizzare i valori delle proprietà di una transazione di cui è stato eseguito il commit

Set-Location hklm:\software
Start-Transaction
New-Item MyCompany -UseTransaction
Complete-Transaction
Get-Transaction

RollbackPreference   SubscriberCount   Status
------------------   ---------------   ---------
Error                1                 Committed

Questo comando mostra i valori delle proprietà di un oggetto transazione per una transazione di cui stato eseguito il commit.

Esempio 5: Avviare una transazione mentre è in corso un'altra transazione

Set-Location hklm:\software
Start-Transaction
New-Item MyCompany -UseTransaction
Start-Transaction
New-Item MyCompany2 -UseTransaction
Get-Transaction

RollbackPreference   SubscriberCount   Status
------------------   ---------------   ------
Error                2                 Active

Complete-Transaction
Get-Transaction

RollbackPreference   SubscriberCount   Status
------------------   ---------------   ------
Error                1                 Active

Complete-Transaction
Get-Transaction

RollbackPreference   SubscriberCount   Status
------------------   ---------------   ---------
Error                1                 Committed

Questo esempio mostra l'effetto prodotto sull'oggetto transazione dall'avvio di una transazione mentre è in corso un'altra transazione. In genere questo accade quando uno script che esegue una transazione include una funzione o chiama uno script che contiene un'altra transazione completa.

A meno che il secondo Start-Transaction comando non includa il parametro Independent , Start-Transaction non crea una nuova transazione. Aggiunge invece un secondo sottoscrittore alla transazione originale.

Il primo Start-Transaction comando avvia la transazione. Un comando New-Item con il parametro UseTransaction fa parte della transazione.

Un secondo Start-Transaction comando aggiunge un sottoscrittore alla transazione. Il comando successivo New-Item fa anche parte della transazione.

Il primo Get-Transaction comando mostra la transazione multi-sottoscrittore. Si noti che il numero di sottoscrittori è 2.

Il primo comando Complete-Transaction non esegue il commit della transazione, ma riduce il conteggio dei sottoscrittori a 1.

Il secondo Complete-Transaction comando esegue il commit della transazione.

Esempio 6: Avviare una transazione indipendente mentre è in corso un'altra transazione

Set-Location hklm:\software
Start-Transaction
Get-Transaction

RollbackPreference   SubscriberCount   IsRolledBack   IsCommitted
------------------   ---------------   ------------   -----------
Error                1                 False          False

Start-Transaction -Independent
Get-Transaction

RollbackPreference   SubscriberCount   IsRolledBack   IsCommitted
------------------   ---------------   ------------   -----------
Error                1                 False          False

Complete-Transaction
Get-Transaction
Complete-Transaction
Get-Transaction

Questo esempio mostra l'effetto prodotto sull'oggetto transazione dall'avvio di una transazione indipendente mentre è in corso un'altra transazione.

Il primo Start-Transaction comando avvia la transazione. Un New-Item comando con il parametro UseTransaction fa parte della transazione.

Un secondo Start-Transaction comando aggiunge un sottoscrittore alla transazione. Il comando successivo New-Item fa anche parte della transazione.

Il primo Get-Transaction comando mostra la transazione multi-sottoscrittore. Si noti che il numero di sottoscrittori è 2.

Il Complete-Transaction comando riduce il numero di sottoscrittori a 1, ma non esegue il commit della transazione.

Il secondo Complete-Transaction comando esegue il commit della transazione.

Input

None

Non è possibile inviare tramite pipe oggetti a questo cmdlet.

Output

PSTransaction

Questo cmdlet restituisce un oggetto che rappresenta la transazione corrente.