脚本代码如下:
# 提示用户输入ESXi主机IP地址
$ESXiHost = Read-Host “请输入ESXi主机IP地址(默认为IP地址)”
if (-not $ESXiHost) {
$ESXiHost = “IP地址”
}
# 创建 PSCredential 对象,使用硬编码的用户名和密码
$Username = “root”
$Password = ConvertTo-SecureString “密码” -AsPlainText -Force
$Credential = New-Object System.Management.Automation.PSCredential ($Username, $Password)
# 连接到ESXi主机
Connect-VIServer -Server $ESXiHost -Credential $Credential
# 提示用户输入虚拟机相关信息
$VMName = Read-Host “请输入虚拟机名称(默认为NAS)”
if (-not $VMName) {
$VMName = “NAS”
}
$GuestOS = “other6xLinux64Guest” # 默认操作系统
$Datastore = “datastore1” # 数据存储名称
$NumCPU = Read-Host “请输入CPU核心数(默认为4)”
if (-not $NumCPU) {
$NumCPU = 4
}
$MemoryGB = Read-Host “请输入内存大小(单位:GB,默认为4)”
if (-not $MemoryGB) {
$MemoryGB = 4
}
$DiskGB = Read-Host “请输入虚拟硬盘大小(单位:GB,默认为200)”
if (-not $DiskGB) {
$DiskGB = 200
}
# 检查是否存在同名虚拟机,如果存在则删除
$ExistingVM = Get-VM -Name $VMName -ErrorAction SilentlyContinue
if ($ExistingVM) {
Remove-VM -VM $ExistingVM -Confirm:$false
}
# 创建虚拟机配置对象
$VMConfig = New-VM -Name $VMName -VMHost $ESXiHost -Datastore $Datastore -GuestId $GuestOS -MemoryGB $MemoryGB -NumCpu $NumCPU -DiskStorageFormat EagerZeroedThick -DiskGB $DiskGB
# 断开与ESXi主机的连接
Disconnect-VIServer -Server $ESXiHost -Confirm:$false
- 提示用户输入 ESXi 主机的 IP 地址。如果用户没有输入,则默认使用指定IP。
- 使用硬编码的用户名
root
和密码创建一个 PSCredential 对象,用于连接到 ESXi 主机。 - 连接到指定的 ESXi 主机。
- 提示用户输入新虚拟机的相关信息,包括虚拟机名称、CPU 核心数、内存大小、虚拟硬盘大小等。如果用户没有输入,默认值分别为
NAS
、4
、4
、200
。 - 检查是否存在同名的虚拟机,如果存在,则删除。
- 使用输入的信息创建一个新的虚拟机配置对象,其中包括虚拟机的名称、所在的 ESXi 主机、数据存储、操作系统类型、CPU 核心数、内存大小和虚拟硬盘大小。
- 使用
EagerZeroedThick
格式创建虚拟硬盘。(厚置备,置零) - 断开与 ESXi 主机的连接。