PowerShell에서 트랜잭션 사용

2375 단어 PowerShellWindows10

배경



powershell 스크립트(ps1)로 아이템 삭제하는 스크립트를 쓰고 있어, 문득, 삭제 처리를 트랜잭션(transaction) 제어 할 수 있으면 편리하지 않다? 라고 생각했기 때문에.

결론부터 말할 수 없었습니다.

Start-Transaction



Start-Transaction cmdlet에서 트랜잭션을 시작할 수 있습니다. 커밋하려면 Complete-Transaction입니다.
htps : // / cs. mic로소 ft. 코 m/엔-우 s/포ぇr시ㅇl/모즈ぇ/미 c로소 ft. Pou r shi l. 마나게 멘 t / s rt-t 란사 c 치오?ゔ ぃ え ぇ ぇ r ぇ l 5.1

이 Start와 Comtlete 사이에 끼워진 블록은 트랜잭션 제어의 대상이 됩니다. 다만 그 블록내에서 사용하는 cmdlet가 트랜잭션(transaction)에 대응하지 않으면 안됩니다.
특히 -UseTransaction 매개 변수를 지정할 수 있는지 여부입니다.

또한 공급자가 트랜잭션을 지원해야 합니다.

공급자?



PowerShell에서의 객체 조작의 구조입니다.
htps : // / cs. mic로소 ft. 코 m / 쟈 jp / 뽀 ぇ ぇ l / sc 리 p 찐 g / ゔ ぇ ぺ r / p 로 ゔ r / ぃぃ로 r ゔ ぇ r ゔ ぃ w?ゔ ぃ w = Pou r shi l 7

Windows PowerShell 공급자를 사용하면 마운트된 드라이브처럼 모든 데이터스토어를 파일 시스템으로 게시할 수 있습니다.

트랜잭션 제어를 지원하는 공급자는 레지스트리뿐입니다.
즉, 레지스트리에 관한 조작은 트랜잭션 제어가 가능합니다.
대응하고 있는 프로바이더는 아래의 cmdlet에서 조사합시다.
get-psprovider | where {$_.Capabilities -like "*transactions*"}



거래에서 화가 난다.



remove-item에서 transaction을 지정해 봅시다.


화가났다. 파일 시스템이 트랜잭션을 지원하지 않습니다.

요약



불행히도 파일 시스템 공급자가 트랜잭션을 제어하지 않았습니다.

언젠가 대응할까요?

좋은 웹페이지 즐겨찾기