如何自动创buildHyper-V虚拟机并使用PowerShell安装应用程序

我正在为WPF应用程序devisetesting基础结构。 我想要一个系统,当一个新的MSI出现在一个文件夹中时将创build一个虚拟机,并将MSI安装到新创build的虚拟机上。 我正在使用Hyper-V和PowerShell。 文件夹的观看和启动是我可以做的所有事情,但这是Hyper-V方面,我卡住了。 我有一个虚拟机,我想用作基地,但我不知道该从哪里出发。

导出虚拟机是否更好,然后使用PS脚本导入/复制虚拟机? 直接“复制”虚拟机是否更好? 检查站应该发挥作用吗? 有更好的方法吗?

如果任何人有一个资源的链接,谈到使用PS做自动VM /应用程序configuration,这将是非常棒的。 我是一个开发人员,所以我不知道去这个地方的东西。

谢谢,埃里克

我有一个虚拟机,我想用作基地,但我不知道该从哪里出发。

“正确的答案”是在SCCVM中使用虚拟机模板,虽然从你的问题的口气来看,我猜你没有SCCVM。

你可以做什么,尽pipe需要大量的时间,但是要构build一个主映像虚拟机,对其进行系统准备,然后将VHD用于后续的虚拟机。

假设你已经备份了主映像(在sysprep之前和之后),你可以做一些简单的事情:

Copy-Item C:\Hyper-V\MasterImage\MasterImage_CDrive.vhdx C:\Hyper-V\$SpawnVM\$SpawnVM.vhdx New-VM $SpawnVM -Path "C:\Hyper-V" Add-VMDisk -VM $SpawnVM -ControllerId 0 -Lun 0 -Path "C:\Hyper-V\$SpawnVM\$SpawnVM.vhdx" 

该PowerShell片段应该从您的主映像复制VHD,创build一个新的虚拟机,然后附加它。 可能还有更多你想做的事情,因此我将指出你在Windows PowerShell中的Hyper-V Cmdlet,这是Windows 8.1 / Windows Server 2012 R2中的全部function。 如果您稍后有具体问题,请随时将其退回。

检查站应该发挥作用吗?

也许。 您可以从现有的检查点通过从检查点导出虚拟机来创build新的虚拟机(我相信这合并了差异磁盘和父磁盘,因此您不会节省任何时间)。 检查点实际上只是为临时时间点而保留恢复 :

检查点旨在提供一个临时备份,当您需要在更改后将虚拟机恢复到之前的状态(如系统或应用程序更新)时。 但是,不应将检查点用于操作系统,应用程序或文件的永久备份。

我是一个开发人员,所以我不知道去这个地方的东西。

请不要采取这种错误的方式,但如果您在这个过程中认真对待任何事情,请考虑与您的系统pipe理团队交谈,或者聘请具有相关经验的内部部署或承包商。 每一个主题都可以写一本小书。 对于你来说,通过一些PowerShell来自动化一些开发或者testing虚拟机可能是不错的,但是这听起来并不像是一条开始走向严肃生产的道路。 只是一个友善的小心谨慎的话…确保你的DevOps不是所有的开发人员和行动。

希望这会让你开始。 如果您在生产环境中以任何规律性和数量执行此操作,则应认真考虑System Center 2012 R2虚拟机pipe理器和System Center 2012 R2 Orchestrator 。