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
Этот командлет возвращает объект, представляющий текущую транзакцию.