Get-vmhost単独では、すべてのホストが返され、使用するホストは1つ指定されません。これは、このコマンドが期待するものです。
あなたはあなたの上に構築したいホストは、以下のスクリプトを使用することができます知っている場合:
New-VM -Name MyName -VM $sourceVM -Datastore $myDataStore -VMHost $(Get-VMHost "specify host name")
をそれ以外の場合は、あなたが配列を作成し、
以下
# This command builds an array of all you host names into the variable $vmh
$vmh = get-vmhost
# This command selects random host from this array assigning it to the $vmhost variable
$vmhost = Get-random -inputobject $vmh
# Now build your VM command with the randomly selected host
New-VM -Name MyName -VM $sourceVM -Datastore $myDataStore -VMHost $vmhost
を使用して、その配列からVMホストを選択することができ
$ mydatastore変数にも同様の方法でデータストアを定義していることを確認してください。
get-datastoreでビルドされた変数を作成しても機能しませんy OU
$mds = get-datastore
$mydatastore = Get-random -InputObject $mds
を動作させる操作のための単一のストアの新-VMにそれを絞り込むために持っている。また、あなたの$ sourceVMが正しく同様に定義されていることを確認してください。複数のオブジェクトがこの変数にある場合、それは機能しません。 $ sourceVMが単一のVM名と同じであることを確認してください。
以下に示すように、変数で明示的に識別せずにコマンドを実行すると、ほぼ同じエラーが表示されます(スクリプトを生成して作成するためにPowerGUIを使用するため、 。強調表示されたテキストは、あなたのように見える、私が実行したコマンドです。一番下の赤いボックスの赤いテキストがエラーです。ランダムな選択や名前でホストを定義すると、コマンドが機能するはずです。
PowerGUI Image VM Creation
私はまた、同様にあなたのVMWareのコミュニティフォーラム投稿へ返信しました。
あなたの答えはほとんどの人に役立ちます。しかし、私の場合、問題は少し違っていました。 adminアカウントのVMHostに直接接続されていましたが、管理者は既存のVMを複製する権利がありませんでした。管理者としてvCenterに接続してスクリプトを実行する必要がありました。 – user2250152
あなたはそれを把握することができてうれしいです。また、VMWareフォーラムにvcenterに接続しているかどうかについての情報も記載しました。私がリンクした記事の1つは、PowerCLIの特定の機能は、スクリプトがホスト経由ではなくvcenterサーバー自体に対して実行されている場合にのみ機能するということです。 https://communities.vmware.com/thread/478345 – Pyrochaser