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


Get-Transaction

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

Синтаксис

Default (По умолчанию)

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

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