[英]IF Statement to Verify VLAN Exists in PowerCLI Script
我正在编写一个 PowerCLI 脚本,以根据 CSV 文件中的数据自动创建 VM,我想知道如何格式化 IF 语句以检查指定的 VLAN 是否已经存在,以避免因错误而使屏幕混乱。
脚本中处理以当前格式创建 VLAN 的部分:
New-VM -Name $_.Name -VMHost ($esx | Get-Random) -NumCPU $_.NumCPU -Location $Folder
$list = Get-Cluster $_.Cluster | Get-VMHost
foreach ($esxhost in $list)
{ Get-VirtualSwitch -Name $switch -VMHost $esxhost |
New-VirtualPortgroup -Name "VLAN $($_.VLAN)" -VLANID $($_.VLAN)
}
Write-Host "Wait - propagating VLAN $($_.VLAN) to all hosts" -foreground yellow
Start-Sleep 10
我想确定一种让脚本执行以下操作的方法:
IF $_.VLAN exists
Write-host "$_.VLAN already present, proceeding to next step"
ELSE DO{ Get-VirtualSwitch -Name $switch -VMHost $esxhost |
New-VirtualPortgroup -Name "VLAN $($_.VLAN)" -VLANID $($_.VLAN)
}
我在写这些方面没有太多经验,所以我希望得到一些关于如何编写的帮助
在交换机上的vSphere中检查VLAN是否已经存在
如何正确设置 IF/ELSE 语句的格式以避免在运行脚本时出现错误的 PowerCLI 窗口
感谢您提供的任何帮助
编辑以适用于 vlan 而不是 vswitch
您可以为此使用 get-virtualportgroup 并检查返回的名称是否包含您的 vlanid。 这不适用于分布式交换机,因为这是一组不同的 cmdlet。
$host = 'YourHost'
$vlanid = 'YourVlanId'
if ((Get-VirtualPortGroup -host $host).VLanId -contains $vlanid )
{
Write-Output 'vlan present'
}
else
{
Write-Output 'vlan missing'
#your code to create vlan here
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.