通过VC按csv文件中的服务器名创建快照的power shell脚本
时间: 2024-03-27 07:40:30 浏览: 58
基于VC服务器代码
以下是一个基于PowerShell的脚本,可以按照CSV文件中的主机名称来创建虚拟机快照:
```powershell
# 指定vCenter Server的地址、用户名和密码
$vCenterServer = "vCenter Server的地址"
$vCenterUser = "vCenter Server用户名"
$vCenterPassword = "vCenter Server密码"
# 指定CSV文件的路径和文件名
$csvFile = "C:\path\to\file.csv"
# 连接到vCenter Server
Connect-VIServer -Server $vCenterServer -User $vCenterUser -Password $vCenterPassword
# 读取CSV文件并遍历每行
$csvData = Import-Csv -Path $csvFile
foreach ($row in $csvData) {
$hostName = $row.HostName
Write-Host "Creating snapshots for VMs on host $hostName"
$host = Get-VMHost -Name $hostName
if ($host) {
$vms = Get-VM -Location $host | Where-Object { $_.PowerState -eq "PoweredOn" }
foreach ($vm in $vms) {
$snapshot = $vm | New-Snapshot -Name "Snapshot $(Get-Date -Format 'yyyy-MM-dd')" -Description "Created by PowerShell script"
Write-Host "Snapshot $($snapshot.Name) created for VM $($vm.Name)"
}
} else {
Write-Host "Host $hostName not found"
}
}
# 断开与vCenter Server的连接
Disconnect-VIServer -Server $vCenterServer -Confirm:$false
```
该脚本首先指定了vCenter Server的地址、用户名和密码,然后连接到该服务器。接着,它指定了CSV文件的路径和文件名,并使用`Import-Csv`命令将CSV文件读取到变量`$csvData`中。最后,它遍历CSV文件中的每行,为每个指定的主机上处于运行状态的虚拟机创建名为“Snapshot yyyy-MM-dd”的快照,其中“yyyy-MM-dd”是当前日期的格式化字符串。如果指定的主机不存在,则会输出一条相应的消息。如果需要,可以根据需要修改脚本以更好地满足需求。
阅读全文