VShadow使用说明和教程
卷影复制服务 (VSS) 背景信息
卷影复制(也称为卷快照服务、卷影复制服务或 VSS)是一种包含在 Microsoft Windows 中的技术,可以创建计算机文件或卷的备份副本或快照,即使它们正在使用中。它被实现为称为卷影复制服务的 Windows 服务。软件 VSS 提供程序服务也包含在 Windows 中,供 Windows 应用程序使用。卷影复制技术需要 Windows NTFS 或 ReFS 文件系统才能创建和存储卷影副本。使用此技术的任何 Windows 组件都可以在本地和外部(可移动或网络)卷上创建卷影副本,例如在创建计划的 Windows 备份或自动系统还原点时。
卷影复制服务 (VSS) 是一组 COM 接口,它实现了一个框架,允许在系统上的应用程序继续写入卷的同时执行卷备份。
VShadow 工具讲解
VShadow 是一种命令行工具,可用于创建和管理卷影副本。
它不包含在 Windows 中,但包含在通常作为 Visual Studio 的一部分安装的 Windows SDK 中,但也可以从Microsoft Developer Downloads下载和安装。
它实际上是用作演示卷影复制服务(VSS) COM API 使用的示例。它甚至还具有“卷影复制示例客户端”的名称,但即便如此,它仍然具有很高的可用性。
使用命令行进入vshadow.exe所在的路径并执行,可以看见使用说明:
VSHADOW.EXE 3.0 - Volume Shadow Copy sample client.
Copyright (C) 2005 Microsoft Corporation. All rights reserved.
Usage:
VSHADOW [optional flags] [commands]
List of optional flags:
-? - Displays the usage screen
-p - Manages persistent shadow copies
-nw - Manages no-writer shadow copies
-nar - Creates shadow copies with no auto-recovery
-tr - Creates TxF-recovered shadow copies
-ad - Creates differential HW shadow copies
-ap - Creates plex HW shadow copies
-scsf - Creates Shadow Copies for Shared Folders (Client Accessible)
-t={file.xml} - Transportable shadow set. Generates also the backup components doc.
-bc={file.xml} - Generates the backup components doc for non-transportable shadow set.
-wi={Writer Name} - Verify that a writer/component is included
-wx={Writer Name} - Exclude a writer/component from set creation or restore
-mask - BreakSnapshotSetEx flag: Mask shadow copy luns from system on break.
-rw - BreakSnapshotSetEx flag: Make shadow copy luns read-write on break.
-forcerevert - BreakSnapshotSetEx flag: Complete operation only if all disk signatures revertable.
-norevert - BreakSnapshotSetEx flag: Do not revert disk signatures.
-revertsig - Revert to the original disk's signature during resync.
-novolcheck - Ignore volume check during resync. Unselected volumes will be overwritten.
-script={file.cmd} - SETVAR script creation
-exec={command} - Custom command executed after shadow creation, import or between break and make-it-write
-wait - Wait before program termination or between shadow set break and make-it-write
-tracing - Runs VSHADOW.EXE with enhanced diagnostics
List of commands:
{volume list} - Creates a shadow set on these volumes
-ws - List writer status
-wm - List writer summary metadata
-wm2 - List writer detailed metadata
-wm3 - List writer detailed metadata in raw XML format
-q - List all shadow copies in the system
-qx={SnapSetID} - List all shadow copies in this set
-s={SnapID} - List the shadow copy with the given ID
-da - Deletes all shadow copies in the system
-do={volume} - Deletes the oldest shadow of the specified volume
-dx={SnapSetID} - Deletes all shadow copies in this set
-ds={SnapID} - Deletes this shadow copy
-i={file.xml} - Transportable shadow copy import
-b={SnapSetID} - Break the given shadow set into read-only volumes
-bw={SnapSetID} - Break the shadow set into writable volumes
-bex={SnapSetID} - Break using BreakSnapshotSetEx and flags, see options for available flags
-el={SnapID},dir - Expose the shadow copy as a mount point
-el={SnapID},drive - Expose the shadow copy as a drive letter
-er={SnapID},share - Expose the shadow copy as a network share
-er={SnapID},share,path - Expose a child directory from the shadow copy as a share
-r={file.xml} - Restore based on a previously-generated Backup Components document
-rs={file.xml} - Simulated restore based on a previously-generated Backup Components doc
-revert={SnapID} - Revert a volume to the specified shadow copy
-addresync={SnapID},drive - Resync the given shadow copy to the specified volume
-addresync={SnapID} - Resync the given shadow copy to it's original volume
-resync=bcd.xml - Perform Resync using the specified BCD
Examples:
- Non-persistent shadow copy creation on C: and E:
VSHADOW C: E:
- Non-persistent shadow copy creation on a CSV named Volume1
VSHADOW C:\ClusterStorage\Volume1
- Persistent shadow copy creation on C: (with no writers)
VSHADOW -p -nw C:
- Transportable shadow copy creation on X:
VSHADOW -t=file1.xml X:
- Transportable shadow copy import
VSHADOW -i=file1.xml
- List all shadow copies in the system:
VSHADOW -q
Please see the README.DOC file for more details.
简要教程
一般来说使用最频繁的命令就是列出全部快照点、创建快照点、删除快照点
创建快照点
VSHADOW -p -nw C:
这句命令是指创建一个持久的C盘快照,它不会在 vshadow 命令完成时自动删除,它甚至会在重新启动后持续存在。
VSHADOW -p -nw -script=setvars.cmd C:
这句命令比上一个多了-script
参数,意味着将创建的快照相关信息保存到setvars.cmd
,例如快照集ID、快照映射位置等等。
VSHADOW -nw -script=setvars.cmd -exec=C:\Windows\System32\notepad.exe C:
这个命令比上面的命令少了-p
参数,意味着快照不是持久的,当调起文本编辑器关闭后便会自动销毁镜像。换句话来说就是创建一个临时的只读快照,该快照将在程序完成时立即销毁。
当然你也可以使用以下的命令:
VSHADOW -nw -script=setvars.cmd -exec=C:\Windows\System32\cmd.exe C:
启动一个新的cmd窗口,将当前的 vshadow 阻塞并暂停,然后就可以通过命令提示符进行其他交互操作。
删除快照点
VSHADOW -ds=%SHADOW_ID_1%
这里需要使用call
命令调用setvars.cmd
,然后根据SHADOW_ID删除对应快照
列出全部快照点
VSHADOW -q
使用-q
参数就可以列出全部快照点信息
VSHADOW.EXE 3.0 - Volume Shadow Copy sample client.
Copyright (C) 2005 Microsoft Corporation. All rights reserved.
(Option: Query all shadow copies)
- Setting the VSS context to: 0xffffffff
Querying all shadow copies in the system ...
* SNAPSHOT ID = {3c38ce63-d943-45e0-a827-3c40b3981663} ...
- Shadow copy Set: {8049662a-238c-4bc3-876c-68261f32300b}
- Original count of shadow copies = 1
- Original Volume name: \\?\Volume{b16f8673-5371-4313-90c2-82c342041507}\ [C:\]
- Creation Time: 2022/8/12 8:26:12
- Shadow copy device name: \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy2
- Originating machine: DESKTOP-FNA3J9R
- Service machine: DESKTOP-FNA3J9R
- Not Exposed
- Provider id: {b5946137-7b9f-4925-af80-51abd60b20d5}
- Attributes: No_Auto_Release Persistent Client_accessible Differential
如果使用windows的系统保护
功能,一般系统盘会有很多快照点。
Windows 中的系统保护功能会定期创建所谓的“系统还原点”,它们基本上是驱动器的 VSS 卷影副本。它可用于恢复整个系统,或通过文件属性中的“以前的版本”窗格恢复单个文件的以前版本。默认情况下,系统保护为系统驱动器(C:驱动器)打开,并允许使用最多 5% 的存储容量。当达到限制时,它将自动删除最旧的restpore点。您可以在 Windows 的“系统属性”对话框的“系统保护”窗格中手动删除还原点,磁盘清理也会删除旧的还原点。
其他玩法
如果想访问快照点里面的文件,可以参考以下教程
mklink /d C:\Snapshot\ %SHADOW_DEVICE_1%\
这个命令会创建C:\Snapshot\
文件夹,并将快照点链接到此文件夹,%SHADOW_DEVICE_1%
一般就是\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1
的样子,只是后面的数字不同而已。
链接完成之后就可以双击C:\Snapshot\
文件夹打开,就可以访问快照点里面的内容了。
如果还想将快照进行备份,就可以使用以下命令
subst T:\ C:\Snapshot\
这个命令会将C:\Snapshot\
文件夹映射为T
盘符,然后就看根据盘符进行备份了。
当然做事要有始有终,删除链接和映射的方法如下:
删除映射
subst T: /d
删除链接
rmdir C:\Snapshot\
官方教程
- VShadow 常用命令使用示例
- VShadow 组合任务示例
其他同类工具
Vssadmin
这个多用于Windows的服务器上面,个人系统上面的Vssadmin一般是不全的。
Windows 中包含的非常基本的命令行实用程序,它显示有关卷影副本的基本信息,并允许您根据不同的条件进行删除。
Delete Shadows - Delete volume shadow copies
List Providers - List registered volume shadow copy providers
List Shadows - List existing volume shadow copies
List ShadowStorage - List volume shadow copy storage associations
List Volumes - List volumes eligible for shadow copies
List Writers - List subscribed volume shadow copy writers
Resize ShadowStorage - Resize a volume shadow copy storage association
使用说明:https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/cc754968(v=ws.11)
Diskshadow
这个也是用于Windows的服务器上面,功能和Vssadmin类似。
Diskshadow.exe 是公开卷影复制服务 (VSS) 提供的功能的工具。默认情况下,Diskshadow 使用类似于 Diskraid 或 Diskpart 的交互式命令解释器。Diskshadow 还包括可编写脚本的模式。
使用说明:https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/diskshadow
参考资料
-
卷影复制服务概述
-
VShadow 工具和示例文章来源:https://www.toymoban.com/news/detail-756474.html
-
源代码文章来源地址https://www.toymoban.com/news/detail-756474.html
到了这里,关于VShadow使用说明和教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!