Поделиться через


Get-Transaction

Получает текущую (активную) транзакцию.

Синтаксис

Get-Transaction []

Описание

Командлет Get-Transaction получает объект, представляющий текущую транзакцию в сеансе.

Он никогда не возвращает более одного объекта, так как одновременно активна только одна транзакция. При запуске одной или нескольких независимых транзакций (с помощью независимого параметра Start-Transaction) последняя запущенная транзакция активна, и это транзакция, Get-Transaction которая возвращается.

Если все активные транзакции были откатированы или зафиксированы, этот командлет показывает транзакцию, которая была последней активной в сеансе.

Этот командлет является одним из наборов командлетов, поддерживающих функцию транзакций в Windows PowerShell. Дополнительные сведения см. в about_Transactions.

Примеры

Пример 1. Получение текущей транзакции

Start-Transaction
Get-Transaction

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

Эта команда использует Get-Transaction командлет для получения текущей транзакции.

Пример 2. Отображение свойств и методов объекта транзакции

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

Эта команда использует Get-Member командлет для отображения свойств и методов объекта транзакции.

Пример 3. Отображение значений свойств отката транзакции

Set-Location hklm:\software
Start-Transaction
New-Item MyCompany -UseTransaction
Undo-Transaction
Get-Transaction

RollbackPreference   SubscriberCount   Status
------------------   ---------------   ----------
Error                0                 RolledBack

Эта команда показывает значения свойств объекта транзакции, для которой был выполнен откат.

Пример 4. Отображение значений свойств фиксации транзакции

Set-Location hklm:\software
Start-Transaction
New-Item MyCompany -UseTransaction
Complete-Transaction
Get-Transaction

RollbackPreference   SubscriberCount   Status
------------------   ---------------   ---------
Error                1                 Committed

Эта команда показывает значения свойств объекта транзакции, которая была зафиксирована.

Пример 5. Запуск транзакции во время выполнения другой

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

В этом примере показано, как запуск транзакции влияет на объект транзакции во время выполнения другой транзакции. Как правило, это происходит, когда скрипт, выполняющий транзакцию, включает в себя функцию или вызывает скрипт, который содержит другую транзакцию.

Если вторая Start-Transaction команда не включает параметр Independent , Start-Transaction не создает новую транзакцию. Вместо этого командлет добавляет второго подписчика к исходной транзакции.

Первая Start-Transaction команда запускает транзакцию. Команда New-Item с параметром UseTransaction является частью транзакции.

Вторая Start-Transaction команда добавляет подписчика в транзакцию. Следующая New-Item команда также является частью транзакции.

Get-Transaction Первая команда показывает транзакцию с несколькими подписчиками. Обратите внимание, что число подписчиков — 2.

Первая команда Complete-Transaction не фиксируют транзакцию, но оно уменьшает число подписчиков до 1.

Вторая Complete-Transaction команда фиксирует транзакцию.

Пример 6. Запуск независимой транзакции во время выполнения другой

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

В этом примере показано, как запуск независимой транзакции влияет на объект транзакции во время выполнения другой транзакции.

Первая Start-Transaction команда запускает транзакцию. Команда New-Item с параметром UseTransaction является частью транзакции.

Вторая Start-Transaction команда добавляет подписчика в транзакцию. Следующая New-Item команда также является частью транзакции.

Get-Transaction Первая команда показывает транзакцию с несколькими подписчиками. Обратите внимание, что число подписчиков — 2.

Команда Complete-Transaction сокращает число подписчиков до 1, но она не фиксирует транзакцию.

Вторая Complete-Transaction команда фиксирует транзакцию.

Входные данные

None

Нельзя передать объекты в этот командлет с помощью конвейера.

Выходные данные

PSTransaction

Этот командлет возвращает объект, представляющий текущую транзакцию.