Condividi tramite


Get-Transaction

Ottiene la transazione corrente (attiva).

Sintassi

Get-Transaction []

Descrizione

Il cmdlet Get-Transaction 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 ed è la transazione che Get-Transaction restituisce.

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 cmdlet Get-Transaction 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 cmdlet Get-Member 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

In questo esempio viene illustrato l'effetto sull'oggetto transazione di avvio di una transazione mentre è in corso un'altra transazione. In genere, ciò si verifica 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 comando Start-Transaction non includa il parametro Independent, Start-Transaction non crea una nuova transazione. Aggiunge invece un secondo sottoscrittore alla transazione originale.

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

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

Il primo comando Get-Transaction 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 numero di sottoscrittori a 1.

Il secondo comando Complete-Transaction 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

In questo esempio viene illustrato l'effetto sull'oggetto transazione dell'avvio di una transazione indipendente mentre è in corso un'altra transazione.

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

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

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

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

Il secondo comando Complete-Transaction 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.