PowerShell에서 "백업" 컨텍스트를 사용하여 섀도 복사본 생성
rsync를 사용하여 Windows 컴퓨터를 백업하기 위한 PowerShell 스크립트를 작성하는 중입니다.이를 위해 해당 스크립트의 WMI를 사용하여 작성자가 참여하는 비영구적인 섀도 복사본을 생성하려고 합니다(백업에 권장되는 것처럼 보입니다).
다른 질문(Accessing Volume Shadow Copy(VSS) Snapshots from powershell)에서 일반적으로 섀도 복사본을 생성하는 방법을 확인했지만, 여기에 제시된 예에서는 컨텍스트 매개 변수로 "Client Accessible"을 사용하므로 작성자의 참여 없이 영구 섀도 복사본이 생성됩니다.
솔루션을 검색하는 동안 다음 명령을 사용하여 컨텍스트 목록을 가져올 수 있음을 알게 되었습니다. 컨텍스트 목록은 WMI에 의해 인식됩니다.
Get-WmiObject win32_shadowcontext | Out-GridView
목록에는 "Backup"이라는 이름의 컨텍스트가 있습니다. 이 컨텍스트는 편리하게도 제가 원하는 것입니다.이 콘텍스트를 사용하여 비영구적인 섀도 카피를 작성하려고 했습니다.
$shadow = (Get-WmiObject -list win32_shadowcopy).Create("C:\", "Backup")
단, 이는 실패할 것으로 보이며 $shadow 변수의 내용은 다음과 같이 설정됩니다.
ReturnValue : 5
ShadowID : {00000000-0000-0000-0000-000000000000}
관련 문서(Win32_ShadowCopy 클래스의 작성 메서드)에 따르면 반환 값은 "지원되지 않는 섀도 복사 컨텍스트"를 의미합니다.
이 콘텍스트가 지원되지 않는 이유나 사용할 수 있는지 여부에 대한 관련 문서를 찾을 수 없었습니다.또한 "FileShareBackup" 및 "AppRollback" 컨텍스트를 시도했지만 성공하지 못했습니다.
뭔가 명백한 것을 놓쳤거나 어떤 이유로 WMI가 섀도 복사본을 작성할 때 "클라이언트 액세스 가능" 이외의 것을 지원하지 않거나 OS에 의존합니다(Windows 7, 64비트에서 테스트 중입니다).
어떻게 하면 작동시킬 수 있을까요?
자, 테크누브 1984가 특종입니다.첨부한 스크린샷을 보세요.
이것은 까다롭습니다.왜냐하면 x64 버전의 Powershell을 사용해야 하기 때문입니다(wow64가 아닌 system32에 있습니다).
섀도 복사 컨텍스트는 개체의 .properties입니다.
또한 아래 스크린샷에서는 static 방식을 사용했습니다.
# get existing shadow copies
$shadow = get-wmiobject win32_shadowcopy
"There are {0} shadow copies on this sytem" -f $shadow.count
""
# get static method
$class=[WMICLASS]"root\cimv2:win32_shadowcopy"
# create a new shadow copy
"Creating a new shadow copy"
$class.create("C:\", "ClientAccessible")
# Count again
$shadow = get-wmiobject win32_shadowcopy
이 예에서는 $class를 사용합니다.섀도 컨텍스트로 사용할 수 있는 정보를 확인하는 속성입니다.
스크린샷 보기:
따라서 섀도 컨텍스트는 의 '이름:' 값 아래에 있는 '캡션, 카운트, 설명' 및 기타 모든 것이 됩니다.속성.'백업'은 옵션 중 하나로 표시되지 않습니다.
- 즐거운 시간 되세요.
의 ★★★★★★★★★★★★★★★★★.$shadow에러 메시지 표시 시 반환값이 5로 되어 있습니다.섀도 ID는 모두 0으로 되어 있습니다.이 경우 바이너리 또는 dword를 사용하여 레지스트리의 볼륨섀도 복사본 끝에 1 또는2를 추가해야 합니다.
레지스트리에서 volsnap이라는 이름의 폴더를 regedit search .volsnap에서 찾습니다.sys는 에 있습니다.C:\Windows\System32\drivers디렉토리로 이동합니다.파일 크기는 52,352바이트입니다.volsnap 파일에는 Microsoft의 디지털 서명이 포함되어 있어 올바른 바이트인지 확인합니다.
이것에 의해, 그 진위가 확인됩니다.볼륨 스냅sys는 EXE-Packer에 의해 압축된 파일인 것 같습니다.이 기술은 파일 크기를 작게 유지하고 디버깅 작업을 방해하기 위해 트로이 목마에서 자주 사용됩니다.
그러나, 선의의 전문 소프트웨어 제작자라도 압축 파일을 이용하기 때문에, 이것만으로는 악의적인 의도를 추정할 충분한 이유가 되지 않습니다.이 때문에 전체 전문가의 2%가 이 파일을 위협 가능성이 있다고 생각합니다.그것은 해를 끼칠 가능성이 높다.다른 사용자의 추가 코멘트를 고려해 주십시오.
shadow id default
00000000-0000-0000-0000-000000000000
00000000-0000-0000-0000-000000000005
이미 5가 있고 아마 1로 변경되지 않을 것입니다.
또는 새로운 코드를 만듭니다.
Shadow id $shadow 00000000-0000-0000-0000-0000000000001
할 도 있는데, 혹시 모르니까$동작하지 않는 경우는, js 스탠드 얼론 버전을 사용해 주세요.
언급URL : https://stackoverflow.com/questions/17601354/creating-a-shadow-copy-using-the-backup-context-in-a-powershell
'codememo' 카테고리의 다른 글
| Powershell ISE에서 스크립트에 필요한 파라미터를 전달하려면 어떻게 해야 합니까? (0) | 2023.04.08 |
|---|---|
| CSS를 사용하여 체크박스를 스타일링하는 방법 (0) | 2023.04.08 |
| PowerShell WMI 개체의 모든 속성을 나열하는 방법 (0) | 2023.04.08 |
| PowerShell에서 SQL Server 쿼리를 실행하려면 어떻게 해야 합니까? (0) | 2023.04.08 |
| SQL Server에서의 DateTime2와 DateTime (0) | 2023.04.08 |