2013-07-11 2 views
29

rsync를 사용하여 Windows 컴퓨터를 백업하기위한 PowerShell 스크립트를 작성하는 중입니다. 이를 위해 필자는 스크립트에서 WMI를 사용하여 작성자가 참여하는 비 영구적 인 섀도 복사본을 만들려고 시도하고 있습니다 (백업용으로 권장 됨).PowerShell에서 "백업"컨텍스트를 사용하여 섀도 복사본 만들기

다른 질문 (Accessing Volume Shadow Copy (VSS) Snapshots from powershell)에서 일반적으로 쉐도우 복사본을 만드는 방법을 찾았지만 거기에 제공된 예제에서는 "ClientAccessible"을 컨텍스트 매개 변수로 사용하여 작성자없이 영구적 인 섀도 복사본을 만들었습니다 참여.

Get-WmiObject win32_shadowcontext | Out-GridView 

그것은 목록이 컨텍스트라는 한 않는 "솔루션을 검색하는 동안

, 난 내가 WMI 이해하고 있다고 가정 상황의 목록을 얻으려면 다음 명령을 사용할 수 있다는 것을 발견했다 백업 ", 편리하게 내가 원하는 것입니다. 에 따르면

ReturnValue  : 5 
ShadowID   : {00000000-0000-0000-0000-000000000000} 

로 설정되어

$shadow = (Get-WmiObject -list win32_shadowcopy).Create("C:\", "Backup") 

그러나,이 실패하는 것과 $ 그림자 변수의 내용 : 그 컨텍스트를 사용하여 비 영구적 섀도 복사본을 만드는 시도 진행 관련 설명서 (Create method of the Win32_ShadowCopy class), 반환 값은 "지원되지 않는 섀도 복사본 컨텍스트"를 의미합니다.

이 컨텍스트가 지원되지 않는 이유 또는 해당 컨텍스트를 전혀 사용할 수 없는지 관련 문서를 찾을 수 없습니다. 나는 또한 성공없이 "FileShareBackup"및 "AppRollback"컨텍스트를 시도했습니다.

내가 뻔한 무엇인가 놓친 것 같아요, 또는 웬일인지 WMI가 쉐도우 복사본을 만들 때 "clientAccessible"이외의 것을 지원하지 않거나 OS에 의존적이라고 생각합니다 (Windows 7에서 테스트 중입니다). , 64 비트)

어떻게 작동합니까?

+2

나는 C#과 AlphaVSS 라이브러리와 함께 똑같은 것을 썼다. 내가 배운 것은 여기있다 : 파일을 동기화하기 위해 스냅 샷을 마운트해야하지만 마운트 할 수 있어야한다. 스냅 샷은'NoAutoRelease' 플래그가'true'로 설정되어야합니다. 또한'NoAutoRelease'를 true로 설정하려면'Persistent'를'true'로 설정해야합니다. 그래서'ClientAccessable'가 작동하도록하기 위해 너무 많은 시간을 소비하지 않도록합니다 ('ClientAccessable'는 두 변수 모두 'true'로 설정) –

+0

NoAutoRelease가 False로 설정된 섀도 복사본은 요청하는 프로세스가 종료되면 자동으로 제거됩니다 ([링크] (http://msdn.microsoft.com/en-us/library/windows/desktop). /aa394427(v=vs.85).aspx)). 원래 그것이 제가 보았던 문제 였다고 생각했지만 AppRollback 컨텍스트와 동일한 문제가 있다는 사실은 그것이 사실이 아닐 수도 있음을 암시합니다. 그러나 일반적으로 [링크] (http://www.goodjobsucking.com/?p=62)에 설명 된대로 자동 해제 섀도 복사본을 탑재 할 수 있습니다. 그러나 필자는 제안 된 솔루션 대신 PowerShell을 사용하는 것을 선호합니다. –

+2

WMI가 작동하지 않으면 Powershell에 [AlphaVSS assembly] (http://alphavss.codeplex.com/)를로드 해보십시오. [여기에 스냅 샷을 생성하고 마운트하고 C#에서 삭제하는 방법이 있습니다.] (http://pastebin.com/XhVLyq0m), PowerShell로 변환 할 수 있어야합니다. –

답변

1

귀하의 $ shadow는 오류 메시지를보고 리턴 값이 5이고, 섀도우 ID가 모두 0이고, 바이너리를 사용하여 레지스트리에서 볼륨 섀도 복사본의 끝에 1 또는 2를 추가해야합니다 dword ..

regedit 검색에서 volsnap이라는 레지스트리에서 폴더를 찾습니다 .volsnap.sys는 C : \ Windows \ System32 \ drivers 디렉터리에 있습니다. 파일 크기는 52,352 바이트입니다. volsnap 파일에는 Microsoft의 디지털 서명이 들어 있습니다. 올바른 바이트인지 확인하십시오.

이는 인증 여부를 확인합니다. volsnap.sys는 EXE-Packer에 의해 압축 된 파일 인 것으로 보입니다. 이 기술은 종종 파일 크기를 작게 유지하고 디버깅 작업을 방해하기 위해 트로이 목마에 의해 사용됩니다.

그러나 의도적 인 전문 소프트웨어 제작자조차도 압축 된 파일을 활용하기 때문에 악의적 인 의도를 추정하기에 충분하지 않습니다. 이러한 이유로 모든 전문가 중 2 %는이 파일을 가능한 위협으로 간주합니다. 그것이 해를 입힐 가능성은 높습니다. 다른 사용자의 추가 의견을 고려하십시오.

그림자 아이디 기본 00000000-0000-0000-0000-000000000000 00000000-0000-0000-0000-000000000005

은 이미 아마 1

하거나 변경 나던하는 5가있는 경우 새로운 코드를 작성

그림자 ID를 정확히 shown.you가 w 것이다 $ 확실하지 differnt 한 표현 메신저를 시도해야 할 수 있으므로 $ 그림자 00000000-0000-0000-0000-0000000000001

을 오크. 안 js 독립형 버전을 시도하십시오.

관련 문제