PowerShell 自动备份hyper-v下的虚拟机
2013-03-05 23:08
435 查看
1、配置脚本策略(一)
· 脚本执行策略级别
2、配置脚本策略(二)
· 因为Windows PowerShell中的脚本在默认情况下并没有启用,因此在部署脚本时,需启用对脚本文件的支持。如果没有启用支持就尝试运行Windows Powershell脚本,就会看到错误的信息,脚本也无法运行成功,错误信息提示框如下:
· 要启用支持,只要以管理员身份运行Powershell,然后输入如下命令即可启用支持:
· Set-ExecutionPolicy unrestricted 或 Set-ExecutionPolicy bypass
3、导入PsHyperV库
· 将下载的PsHyperV文件夹放在C盘根目录下
· 在此文件夹中有一个powershell文件:C:\PsHyperV\HyperV\HyperV.psd1
· 要使用此库中的命令集,每次在使用时需导入此Module,命令如下:
Import-Module C:\PsHyperV\HyperV\HyperV.psd1
4、PowerShell备份命令( 注:#后为注释)
· Import-Module C:\PsHyperV\HyperV\HyperV.psd1
· #导入下载的库文件Module
· $BackupDriver = “D:” #备份驱动盘符
· $BackupFolder = $(get-date -uformat “%Y%m%d”) #备份文件夹名,格式为年月日(如20120506)
· New-Item -path $BackupDriver -name $BackupFolder -type directory
· #在指定目录下创建以当前日期为文件名的文件夹(格式:年月日,如20120506)
· $args = “wxppsc1”,”wxppsc8”
· #循环参数,即需要备份的虚拟机名字,用双引号和逗号隔开
· ForEach($i in $args) #循环函数,依次执行$args里指定的虚拟机
· {
· $strFile = “C:\VMBackup_Log\”+ $i +“_”+$(get-date -uformat “%Y%m%d%H%M”)+“log.txt“
· #日志文件,描述命令是否成功,成功会写入JobStarted,失败时写入Failed,日志文件格式为:wxppsc1_201205061124log.txt
· Write-Host "It is backing up Server "$i",Please wait...";
· ForEach-Object -begin ` #重音符表示行的延续
· {
· Shutdown-VM $i –Force #关闭虚拟机
· start-sleep 120 #从发送shutdown命令时算起,指定等待关机时间,即等待120秒后开始执行Export-VM命令
· Export-Vm $i $BackupDriver\$BackupFolder\$i"_"$(get-date -uformat "%Y%m%d%H%M") -Copystate –wait
· #--watit参数等待任务完成后执行下一条命令,即等待Export任务完成,导出格式为:wxppsc1_201205061124
· Start-sleep 120 #Export完成后,等待120秒执行下一条命令,即开启电脑
· start-vm $i #开启虚拟机
· start-sleep 120 #等待120秒后执行下一个循环
· }`
· -Process {
· }`
· -End {Write-Host "The command completed at $(get-date)"} | Out-File $StrFile
· }
5、 把上述命令保存为一个ps1为后缀的文件,然后在任务计划里设定一个Schedule定时启动这个PowerShell批处理程序,就能对Hyper-V里的虚拟机实现导出,关闭,开启了。
相关文档及附件已上传,也可到如下网站下载:http://pshyperv.codeplex.com/
附件:http://down.51cto.com/data/2362374
· 脚本执行策略级别
2、配置脚本策略(二)
· 因为Windows PowerShell中的脚本在默认情况下并没有启用,因此在部署脚本时,需启用对脚本文件的支持。如果没有启用支持就尝试运行Windows Powershell脚本,就会看到错误的信息,脚本也无法运行成功,错误信息提示框如下:
· 要启用支持,只要以管理员身份运行Powershell,然后输入如下命令即可启用支持:
· Set-ExecutionPolicy unrestricted 或 Set-ExecutionPolicy bypass
3、导入PsHyperV库
· 将下载的PsHyperV文件夹放在C盘根目录下
· 在此文件夹中有一个powershell文件:C:\PsHyperV\HyperV\HyperV.psd1
· 要使用此库中的命令集,每次在使用时需导入此Module,命令如下:
Import-Module C:\PsHyperV\HyperV\HyperV.psd1
4、PowerShell备份命令( 注:#后为注释)
· Import-Module C:\PsHyperV\HyperV\HyperV.psd1
· #导入下载的库文件Module
· $BackupDriver = “D:” #备份驱动盘符
· $BackupFolder = $(get-date -uformat “%Y%m%d”) #备份文件夹名,格式为年月日(如20120506)
· New-Item -path $BackupDriver -name $BackupFolder -type directory
· #在指定目录下创建以当前日期为文件名的文件夹(格式:年月日,如20120506)
· $args = “wxppsc1”,”wxppsc8”
· #循环参数,即需要备份的虚拟机名字,用双引号和逗号隔开
· ForEach($i in $args) #循环函数,依次执行$args里指定的虚拟机
· {
· $strFile = “C:\VMBackup_Log\”+ $i +“_”+$(get-date -uformat “%Y%m%d%H%M”)+“log.txt“
· #日志文件,描述命令是否成功,成功会写入JobStarted,失败时写入Failed,日志文件格式为:wxppsc1_201205061124log.txt
· Write-Host "It is backing up Server "$i",Please wait...";
· ForEach-Object -begin ` #重音符表示行的延续
· {
· Shutdown-VM $i –Force #关闭虚拟机
· start-sleep 120 #从发送shutdown命令时算起,指定等待关机时间,即等待120秒后开始执行Export-VM命令
· Export-Vm $i $BackupDriver\$BackupFolder\$i"_"$(get-date -uformat "%Y%m%d%H%M") -Copystate –wait
· #--watit参数等待任务完成后执行下一条命令,即等待Export任务完成,导出格式为:wxppsc1_201205061124
· Start-sleep 120 #Export完成后,等待120秒执行下一条命令,即开启电脑
· start-vm $i #开启虚拟机
· start-sleep 120 #等待120秒后执行下一个循环
· }`
· -Process {
· }`
· -End {Write-Host "The command completed at $(get-date)"} | Out-File $StrFile
· }
5、 把上述命令保存为一个ps1为后缀的文件,然后在任务计划里设定一个Schedule定时启动这个PowerShell批处理程序,就能对Hyper-V里的虚拟机实现导出,关闭,开启了。
相关文档及附件已上传,也可到如下网站下载:http://pshyperv.codeplex.com/
附件:http://down.51cto.com/data/2362374
相关文章推荐
- powershell 学习------hpyer-v 虚拟机优化(自动备份,压缩磁盘)
- SQL Server 2014 虚拟机的自动备份 (Resource Manager)
- Hyper-v虚拟机硬件设置以及开机自动启动设置
- Windows Server 8 Tips (二) Hyper-V 3:用PowerShell导出和导入虚拟机
- SQL Server 2014 虚拟机的自动备份 (Resource Manager)
- SQL Server 2014 虚拟机的自动备份 (Resource Manager)
- powershell实现数据库的自动备份
- 浅谈Hyper-V的几种备份方式(一)----snapshot虚拟机快照
- 【WINDOWS】hyper-v下自动创建VM_powershell脚本实现_powershell简介
- 批量导入Hyper-V虚拟机时自动创建虚拟网卡关联虚拟交换机
- SQL Server 2014 虚拟机的自动备份 (Resource Manager)
- SQL Server 2014 虚拟机的自动备份 (Resource Manager)
- PowerShell 在hyper-v中创建虚拟机
- Hyper - V (七) 虚拟机网络设置及开机自动启动
- Windows Server 2012本地备份Hyper-V虚拟机
- Powershell 实现 Hyper-V 虚拟机 管理
- 世纪互联提供的关于Powershell中将虚拟机加入备份保管库的方法
- Hyper-V备份:选择Hypervisor备份还是虚拟机备份
- Hyper-V的备份方式——snapshot虚拟机快照