다음을 통해 공유


Use-Transaction

활성 트랜잭션에 스크립트 블록을 추가합니다.

구문

Default (기본값)

Use-Transaction
    [-TransactedScript] <ScriptBlock>
    [-UseTransaction]
    [<CommonParameters>]

Description

Use-Transaction cmdlet은 활성 트랜잭션에 스크립트 블록을 추가합니다. 이렇게 하면 트랜잭션 사용 Microsoft .NET Framework 개체를 사용하여 트랜잭션된 스크립팅을 수행할 수 있습니다. 스크립트 블록은 Microsoft.PowerShell.Commands.Management.TransactedString 클래스의 인스턴스와 같은 트랜잭션 사용 .NET Framework 개체만 포함할 수 있습니다.

이 cmdlet을 사용하는 경우 대부분의 cmdlet에 대해 선택 사항인 UseTransaction 매개 변수가 필요합니다.

Use-Transaction 은 Windows PowerShell의 트랜잭션 기능을 지원하는 cmdlet 집합 중 하나입니다. 자세한 내용은 about_Transactions 참조하세요.

예제

예제 1: 트랜잭션 사용 개체를 사용하여 스크립트

PS C:\> Start-Transaction
PS C:\> $transactedString = New-Object Microsoft.PowerShell.Commands.Management.TransactedString
PS C:\> $transactedString.Append("Hello")
PS C:\> Use-Transaction -TransactedScript { $transactedString.Append(", World") } -UseTransaction
PS C:\> $transactedString.ToString()
Hello
PS C:\> Use-Transaction -TransactedScript { $transactedString.ToString() } -UseTransaction
Hello, World
PS C:\> Complete-Transaction
PS C:\> $transactedString.ToString()
Hello, World

이 예제에서는 Use-Transaction 을 사용하여 트랜잭션 사용 .NET Framework 개체에 대해 스크립팅하는 방법을 보여 줍니다. 이 경우 개체는 TransactedString 개체입니다.

첫 번째 명령은 Start-Transaction cmdlet을 사용하여 트랜잭션을 시작합니다.

두 번째 명령은 New-Object 명령을 사용하여 TransactedString 개체를 만듭니다. 개체를 $TransactedString 변수에 저장합니다.

세 번째 명령과 네 번째 명령은 모두 TransactedString 개체의 Append 메서드를 사용하여 $TransactedString 값에 텍스트를 추가합니다. 한 명령은 트랜잭션의 일부입니다. 다른 명령은 그렇지 않습니다.

세 번째 명령은 트랜잭션된 문자열의 Append 메서드를 사용하여 $TransactedString 값에 Hello를 추가합니다. 명령은 트랜잭션의 일부가 아니므로 변경 내용이 즉시 적용됩니다.

네 번째 명령은 Use-Transaction 을 사용하여 트랜잭션의 문자열에 텍스트를 추가합니다. 이 명령은 Append 메서드를 사용하여 $TransactedString 값에 ", World"를 추가합니다. 명령은 중괄호({})로 묶어 스크립트 블록으로 만듭니다. 이 명령에는 UseTransaction 매개 변수가 필요합니다.

다섯 번째 및 여섯 번째 명령은 TransactedString 개체의 ToString 메서드를 사용하여 TransactedString 값을 문자열로 표시합니다. 다시 말하지만, 하나의 명령은 트랜잭션의 일부입니다. 다른 트랜잭션은 그렇지 않습니다.

다섯 번째 명령은 ToString 메서드를 사용하여 $TransactedString 변수의 현재 값을 표시합니다. 트랜잭션의 일부가 아니므로 문자열의 현재 상태만 표시합니다.

여섯 번째 명령은 Use-Transaction 을 사용하여 트랜잭션에서 동일한 명령을 실행합니다. 이 명령은 트랜잭션의 일부이므로 트랜잭션 변경의 미리 보기와 마찬가지로 트랜잭션에서 문자열의 현재 값을 표시합니다.

일곱 번째 명령은 Complete-Transaction cmdlet을 사용하여 트랜잭션을 커밋합니다.

최종 명령은 ToString 메서드를 사용하여 변수의 결과 값을 문자열로 표시합니다.

예제 2: 트랜잭션 롤백

PS C:\> Start-Transaction
PS C:\> $transactedString = New-Object Microsoft.PowerShell.Commands.Management.TransactedString
PS C:\> $transactedString.Append("Hello")
PS C:\> Use-Transaction -TransactedScript { $transactedString.Append(", World") } -UseTransaction
PS C:\> Undo-Transaction
PS C:\> $transactedString.ToString()
Hello

이 예에서는 Use-Transaction 명령이 포함된 트랜잭션을 롤백하는 효과를 보여 줍니다. 트랜잭션의 모든 명령과 마찬가지로 트랜잭션이 롤백되면 트랜잭션 변경 내용이 삭제되고 데이터는 변경되지 않습니다.

첫 번째 명령은 Start-Transaction 을 사용하여 트랜잭션을 시작합니다.

두 번째 명령은 New-Object 를 사용하여 TransactedString 개체를 만듭니다. 개체를 $TransactedString 변수에 저장합니다.

트랜잭션의 일부가 아닌 세 번째 명령은 Append 메서드를 사용하여 $TransactedString 값에 "Hello"를 추가합니다.

네 번째 명령은 Use-Transaction 을 사용하여 트랜잭션에서 Append 메서드를 사용하는 다른 명령을 실행합니다. 이 명령은 Append 메서드를 사용하여 $TransactedString 값에 ", World"를 추가합니다.

다섯 번째 명령은 Undo-Transaction cmdlet을 사용하여 트랜잭션을 롤백합니다. 따라서 트랜잭션에서 수행된 모든 명령이 취소됩니다.

마지막 명령은 ToString 메서드를 사용하여 $TransactedString의 결과 값을 문자열로 표시합니다. 결과에는 트랜잭션 외부에서 적용된 변경 내용만 개체에 적용된 것으로 표시됩니다.

매개 변수

-TransactedScript

트랜잭션에서 실행되는 스크립트 블록을 지정합니다. 중괄호({ } )로 묶인 유효한 스크립트 블록을 입력합니다. 이 매개 변수는 필수입니다.

매개 변수 속성

형식:ScriptBlock
Default value:None
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:0
필수:True
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-UseTransaction

활성 트랜잭션에 명령을 포함합니다. 이 매개 변수는 트랜잭션이 진행 중인 경우에만 유효합니다. 자세한 내용은 about_Transactions 참조하세요.

매개 변수 속성

형식:SwitchParameter
Default value:False
와일드카드 지원:False
DontShow:False
별칭:usetx

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

CommonParameters

이 cmdlet은 일반적인 매개 변수인 -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction 및 -WarningVariable 매개 변수를 지원합니다. 자세한 내용은 about_CommonParameters를 참조하세요.

입력

None

이 cmdlet에 입력을 파이프할 수 없습니다.

출력

PSObject

이 cmdlet은 트랜잭션의 결과를 반환합니다.

참고

  • UseTransaction 매개 변수에는 활성 트랜잭션의 명령이 포함됩니다. Use-Transaction cmdlet은 항상 트랜잭션에 사용되므로 이 매개 변수는 Use-Transaction 명령을 적용하는 데 필요합니다.