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 Indipendente di Start-Transaction), la transazione avviata più di recente è attiva ed è la transazione restituita da Get-Transaction .

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

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

Esempio

Esempio 1: Ottenere la transazione corrente

PS C:\> Start-Transaction
PS C:\> 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

PS C:\> 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 rollback

PS C:\> cd hklm:\software
HKLM:\SOFTWARE> Start-Transaction
HKLM:\SOFTWARE> New-Item MyCompany -UseTransaction
HKLM:\SOFTWARE> Undo-Transaction
HKLM:\SOFTWARE> 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 commit

PS C:\> cd hklm:\software
HKLM:\SOFTWARE> Start-Transaction
HKLM:\SOFTWARE> New-Item MyCompany -UseTransaction
HKLM:\SOFTWARE> Complete-Transaction
HKLM:\SOFTWARE> 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 un altro è in corso

PS C:\> cd hklm:\software
HKLM:\SOFTWARE> Start-Transaction
HKLM:\SOFTWARE> New-Item MyCompany -UseTransaction
HKLM:\SOFTWARE> Start-Transaction
HKLM:\SOFTWARE> New-Item MyCompany2 -UseTransaction
HKLM:\SOFTWARE> Get-Transaction

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

HKLM:\SOFTWARE> Complete-Transaction
HKLM:\SOFTWARE> Get-Transaction

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

HKLM:\SOFTWARE> Complete-Transaction
HKLM:\SOFTWARE> 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 comando Start-Transaction includa il parametro Indipendente , 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 successivo comando New-Item 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 conteggio dei sottoscrittori a 1.

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

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

PS C:\>
HKLM:\SOFTWARE> Start-Transaction
HKLM:\SOFTWARE> Get-Transaction

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

HKLM:\SOFTWARE> Start-Transaction -Independent
HKLM:\SOFTWARE> Get-Transaction

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

HKLM:\SOFTWARE> Complete-Transaction
HKLM:\SOFTWARE> Get-Transaction
HKLM:\SOFTWARE> Complete-Transaction
HKLM:\SOFTWARE> 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 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. 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 conteggio dei 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.