Partilhar via


Get-Transaction

Obtém a transação atual (ativa).

Sintaxe

Get-Transaction []

Description

O cmdlet Get-Transaction obtém um objeto que representa a transação atual na sessão.

Esse cmdlet nunca retorna mais de um objeto, porque apenas uma transação está ativa de cada vez. Se você iniciar uma ou mais transações independentes (usando o parâmetro Independent de Start-Transaction), a transação iniciada mais recentemente estará ativa, e essa é a transação que Get-Transaction retorna.

Quando todas as transações ativas tiverem sido revertidas ou confirmadas, este cmdlet mostra a transação que esteve ativa mais recentemente na sessão.

Este cmdlet faz parte de um conjunto de cmdlets que dão suporte ao recurso de transações no Windows PowerShell. Para obter mais informações, consulte about_Transactions.

Exemplos

Exemplo 1: Obter a transação atual

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

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

Este comando usa o cmdlet Get-Transaction para obter a transação atual.

Exemplo 2: Mostrar as propriedades e os métodos do objeto de transação

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;}

Este comando usa o cmdlet Get-Member para mostrar as propriedades e os métodos do objeto de transação.

Exemplo 3: Mostrar os valores de propriedade de uma transação revertida

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

Este comando mostra os valores de propriedade de um objeto de transação para uma transação que foi revertida.

Exemplo 4: Mostrar os valores de propriedade de uma transação confirmada

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

Este comando mostra os valores de propriedade de um objeto de transação para uma transação que foi confirmada.

Exemplo 5: Iniciar uma transação enquanto outra está em andamento

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

Este exemplo mostra o efeito no objeto de transação de iniciar uma transação enquanto outra transação está em andamento. Normalmente, isso acontece quando um script que executa uma transação inclui uma função ou chama um script que contém outra transação completa.

A menos que o segundo comando Start-Transaction inclua o parâmetro Independent, Start-Transaction não cria uma nova transação. Em vez disso, adiciona um segundo assinante à transação original.

O primeiro comando Start-Transaction inicia a transação. Um comando New-Item com o parâmetro UseTransaction faz parte da transação.

Um segundo comando Start-Transaction adiciona um assinante à transação. O comando next New-Item também faz parte da transação.

O primeiro comando Get-Transaction mostra a transação de vários assinantes. Observe que a contagem de assinantes é 2.

O primeiro comando Complete-Transaction não confirma a transação, mas reduz a contagem de assinantes para 1.

O segundo comando Complete-Transaction confirma a transação.

Exemplo 6: Iniciar uma transação independente enquanto outra está em andamento

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

Este exemplo mostra o efeito no objeto de transação de iniciar uma transação independente enquanto outra transação está em andamento.

O primeiro comando Start-Transaction inicia a transação. Um comando New-Item com o parâmetro UseTransaction faz parte da transação.

Um segundo comando Start-Transaction adiciona um assinante à transação. O próximo comando New-Item também faz parte da transação.

O primeiro comando Get-Transaction mostra a transação de vários assinantes. Observe que a contagem de assinantes é 2.

O comando Complete-Transaction reduz a contagem de assinantes para 1, mas não confirma a transação.

O segundo comando Complete-Transaction confirma a transação.

Entradas

None

Não é possível canalizar objetos para este cmdlet.

Saídas

PSTransaction

Este cmdlet retorna um objeto que representa a transação atual.