Sdílet prostřednictvím


Get-Transaction

Získá aktuální (aktivní) transakce.

Syntaxe

Get-Transaction []

Description

Rutina Get-Transaction získá objekt, který představuje aktuální transakci v relaci.

Tato rutina nikdy nevrací více než jeden objekt, protože najednou je aktivní pouze jedna transakce. Pokud spustíte jednu nebo více nezávislých transakcí (pomocí nezávislého parametru Start-Transaction), je naposledy spuštěná transakce aktivní a to je transakce, která Get-Transaction vrátí.

Pokud byly všechny aktivní transakce vráceny zpět nebo potvrzeny, tato rutina zobrazí transakci, která byla naposledy aktivní v relaci.

Tato rutina je jednou ze sady rutin, které podporují funkci transakcí ve Windows PowerShellu. Další informace najdete v tématu about_Transactions.

Příklady

Příklad 1: Získání aktuální transakce

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

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

Tento příkaz používá rutinu Get-Transaction k získání aktuální transakce.

Příklad 2: Zobrazení vlastností a metod objektu transakce

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

Tento příkaz používá rutinu Get-Member k zobrazení vlastností a metod objektu transakce.

Příklad 3: Zobrazení hodnot vlastností vrácené transakce

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

Tento příkaz zobrazuje hodnoty vlastností objektu transakce pro transakci, která byla vrácena zpět.

Příklad 4: Zobrazení hodnot vlastností potvrzené transakce

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

Tento příkaz zobrazí hodnoty vlastností objektu transakce pro transakce, která byla potvrzena.

Příklad 5: Spuštění transakce, zatímco probíhá jiná

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

Tento příklad ukazuje účinek na objekt transakce spuštění transakce, zatímco probíhá jiná transakce. K tomu obvykle dochází v případě, že skript, který spouští transakci, obsahuje funkci nebo volá skript, který obsahuje jinou úplnou transakci.

Pokud druhý příkaz Start-Transaction neobsahuje parametr Independent, Start-Transaction nevytváří novou transakci. Místo toho přidá k původní transakci druhý odběratel.

První Start-Transaction příkaz spustí transakci. New-Item příkaz s parametrem UseTransaction je součástí transakce.

Druhý start-transaction příkaz přidá odběratele transakce. Další New-Item příkaz je také součástí transakce.

První Get-Transaction příkaz zobrazí transakci s více předplatiteli. Všimněte si, že počet odběratelů je 2.

První Complete-Transaction příkaz neaktoruje transakci, ale snižuje počet odběratelů na 1.

Druhý Complete-Transaction příkaz potvrdí transakci.

Příklad 6: Spuštění nezávislé transakce, zatímco probíhá jiná

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

Tento příklad ukazuje účinek na objekt transakce spuštění nezávislé transakce, zatímco probíhá jiná transakce.

První Start-Transaction příkaz spustí transakci. Příkaz New-Item s parametrem UseTransaction je součástí transakce.

Druhý start-transaction příkaz přidá odběratele transakce. Další příkaz New-Item je také součástí transakce.

První Get-Transaction příkaz zobrazí transakci s více předplatiteli. Všimněte si, že počet odběratelů je 2.

Příkaz Complete-Transaction snižuje počet odběratelů na 1, ale ne potvrzení transakce.

Druhý Complete-Transaction příkaz potvrdí transakci.

Vstupy

None

Do této rutiny nelze vést objekty.

Výstupy

PSTransaction

Tato rutina vrátí objekt, který představuje aktuální transakci.