【问题标题】:How to set -backupTarget:\\?\Volume{GUID} correctly?如何正确设置 -backupTarget:\\?\Volume{GUID}?
【发布时间】:2019-11-08 10:01:45
【问题描述】:

我想在我的 win server 2016 上创建完整的系统备份并将其保存到外部 SSD。

我有一个批处理脚本,通过:

  1. 启用并添加计划备份
  2. 开始备份

我的问题是当我输入卷 GUID 作为我的backupTarget 时,脚本失败并且我收到此错误:

错误 - 找不到指定的备份位置或不是受支持的备份存储位置。

代码:

REM target and source are read from config file. I'll only add lines i have problem with here.
REM target={xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
REM source=c:

wbadmin enable backup ^-addTarget:"%target%" -schedule:21:00 -include:c: -vssFull -quiet

wbadmin start backup ^-backupTarget:"\\?\Volume%target%" -include:"%source%" -vssFull -systemState -quiet

直接在 cmd 中运行时,我删除了 ^:

wbadmin enable backup -addTarget:"%target%" -schedule:21:00 -include:c: -vssFull -quiet

wbadmin start backup -backupTarget:"\\?\Volume%target%" -include:"%source%" -vssFull -systemState -quiet

预期的结果应该是它设法创建备份而不会失败,就像我直接在cmd.exe 中运行命令一样。

我在cmd.exe 中尝试了同一行,它可以工作,但是从脚本中运行它会失败。这是为什么呢?

我是否需要添加一些类似^ 的转义字符才能正确读取-backupTarget

感谢我能得到的所有帮助!

【问题讨论】:

  • 当我在此处复制文本时,我看到引号开头的双反斜杠在 "\\?\Volume%target%" 中更改为单个
  • 应该是\\?\Volume\%target% 而不是\\?\Volume%target%!此外,完全没有理由用插入符号转义 -,它不是毒字符。
  • 感谢您之前回答和编辑我的问题。我已经尝试了您的建议,但仍然出现相同的错误消息。关于 ^,我知道这很奇怪,但在谷歌搜索时发现了一个提示,即在脚本中键入 -backupTarget 时需要该提示,当我输入它时,我的脚本有效(在那种情况下,我使用了 f: 而不是 guid)
  • 我真的不在乎你的谷歌搜索结果,用于为命令行进程提供参数的标准字符是 /-,我根本不接受内置的 Windows命令需要转义这个无毒的标准参数字符。您确定您使用的 GUID 100% 正确吗?

标签: batch-file backup windows-server-2016


【解决方案1】:

我错误地输入了驱动器 GUID 而不是卷 GUID。 使用 mountvol.exe,我可以看到正确的 GUID,然后它就可以工作了。

wbAdmin 不喜欢将卷安装到系统驱动器 C: 因此,如果要备份 C,请注意将其挂载到其他位置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-15
    • 2020-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多