Get-Transaction
Получает текущую (активную) транзакцию.
Синтаксис
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 фиксирует транзакцию.
См. также
Концепции
about_Transactions
about_Providers
Start-Transaction
Complete-Transaction
Undo-Transaction
Use-Transaction