使用PowerShell拍摄虚拟服务器快照...(第四部分)

这是我在本系列中的第四个和最终帖子。在最后一篇文章中,我将包装我们一直在努力的备份脚本。大多数这篇文章将是代码,所以介意格式化。

要启动问题,我们需要首先取消暂停我们之前暂停的所有虚拟机。我们正在这样做,因为我们已经拍摄了所有VM的拍摄。没有必要将这些VM保持暂停,因为这将打败脚本的目的。

foreach($ server中的$服务器){#我们需要确保只能取消暂停服务器#我们暂停了。if($ server.paused -eq“是”){$ vm = $ msvs.findvirtualmachine($ server.name)$ null = [microsoft.virtualserver.intorop.powershell] :: seteCurity($ VM)#现在我们有快照我们可以取消暂停VM。$进度= $ vm.startup()$ null =`[Microsoft.VirtualServer.Interop.Powershell] :: SeteSecurity($进度)#再次我们展示我们正在做的行动的进度。而($ progress.percentCompleted -lt 100){写入进展 - 自动率“启动 - $($ server.name)”`-status“进步:”`-percenclete($ progress.percentCompleted)}}}

接下来,我们需要在使用RoboCopy将拍摄拍摄复制到我们的备份位置之前安装每个快照。

foreach($ drive $ drive){$ id = $ drive.id$ path = join-path $ scriptpath $ ID$ null = mkdir $ path$ null =。\资源\ vshadow.exe“-el =`{$ ID`},$ path”}

安装每个快照后,我们现在需要使用Robocopy将它们复制到$ destpath变量中定义的路径。以下循环处理我们:

foreach($ server中的$服务器){#以防万一您想要具有日志文件。$ logfilename =“。\ logs \ msvsbackup_”+ $ server.name +“.log”$ backuppath = join-path $ destpath $ server.name$ ID = $ DRIVE |其中{$ _。drive -eq $ server.drive} |选择ID.$ sourcestem = $ server.path$ sourcestem = $ sourcestem.substring(2,$ sourcestem.length - 2)$ sourcepath =加入路径$ sourcepath $ sourcestem。\ Resources \ Robocopy.exe $ SourcePath $ BackupPath / Tee /日志:$ logfileName}

$ sourcepath = join-path $ scriptpath $ id.id

最后,在将拍摄拍摄全部复制后,我们需要删除它们。以下几点代码会:

foreach($ drive $ drive){$ id = $ drive.id$ null =。\资源\ vshadow.exe“-DS =`{$ ID`}”删除 - 项目$ ID}

希望这个系列有用。随着时间的推移,我计划发布更多我的生产脚本,以便其他人可以使用它们。但是,如果网络世界将更容易地发布源代码,则肯定会很好。然后我可能更倾向于发布一点。

加入网络世界社区有个足球雷竞技appFacebook.linkedin.评论是最重要的主题。
有关:

版权所有©2007.Raybet2

IT薪水调查:结果是