问题标签 [volume-shadow-service]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
141 浏览

c++ - 想要读取 VSS 快照日志的示例代码

有没有办法直接在 Windows 上读取 VSS 快照区域?假设您已经创建了一个 VSS 快照;并想读取快照以确定: - 复制了哪个块(块对其来源的引用) - 复制的数据(牛/保存的更改)

如果有人知道如何知道 pwszDiffAreaVolumeName 的结构在磁盘上的样子?

问候托马斯

0 投票
1 回答
59 浏览

c++ - 在 OS X 中使用什么 API 执行读取一致的文件操作,类似于 Windows 卷影服务

我们正在编写一个 C++/Objective C 应用程序,可在 OSX 上从 10.7 版到现在 (10.11) 运行。

在windows下,有影子文件的概念,它允许你读取一个文件,因为它存在于某个时间点,而不必担心其他进程在此期间写入该文件。

但是,我找不到任何讨论 OS X 中类似功能的文档或在线文章。我知道 OS X 在写入文件时不会锁定文件,所以有必要做一些特别的事情来确保我不会t 选择一个正在修改的文件?

或者日志文件系统是否不需要任何特殊处理?我担心如果我有一个正在创建或修改文件的进程(例如,在 fopen 调用的单一上下文中 - 如果写入过程正在打开和关闭文件,我显然无法保证“完整性”在应该是原子操作的过程中重复),读取过程最终会得到一个“半生不熟”的文件。

如果 JFS 确实保证读者只能看到“整个”文件,这是否会扩展到可以作为外部驱动器安装的 Fat32 卷?

0 投票
0 回答
31 浏览

copy-on-write - 直接读取牛影存储

如此处所示,如何从影子存储中仅读取已更改的块?

http://macriumsoftware.files.wordpress.com/2012/11/reading_data_back.png

我想知道是否有人可以分享一个示例,如何直接从 Windows 提供者 vss 读取牛影子存储。这是为了检测哪些原始块发生了变化;并读取它的一致数据。或者如果有人有一个执行写时复制的 Vss 提供程序代码的代码示例?问候托马斯

0 投票
0 回答
47 浏览

windows-server-2008 - 如何编写复制块更改的 Vss 提供程序代码

我想编写一个将块更改保存到卷的 Vss 提供程序代码 在哪里可以找到有关此的信息?我在 Internet 上找到的示例在请求快照时仅执行了所有数据的完整复制

0 投票
0 回答
23 浏览

hyper-v - 在尝试将 smb 卷添加到 windows server 2012 R2 中的快照集时

在 Windows Server 2012 R2 中,尝试将 smb 卷添加到快照集时,调用 AddToSnapshotSet() 函数后出现错误 0x8004230f。我搜索了错误并在http://kb.backupassist.com/articles.php?aid=2971上找到了一些解决方案,但这对我没有帮助。有没有人有解决方案?

0 投票
0 回答
64 浏览

winapi - 以普通用户身份获取 VSS 快照

我想在用户指定的卷上读取 Windows 上独占打开的文件。

执行此操作的既定方法是拍摄 VSS 快照。

拍摄 VSS 快照通常需要管理权限,因此我的应用程序被拆分为一个未提升的组件和一个 SYSTEM 服务。现在,SYSTEM 服务启动快照并读取其文件。

到目前为止一切顺利 - 只要 SYSTEM 用户和未提升的普通用户都可以访问文件。但当然,这是不同的用户可以有不同的挂载路径、不同的网络共享、不同的文件身份验证,甚至可能有不同的 Bitlocker 访问权限。一旦选择了挂载的网络路径,我的方法就会停止工作。

我如何获取 VSS 快照,以访问所有未提升的用户文件路径?

0 投票
1 回答
188 浏览

c++ - 需要在 32/64 位 QT C++ 程序中使用卷影复制服务

我有几个关于为我的 QT C++ 程序使用卷影复制服务的问题。

  1. 我读到要使用 VSS,您必须运行本机 32/64 位,不支持 WOW64。所以这意味着我需要在程序 exe 运行正确的计算机上使用 Windows 使用的任何位编译我的程序?
  2. 我需要使用 MSVC 还是可以使用 MinGW 执行此操作?
  3. 如果我需要 MSVC,如何为 32 位和 64 位进行静态构建?我在 google 上找到了“qt msvc static build”的前 4 个链接,但它们都有点不同,所以我想知道哪个是最好用的。
  4. 同样对于 MSVC 或 MinGW,我是否需要在项目中包含 VSS 库?我需要正确获取 VSS SDK?我如何将其集成到程序中?我已经知道要使用的代码。

谢谢 :)

0 投票
1 回答
242 浏览

java - VSS(卷影复制)路径的 java.nio.file.Path 错误

使用 VSS,我创建了一个卷快照,并且可以成功访问其中的文件:

当我尝试从 java 访问相同的文件时,java.io.File它工作正常。但是我无法通过这样java.nio.file.Path的调用将其转换为toPath

这样做会导致异常跟踪。这是 OpenJDK 的一个已知问题,我使用 java 1.8.91 得到了相同的结果:

由于我无法获得 a Path,因此我无法使用某些 API,例如java.nio.channels.AsynchronousFileChannel只能使用Path.

是否有任何替代语法来访问不会违反此 JDK 限制的卷影副本文件?上面链接的 OpenJDK 票证建议仅省略长 UNC 前缀 ( \\?),但我没有发现任何似乎合法的变体。例如以下所有失败:

如果没有我可以用来调用的变体路径,toPath()那么是否有其他方法可以获得java.nio.file.Path不违反解析器限制的方法?

0 投票
1 回答
483 浏览

c++ - 无法访问卷影复制服务快照卷

嗨,我无法让卷影复制服务为我用 QT 用 C++ 编写的程序工作。快照已成功创建,但是我无法通过我的程序或 Windows 运行提示访问它(不确定这是否可能首先出现)。我尝试使用 \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy27\ 和 \Device\HarddiskVolumeShadowCopy28\ 作为前缀访问快照(从我的程序生成,最后带有正确的数字)。即使我使用 VSS_BT_COPY 和 VSS_BT_FULL 作为状态,快照看起来也像是差异快照。我一直在尝试将 VSS_CTX_NAS_ROLLBACK 作为创建持久快照的上下文,因此我尝试在再次尝试访问程序中的快照之前将它们全部删除,但这次使用上下文 VSS_CTX_FILE_SHARE_BACKUP,但没有成功。这是快照创建代码(删除了错误处理):

这是文件打开代码:

以下是 QT 从失败的文件打开尝试中给我的错误:

2017 年 1 月 13 日 01:42 PM 错误:无法打开源文件 \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy38\Users\Josh\Desktop\awef\awef3\awefawefawef - 复制 (10)waefawefawefawwefawefawef - Copyawefawwefawefawefawefwefawefawef.docx。

01-13-2017 01:42 PM 错误:找不到网络路径。

2017 年 1 月 13 日 01:44 PM 错误:无法打开源文件 \Device\HarddiskVolumeShadowCopy40\Users\Josh\Desktop\awef\awef3\awefawefawef - 复制 (10)waefawefawwefawefawefawef - Copyawefawefawwefawefawefwefawefawef.docx。

01-13-2017 01:44 PM 错误:系统找不到指定的路径。

当我尝试从运行提示打开相同的文件时,它只是说 Windows 找不到文件名等。

我验证了快照是使用 vssadmin list shadows 创建的,输出如下:

卷影副本集 ID 的内容:{968d9034-3aee-494b-ae78-82af04a15686} 创建时包含 1 个卷影副本:2017 年 1 月 13 日下午 1:40:09 卷影副本 ID:{1109bad9-7d01-40f2-9141- cda25b313810} 原始卷:(C:)\?\Volume{b3fc9fb7-0000-0000-0000-100000000000}\ 卷影复制卷:\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy38 原始机器:joshdesktop10 服务机器:joshdesktop10 提供者:'Microsoft Software Shadow Copy provider 1.0' 类型:FileShareRollback 属性:No writers,Differential

卷影副本集 ID 的内容:{d6519b09-8325-4c1c-90bc-935a39f2189a} 创建时包含 1 个卷影副本:2017 年 1 月 13 日下午 1:44:07 卷影副本 ID:{21e1b83e-db79-4a29-95b0- 65cc5c7d08a8} 原始卷:(C:)\?\Volume{b3fc9fb7-0000-0000-0000-100000000000}\ 卷影复制卷:\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy40 原始机器:joshdesktop10 服务机器:joshdesktop10 提供者:'Microsoft Software Shadow Copy provider 1.0' 类型:FileShareRollback 属性:No writers,Differential

如您所见,它们是差异备份……这可能是问题所在吗?

有任何想法吗??谢谢!

0 投票
1 回答
5030 浏览

windows-10 - Windows 10 如何在没有 vssadmin create 的情况下在另一个驱动器上创建影子存储

我想使用 Windows 10 为另一个驱动器上的一个驱动器创建影子存储。对于服务器 Windows 版本,有:

Windows 10 中缺少 add 命令,如何处理?

有一些 Powershell 命令可用,但我无法使它们工作。