Undo-Transaction
Откатывает активную транзакцию.
Синтаксис
Undo-Transaction
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Описание
Командлет Undo-Transaction
откатывает активную транзакцию. При откате транзакции изменения, внесенные командами в транзакции, удаляются и данные восстанавливаются в исходной форме.
Если транзакция включает несколько подписчиков, Undo-Transaction
команда откатит всю транзакцию для всех подписчиков.
По умолчанию откат транзакций выполняется автоматически в случае создания ошибки любой из команд в транзакции. Однако транзакции можно запускать с помощью другого предпочтения отката, и этот командлет можно использовать для отката активной транзакции в любое время.
Командлет Undo-Transaction
является одним из наборов командлетов, поддерживающих функцию транзакций в Windows PowerShell. Дополнительные сведения см. в about_Transactions.
Примеры
Пример 1. Откат текущей транзакции
Undo-Transaction
Эта команда откатывает текущую, активную, транзакцию.
Пример 2. Запуск и откат транзакции
Set-Location hkcu:\software
Start-Transaction
New-Item -Path "ContosoCompany" -UseTransaction
Undo-Transaction
В этом примере запускается транзакция, а затем выполняется откат. В результате изменения не вносятся в реестр.
Пример 3. Откат транзакции для всех подписчиков
Set-Location hkcu:\software
Start-Transaction
New-Item -Path "ContosoCompany" -UseTransaction
Get-Transaction
RollbackPreference SubscriberCount Status
------------------ --------------- -----
Error 1 Active
Start-Transaction
Get-Transaction
RollbackPreference SubscriberCount Status
------------------ --------------- -----
Error 2 Active
Undo-Transaction
Get-Transaction
RollbackPreference SubscriberCount Status
------------------ --------------- -----
Error 0 RolledBack
В этом примере показано, что при откате транзакции любой подписчик выполняет откат всей транзакции для всех подписчиков.
Первая команда изменяет расположение раздела HKCU:\Software
реестра.
Вторая команда запускает транзакцию.
Третья команда использует New-Item
командлет для создания нового раздела реестра. Команда использует параметр UseTransaction для включения изменения в транзакцию.
Четвертая команда использует Get-Transaction
командлет для получения активной транзакции. Обратите внимание, что состояние — Active, а число подписчиков — 1.
Пятая команда снова использует Start-Transaction
команду. Как правило, запуск транзакции во время выполнения другой транзакции происходит, когда скрипт, используемый основной транзакцией, включает собственную полную транзакцию. Этот пример выполняется в интерактивном режиме, чтобы можно было проанализировать его на этапах. При выполнении Start-Transaction
команды во время выполнения другой транзакции команды команды присоединяются к существующей транзакции в качестве нового подписчика и увеличивается число подписчиков.
Шестая команда использует Get-Transaction
командлет для получения активной транзакции. Обратите внимание, что число подписчиков теперь 2.
Седьмая команда используется Undo-Transaction
для отката транзакции. Этот командлет не возвращает никакие объекты.
Последняя команда — это Get-Transaction
команда, которая получает активную или в данном случае последнюю активную транзакцию. Результаты показывают, что откат транзакции выполнен и число подписчиков равно 0, то есть, откат транзакции был выполнен для всех подписчиков.
Параметры
-Confirm
Запрос подтверждения перед выполнением командлета.
Тип: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-WhatIf
Показывает, что произойдет при запуске командлета. Командлет не выполняется.
Тип: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
Входные данные
None
В этот командлет нельзя передать входные данные.
Выходные данные
None
Этот командлет не возвращает никакие выходные данные.
Примечания
Нельзя выполнить откат транзакции, которая была зафиксирована.
Нельзя выполнить откат транзакции, которая не является активной. Для отката другой, независимой транзакции необходимо сначала выполнить фиксацию или откат активной транзакции.
Откат транзакции завершает транзакцию. Чтобы использовать транзакцию снова, необходимо запустить новую транзакцию.
Связанные ссылки
PowerShell