我是 Powershell 和 Powercli 的新手...但我管理过一些 ESX 环境,并且非常希望通过 powershell 完成尽可能多的工作。我正在尝试通过 Powershell 完成尽可能多的工作。我需要以下帮助:
我使用这个命令从模板创建虚拟机。但问题是,每次创建新虚拟机后都必须有一些用户输入。New-VM name -Template template -VMHost VMHost -Datastore Datastore
我希望能够通过 CSV 导入新虚拟机的名称、要使用的模板、放置新虚拟机的主机和数据存储。我不知道它是否像下面这样简单,但我一直收到错误。
Import-Csv "C:\powershell\Data\VM2Create.csv" | Foreach-object{
New-VM $_.name -Template $_.template -VMHost $_.VMHost -Datastore $_.Datastore
}
我知道有一些()
或者{}
可能有|
那个需要...只是不知道把它们放在哪里...
我认为 csv 看起来像这样:
名称、模板、vmhost、数据存储
任何帮助或想法都将不胜感激...
答案1
这对我有用:
param ( $CsvFile = "D:\foo\bar.csv" )
$worksheet = Import-Csv $CsvFile
$worksheet |ForEach-Object {
New-VM -VMHost $_.VMHost `
-Name $_.Name `
-MemoryMB $_.MemoryMB `
-DiskMB $_.DiskMB `
-NetworkName $_.NetworkName `
-Datastore $_.Datastore `
-CD:$FALSE `
-ResourcePool $_.ResourcePool `
-Description $_.Description `
-GuestId $_.GuestId `
-NumCPU $_.NumCPU
}
答案2
在这里查看我的脚本-http://poshcode.org/2051。