Получает текущую (активную) транзакцию.
Синтаксис
Get-Transaction [<CommonParameters>]
Описание
Командлет Get-Transaction возвращает объект, представляющий текущую транзакцию в сеансе.
Этот командлет никогда не возвращает более одного объекта, поскольку в каждый момент времени может быть активной только одна транзакция. При запуске одной или нескольких независимых транзакций (с помощью параметра Independent командлета Start-Transaction) активной транзакцией является последняя запущенная транзакция; именно эту транзакцию возвращает командлет Get-Transaction.
После отката или фиксации всех активных транзакций командлет Get-Transaction отображает транзакцию, которая являлась последней активной транзакцией в сеансе.
Командлет Get-Transaction входит в набор командлетов, поддерживающих обработку транзакций в Windows PowerShell. Дополнительные сведения см. в разделе about_Transactions.
Параметры
<CommonParameters>
Данный командлет поддерживает общие параметры -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer и -OutVariable. Дополнительные сведения см. в разделе about_Commonparameters.
Ввод и вывод
Входным типом является тип объектов, которые можно передавать командлету по конвейеру. Возвращаемым типом является тип объектов, возвращаемых командлетом.
Входные данные |
Нет Передать объекты этому командлету по конвейеру невозможно. |
Выходные данные |
System.Management.Automation.PSTransaction Командлет Get-Transaction возвращает объект, представляющий текущую транзакцию. |
Пример 1
C:\PS>start-transaction C:\PS> get-transaction RollbackPreference SubscriberCount Status ------------------ --------------- ------ Error 1 Active Описание ----------- Эта команда с помощью командлета Get-Transaction получает текущую транзакцию.
Пример 2
C:\PS>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
C:\PS>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 Описание ----------- Эта команда отображает значения свойств объекта транзакции, откат которой был выполнен.
Пример 4
C:\PS>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 Описание ----------- Эта команда отображает значения свойств объекта транзакции, которая была зафиксирована.
Пример 5
C:\PS>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 Описание ----------- В этом примере показано, что происходит с объектом транзакции при запуске транзакции во время выполнения другой транзакции. Обычно такая ситуация возникает, если в скрипте, осуществляющем запуск транзакции, содержится функция или вызов скрипта, включающего другую завершенную транзакцию. Если в команде Start-Transaction не задан параметр Independent, команда Start-Transaction не создает новую транзакцию. Вместо этого она добавляет второго подписчика в исходную транзакцию. Первая команда Start-Transaction запускает транзакцию. Команда New-Item с параметром UseTransaction является частью транзакции. Вторая команда Start-Transaction добавляет подписчика в транзакцию. Следующая команда New-Item также является частью транзакции. Первая команда Get-Transaction отображает транзакцию с несколькими подписчиками. Обратите внимание, что количество подписчиков равно 2. Первая команда Complete-Transaction не фиксирует транзакцию, но сокращает количество подписчиков до 1. Вторая команда Complete-Transaction фиксирует транзакцию.
Пример 6
C:\PS>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 Описание ----------- В этом примере показано, что происходит с объектом транзакции при запуске независимой транзакции во время выполнения другой транзакции. Первая команда Start-Transaction запускает транзакцию. Команда New-Item с параметром UseTransaction является частью транзакции. Вторая команда Start-Transaction добавляет подписчика в транзакцию. Следующая команда New-Item также является частью транзакции. Первая команда Get-Transaction отображает транзакцию с несколькими подписчиками. Обратите внимание, что количество подписчиков равно 2. Первая команда Complete-Transaction сокращает количество подписчиков до 1, но не фиксирует транзакцию. Вторая команда Complete-Transaction фиксирует транзакцию.
См. также