我正在尝试编译PowerCLI脚本,以帮助从CSV文件的数据中自动创建VM。目前我运行的脚本如下所示:
# Specify vCenter Server, vCenter Server username and vCenter Server user password
write-host “Please specify vCenter Server and enter credentials” -foreground green
$vc = read-Host "Connect to which vCenter Server?"
write-host “Connecting to vCenter Server $vc” -foreground green
$CSVPath = "$ScriptRoot\PROD_VMRequestTEST.xlsx.csv"
Connect-VIServer -Server $vc
$CSVFile = Import-Csv -Path $CSVPath
Import-Csv -Path $CSVPath
# Specify vCenter Server Virtual Machine & Templates folder
$Folder = “Discovered virtual machine”
#
# Specify the vSphere Cluster
$Cluster = 'vSphere 5.5 RND'
$esx = Get-Cluster $Cluster | Get-VMHost -State connected
Import-Csv -Path $CSVPath | %{
Write-Host “Creation of VM $_.Name initiated” -ForegroundColor green
New-VM -Name $_.Name -VMHost ($esx | Get-Random) -Location $Folder
Write-Host “Power On of the VM $_.name initiated” -ForegroundColor green
Start-VM -VM $_.Name -confirm:$false -RunAsync
}
我在网上遇到过一些处理通过PowerCLI设置VLAN的例子,但它们似乎都没有直接与我使用CSV文件确定VLAN的例子有关。
我尝试使用我的脚本的一个例子是:
$VMhost = Get-vmhost $_.VMHost
$PortGroup = Get-VirtualPortgroup -name $_.VLAN -VMhost $VMhost
但是,我收到与该行中的-Name参数有关的错误。
答案 0 :(得分:0)
在脚本上下文中,我认为错误是由于其中一个列值似乎为空(在您的情况下为名称)。我可以看到你在foreach循环中得到了所有的值。我建议你创建一个示例csv,只插入2组数据,看看它是否有效。这种方式至少可以缩小问题的范围。
希望这有助于...... !!!