Undo-Transaction
활성 트랜잭션을 롤백합니다.
구문
Undo-Transaction [-Confirm] [-WhatIf] [<CommonParameters>]
설명
Undo-Transaction cmdlet은 활성 트랜잭션을 롤백합니다. 트랜잭션을 롤백하면 트랜잭션의 명령에 의해 변경된 사항이 취소되고 데이터는 원래의 형태로 복원됩니다.
트랜잭션에 다중 가입자가 포함된 경우 Undo-Transaction 명령은 모든 가입자에 대해 전체 트랜잭션을 롤백합니다.
기본적으로 트랜잭션의 명령에서 오류가 생성될 경우 트랜잭션은 자동으로 롤백됩니다. 그러나 트랜잭션을 다양한 롤백 기본 설정으로 시작할 수 있으며 이 cmdlet을 사용하여 언제든지 활성 트랜잭션을 롤백할 수 있습니다.
Undo-Transaction cmdlet은 Windows PowerShell의 트랜잭션 기능을 지원하는 cmdlet 집합 중 하나입니다. 자세한 내용은 about_Transactions를 참조하십시오.
매개 변수
-Confirm
명령을 실행하기 전에 확인 메시지를 표시합니다.
필수 여부 |
false |
위치 |
named |
기본값 |
|
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
-WhatIf
명령을 실제로 실행하지 않고도 명령이 실행될 경우 발생할 수 있는 현상을 설명합니다.
필수 여부 |
false |
위치 |
named |
기본값 |
|
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
<CommonParameters>
이 cmdlet은 -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer, -OutVariable 등의 일반 매개 변수를 지원합니다. 자세한 내용은 about_commonparameters.
입력 및 출력
입력 유형은 cmdlet으로 파이프할 수 있는 개체의 유형입니다. 반환 유형은 cmdlet에서 반환되는 개체의 유형입니다.
입력 |
없음 입력을 이 cmdlet으로 파이프할 수 없습니다. |
출력 |
없음 이 cmdlet은 어떠한 출력도 반환하지 않습니다. |
참고
이미 커밋된 트랜잭션은 롤백할 수 없습니다.
활성 트랜잭션이 아닌 트랜잭션은 롤백할 수 없습니다. 다른 독립 트랜잭션을 롤백하려면 먼저 활성 트랜잭션을 커밋하거나 롤백해야 합니다.
트랜잭션을 롤백하면 트랜잭션이 종료됩니다. 트랜잭션을 다시 사용하려면 새 트랜잭션을 시작해야 합니다.
예 1
C:\PS>undo-transaction
설명
-----------
이 명령은 현재(활성) 트랜잭션을 롤백합니다.
예 2
C:\PS>cd hkcu:\software
PS HKCU:\Software> start-transaction
PS HKCU:\Software> new-item MyCompany -usetransaction
PS HKCU:\Software> undo-transaction
설명
-----------
이 명령은 트랜잭션을 시작한 후 롤백합니다. 따라서 레지스트리가 변경되지 않습니다.
예 3
C:\PS>cd hkcu:\software
PS HKCU:\Software> start-transaction
PS HKCU:\Software> new-item MyCompany -usetransaction
PS HKCU:\Software> get-transaction
RollbackPreference SubscriberCount Status
------------------ --------------- -----
Error 1 Active
PS HKCU:\Software> start-transaction
PS HKCU:\Software> get-transaction
RollbackPreference SubscriberCount Status
------------------ --------------- -----
Error 2 Active
PS HKCU:\Software> undo-transaction
PS HKCU:\Software> get-transaction
RollbackPreference SubscriberCount Status
------------------ --------------- -----
Error 0 RolledBack
설명
-----------
이 예에서는 가입자가 트랜잭션을 롤백할 때 모든 가입자에 대한 전체 트랜잭션이 롤백되는 것을 보여 줍니다.
첫 번째 명령은 HKCU:\Software 레지스트리 키의 위치를 변경합니다.
두 번째 명령은 트랜잭션을 시작합니다.
세 번째 명령은 New-Item cmdlet을 사용하여 새 레지스트리 항목을 만든 다음 UseTransaction 매개 변수를 사용하여 트랜잭션에 변경 사항을 포함합니다.
네 번째 명령은 Get-Transaction cmdlet을 사용하여 활성 트랜잭션을 가져옵니다. 이때 상태는 Active이고 가입자 수는 1입니다.
다섯 번째 명령은 Start-Transaction 명령을 다시 사용합니다. 일반적으로
다른 트랜잭션이 실행 중일 때 트랜잭션을 시작하는 일은 기본 트랜잭션에 사용되는 스크립트에 해당 트랜잭션이 모두 포함되는 경우 발생합니다. 이 예는 단계를 확인할 수 있도록 대화식으로 진행됩니다.
다른 트랜잭션이 진행 중일 때 Start-Transaction 명령을 입력하면 명령이 새 "가입자"로 기존 트랜잭션에 가입되고 가입자 수가 증가합니다.
여섯 번째 명령은 Get-Transaction cmdlet을 사용하여 활성 트랜잭션을 가져옵니다. 이제 가입자 수는 2가 됩니다.
일곱 번째 명령은 Undo-Transaction cmdlet을 사용하여 트랜잭션을 롤백합니다. 이 명령은 어떠한 개체도 반환하지 않습니다.
마지막 명령은 활성(이 경우 가장 최근 활성화된) 트랜잭션을 가져오는 Get-Transaction 명령입니다. 이 명령을 실행하면 트랜잭션이 롤백되고 가입자 수가 0이 되며 모든 가입자에 대해 트랜잭션이 롤백되는 것을 보여 줍니다.
참고 항목
개념
about_Transactions
about_providers
Start-Transaction
Get-Transaction
Complete-Transaction
Use-Transaction