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
Questo cmdlet restituisce un oggetto che rappresenta la transazione corrente.