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