我将BAK文件传输到~20台目标计算机,并希望验证传输已完成,并且在传输完成后没有破坏BAK文件。
这是powershell工作流程的一部分。
我有以下内容:
Invoke-Sqlcmd -Query "RESTORE VERIFYONLY FROM DISK = N'\\TARGETMACHINE\F$\backup.bak'" -queryTimeout -verbose 65534
在本地执行的同时运行并完成,但我不通过PowerShell获得任何输出。我已经看到了一些写入文本文件的解决方案,但是我真的想确定是否可以在powershell中验证BAK是否可行 - 所以我可以从同一个开始重试工作流如果失败。
这可能吗?
答案 0 :(得分:0)
如果您在转移前后使用Get-FileHash
该怎么办?它不会检查它是否是一个有效的.bak文件,但它确实(主要)确认传输过程没有改变文件。
答案 1 :(得分:0)
当我在本地测试时,我从Powershell收到此消息:
VERBOSE: The backup set on file 1 is valid.
也许你的querytimeout值错了?尝试仅使用-verbose:
的命令Invoke-Sqlcmd -Query "RESTORE VERIFYONLY FROM DISK = N'\\TARGETMACHINE\F$\backup.bak'" -verbose