web-dev-qa-db-ja.com

csvを使用したテンプレートを使用して新しいVMを作成します。可能?

私はPowershellとPowercliを初めて使用しますが、いくつかのESX環境を管理しており、PowerShellを介して可能な限り多くのことを実行したいと考えています。私はPowershellを介してできる限りのことをしようとしています。私が必要とする助けを借りて:

このワンライナーを使用して、テンプレートからVMを作成しました。ただし、問題は、新しいVMが作成されるたびにユーザー入力が必要になることです。新しいVM名-テンプレートテンプレート-VMHostVMHost-データストアデータストア

私がやりたいのは、CSVを介して、新しいvmの名前、使用するテンプレート、新しいvmを配置するホスト、およびデータストアをすべてCSVからインポートできるようにすることです。以下のように簡単かどうかはわかりませんが、エラーが発生し続けました。

Import-Csv "C:\powershell\Data\VM2Create.csv" | Foreach-object{
    New-VM $_.name -Template $_.template -VMHost $_.VMHost -Datastore $_.Datastore
}

()または{}、あるいは|が必要なものがあることを私は知っています...それらをどこに置くかわからない...

私が思うcsvは次のようになります:

名前、テンプレート、vmhost、データストア

どんな助けや考えも大歓迎です...

1
EdConde

これは私のために働いた:

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
}
1
icnivad

ここで私のスクリプトをチェックしてください- http://poshcode.org/2051

0
Chris