Use-Transaction
스크립트 블록을 활성 트랜잭션에 추가합니다.
구문
Use-Transaction [-TransactedScript] <scriptblock> [-UseTransaction] [<CommonParameters>]
설명
Use-Transaction cmdlet은 스크립트 블록을 활성 트랜잭션에 추가합니다. 그 결과 트랜잭션이 사용 가능한 Microsoft .NET Framework 개체를 사용하는 트랜잭션 스트립팅을 수행할 수 있습니다. 이 스크립트 블록에는 Microsoft.PowerShell.Commands.Management.TransactedString 클래스 등 트랜잭션이 사용 가능한 .NET Framework 개체만 포함될 수 있습니다.
UseTransaction 매개 변수는 대부분의 cmdlet에서 선택 항목이지만 이 cmdlet을 사용할 때는 필수 항목입니다.
Use-Transaction cmdlet은 Windows PowerShell의 트랜잭션 기능을 지원하는 cmdlet 집합 중 하나입니다. 자세한 내용은 about_Transactions를 참조하십시오.
매개 변수
-TransactedScript <scriptblock>
트랜잭션에서 실행되는 스크립트 블록을 지정합니다. 유효한 스크립트 블록을 중괄호( { } )로 묶어 입력합니다. 이 매개 변수는 필수 사항입니다.
필수 여부 |
true |
위치 |
1 |
기본값 |
없음 |
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
-UseTransaction
명령을 활성 트랜잭션에 포함합니다. 이 매개 변수는 트랜잭션이 진행 중인 경우에만 유효합니다. 자세한 내용은 about_Transactions를 참조하십시오.
필수 여부 |
false |
위치 |
named |
기본값 |
|
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
<CommonParameters>
이 cmdlet은 -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer, -OutVariable 등의 일반 매개 변수를 지원합니다. 자세한 내용은 about_commonparameters.
입력 및 출력
입력 유형은 cmdlet으로 파이프할 수 있는 개체의 유형입니다. 반환 유형은 cmdlet에서 반환되는 개체의 유형입니다.
입력 |
없음 입력을 이 cmdlet으로 파이프할 수 없습니다. |
출력 |
PSObject Use-Transaction은 트랜잭션 결과를 반환합니다. |
참고
Use-Transaction 매개 변수는 해당 명령을 활성 트랜잭션에 포함합니다. Use-Transaction cmdlet은 트랜잭션에서 항상 사용되므로 Use-Transaction 명령을 적용하려면 이 매개 변수가 필요합니다.
예 1
C:\PS>start-transaction
C:\PS> $transactedString = New-Object Microsoft.PowerShell.Commands.Management.TransactedString
C:\PS> $transactedString.Append("Hello")
C:\PS> use-transaction -TransactedScript { $transactedString.Append(", World") } -UseTransaction
C:\PS> $transactedString.ToString()
Hello
C:\PS> use-transaction -transactedScript { $transactedString.ToString() } -UseTransaction
Hello, World
C:\PS> complete-transaction
C:\PS> $transactedString.ToString()
Hello, World
설명
-----------
이 예에서는 Use-Transaction cmdlet을 사용하여 트랜잭션 사용 가능한 .NET Framework 개체에 대해 스크립트를 수행하는 방법을 보여 줍니다. 이 경우 개체는 TransactedString 개체입니다.
첫 번째 명령은 Start-Transaction cmdlet을 사용하여 트랜잭션을 시작합니다.
두 번째 명령은 New-Object 명령을 사용하여 TransactedString 개체를 만듭니다. 개체를 $TransactedString 변수에 저장합니다.
세 번째 및 네 번째 명령은 모두 TransactedString 개체의 Append 메서드를 사용하여 $TransactedString 값에 텍스트를 추가합니다. 한 명령은 트랜잭션의 일부이지만 다른 명령은 아닙니다.
세 번째 명령은 트랜잭션 문자열의 Append 메서드를 사용하여 "Hello"라는 텍스트를 $TransactedString 값에 추가합니다. 이 명령은 트랜잭션의 일부가 아니므로 변경 사항이 즉시 적용됩니다.
네 번째 명령은 Use-Transaction cmdlet을 사용하여 트랜잭션 내의 문자열에 텍스트를 추가합니다. 이 명령은 Append 메서드를 사용하여 $TransactedString 값에 ", World"를 추가합니다. 명령을 중괄호( {} )로 묶어 스크립트 블록으로 만듭니다. 이 명령에서 UseTransaction 매개 변수는 필수 항목입니다.
다섯 번째와 여섯 번째 명령은 TransactedString 개체의 ToString 메서드를 사용하여 TransactedString의 값을 문자열로 표시합니다. 이 경우도 한 명령은 트랜잭션의 일부이지만 다른 명령은 아닙니다.
다섯 번째 명령은 ToString 메서드를 사용하여 $TransactedString 변수의 현재 값을 표시합니다. 이 명령은 트랜잭션의 일부가 아니므로 문자열의 현재 상태만 표시됩니다.
여섯 번째 명령은 Use-Transaction cmdlet을 사용하여 트랜잭션 내의 동일한 명령을 실행합니다. 이 명령은 트랜잭션의 일부여서 트랜잭션 내에 있는 문자열의 현재 값을 표시하므로 트랜잭션의 변경 사항을 미리 확인할 수 있습니다.
일곱 번째 명령은 Complete-Transaction cmdlet을 사용하여 트랜잭션을 커밋합니다.
마지막 명령은 ToString 메서드를 사용하여 변수의 결과 값을 문자열로 표시합니다.
예 2
C:\PS>start-transaction
C:\PS> $transactedString = New-Object Microsoft.PowerShell.Commands.Management.TransactedString
C:\PS> $transactedString.Append("Hello")
C:\PS> use-transaction -TransactedScript { $transactedString.Append(", World") } -UseTransaction
C:\PS> undo-transaction
C:\PS> $transactedString.ToString()
Hello
설명
-----------
이 예에서는 Use-Transaction 명령을 포함하는 트랜잭션의 롤백 효과를 보여 줍니다. 트랜잭션의 다른 명령과 마찬가지로, 트랜잭션을 롤백하면 변경 사항이 취소되고 데이터가 원래대로 돌아갑니다.
첫 번째 명령은 Start-Transaction cmdlet을 사용하여 트랜잭션을 시작합니다.
두 번째 명령은 New-Object 명령을 사용하여 TransactedString 개체를 만듭니다. 개체를 $TransactedString 변수에 저장합니다.
트랜잭션의 일부인 세 번째 명령은 Append 메서드를 사용하여 $TransactedString 값에 "Hello"라는 텍스트를 추가합니다.
네 번째 명령은 Use-Transaction cmdlet을 사용하여 트랜잭션 내에서 Append 메서드를 사용하는 다른 명령을 실행합니다. 이 명령은 Append 메서드를 사용하여 $TransactedString 값에 ", World"를 추가합니다.
다섯 번째 명령은 Undo-Transaction cmdlet을 사용하여 트랜잭션을 롤백합니다. 그 결과 트랜잭션 내에서 수행된 모든 명령이 번복됩니다.
마지막 명령은 ToString 메서드를 사용하여 $TransactedString의 결과 값을 문자열로 표시합니다. 그 결과 트랜잭션 밖에서 수행된 변경 사항만 개체에 적용됩니다.
참고 항목
개념
about_Transactions
Start-Transaction
Get-Transaction
Complete-Transaction
Undo-Transaction