【发布时间】:2017-04-16 05:56:27
【问题描述】:
我正在尝试编译 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 参数有关的错误。
【问题讨论】:
-
您遇到了什么错误?更多信息很少有害,而且信息越少就越难为您提供帮助。
-
@Matt 我收到的错误是“无法验证参数'名称'的参数。提供一个不为空或空的参数”。
-
好吧,很明显的问题,为什么它是空的?
-
@4c74356b41 我可能不完全理解该行是如何与脚本的其余部分一起工作的(我是新手),但我的印象是它应该调用 VLAN 列我的 CSV 文件 - 根据我对文档内容的审核,它不为空。
-
我们可能需要查看您的源文件标题和示例行。 VLAN 不是一列,或者该行的值为空白。注意列及其值中的前导和尾随空格。
标签: powershell csv automation vmware powercli