0

Hyper-Vバージョン3でVMを作成するために、csvファイルからメモリを渡すために以下の関数を作成しました

Function Install-VM {
param (
[Parameter(Mandatory=$true)]
[int64]$Memory=512MB
)
$VMName = "dv.VMWIN2K8R2-3.Hng"

$vmpath = "c:\2012vms"


New-VM -MemoryStartupBytes ([int64]$memory*1024) -Name $VMName -Path $VMPath  -Verbose

}

Import-Csv "C:\2012vms\Vminfo1.csv" | ForEach-Object { Install-VM -Memory ([int64]$_.Memory) }

しかし、VMを作成しようとすると、import-csvから渡されたメモリパラメータが一致しないと表示され、次のようなエラーが発生します

VERBOSE: New-VM will create a new virtual machine "dv.VMWIN2K8R2-3.Hng".
New-VM : 'dv.VMWIN2K8R2-3.Hng' failed to modify device 'Memory'. (Virtual machine ID
CE8D36CA-C8C6-42E6-B5C6-2AA8FA15B4AF)
Invalid startup memory amount assigned for 'dv.VMWIN2K8R2-3.Hng'. The minimum amount of memory you can assign to
a virtual machine is '8' MB. (Virtual machine ID CE8D36CA-C8C6-42E6-B5C6-2AA8FA15B4AF)
A parameter that is not valid was passed to the operation.
At line:48 char:9
+         New-VM  -ComputerName $HyperVHost -MemoryStartupBytes ([int64]$memory*10 ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (Microsoft.HyperV.PowerShell.VMTask:VMTask) [New-VM], VirtualizationOpe
   rationFailedException
    + FullyQualifiedErrorId : InvalidParameter,Microsoft.HyperV.PowerShell.Commands.NewVMCommand

また、以下に示すように、メモリを1、2、4などとして渡し、後で1024を掛けてMBに変換するcsvファイルには入れないでください。

メモリー1

誰かがメモリの詳細をフォーマットして関数に渡す方法について私を助けてくれますか?

4

1 に答える 1

2

1を渡して1024を掛けると、実際には1024バイト(kb)のメモリを割り当てるように求められ、エラーメッセージには最小量が8mbであることが示されます。

渡す数値がGB単位である場合は、ツリーに1024を掛けます(1024 * 1024 * 1024)。'3gb'などの値を渡したい場合は、最初にそれを展開する必要があります。

New-VM -MemoryStartupBytes (Invoke-Expression $memory) -Name $VMName
于 2012-11-03T09:57:29.257 に答える