【问题标题】:Setting VLAN from CSV File in PowerCLI Script在 PowerCLI 脚本中从 CSV 文件设置 VLAN
【发布时间】: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


【解决方案1】:

在脚本上下文中,我认为错误是由于其中一列值似乎为空(在您的情况下为 Name)。我可以看到您在 foreach 循环中获取了所有值。我建议您创建一个示例 csv,只插入 2 组数据,看看它是否有效。这样至少你可以缩小问题的范围。

希望这会有所帮助...!!!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-03
    • 1970-01-01
    相关资源
    最近更新 更多