通过 PowerShell 更改一些 VM 属性
Change some VM properties via PowerShell
我想根据 CSV 更改我的一些 VM 属性。
我在为我的 VM 分配内存时遇到问题。
我的代码有什么问题?
错误显示:Set-VM 未找到任何匹配 "MemoryAssigned" 的参数。我的 CSV 文件名为 MmeoryGB。
$VMProperties = Import-Csv $PathTocsv -Delimiter ";";
foreach ($Property in $VMProperties){
$NumberOfCPU = $Property.NumberOfCPU;
$MemoryGB = $Property.MemoryGB;
$MachineMacAddress = $Property.MachineMacAddress;
Write-Host $NumberOfCPU;
Write-Host $MemoryGB;
Write-Host $MachineMacAddress;
$OldmacAddress = (Get-VM -Name $VMName | Get-VMNetworkAdapter).MacAddress
Write-Host "OldMacAddress is $OldmacAddress";
Get-VM -Name $VMName | Set-VMNetworkAdapter -StaticMacAddress $MachineMacAddress
$NewMacAddress = (Get-VM -Name $VMName | Get-VMNetworkAdapter).MacAddress
Write-Host "OldMacAddress is $NewMacAddress";
$OldProcessorCount = (Get-VM -Name $vmname).ProcessorCount
$OldMemoryAssined = (Get-VM -Name $vmname).MemoryAssigned
Write-Host "OldProcessorCount is $OldProcessorCount";
Write-Host "OldMemoryAssined is $OldMemoryAssined";
Write-Host "OldProcessorCount is $NewProcessorCount";
Set-VM –MemoryAssigned $MemoryGB -ProcessorCount $NumberOfCPU;
$NewProcessorCount = (Get-VM -Name $vmname).ProcessorCount
$NewMemoryAssined = (Get-VM -Name $vmname).MemoryAssigned
}
Start-VM -Name $VMName
检查Show-Help Set-VM
没有属性–MemoryAssigned
,你应该使用组合:
-DynamicMemory
-MemoryMaximumBytes
-MemoryMinimumBytes
-MemoryStartupBytes
我更改了代码并且有效:
$VMProperties = Import-Csv $PathTocsv -Delimiter ";";
foreach ($Property in $VMProperties){
# GB to Byte
$MemoryByte = [Double]$MemoryGB*(1024*1024*1024)
$NumberOfCPU = $Property.NumberOfCPU;
$MemoryGB = $Property.MemoryGB;
$MachineMacAddress = $Property.MachineMacAddress;
Write-Host $NumberOfCPU;
Write-Host "$MemoryGB GB";
Write-Host $MachineMacAddress;
$OldmacAddress = (Get-VM -Name $VMName | Get-VMNetworkAdapter).MacAddress
Write-Host "-> OldMacAddress was $OldmacAddress";
Get-VM -Name $VMName | Set-VMNetworkAdapter -StaticMacAddress $MachineMacAddress
$NewMacAddress = (Get-VM -Name $VMName | Get-VMNetworkAdapter).MacAddress
Write-Host "-> NewMacAddress is $NewMacAddress";
$OldProcessorCount = (Get-VM -Name $vmname).ProcessorCount
$OldMemoryAssined = (Get-VM -Name $vmname).MemoryStartup
Write-Host "--> OldProcessorCount was $OldProcessorCount";
Write-Host "---> OldMemory was $OldMemoryAssined Byte";
Set-VM -Name $VmName –MemoryStartupBytes $MemoryByte -ProcessorCount $NumberOfCPU -StaticMemory;
$NewProcessorCount = (Get-VM -Name $vmname).ProcessorCount
$NewMemory = (Get-VM -Name $vmname).MemoryStartup
Write-Host "--> New ProcessorCount is $NewProcessorCount";
Write-Host "---> NewMemory is $NewMemory Byte";
}
我想根据 CSV 更改我的一些 VM 属性。
我在为我的 VM 分配内存时遇到问题。
我的代码有什么问题?
错误显示:Set-VM 未找到任何匹配 "MemoryAssigned" 的参数。我的 CSV 文件名为 MmeoryGB。
$VMProperties = Import-Csv $PathTocsv -Delimiter ";";
foreach ($Property in $VMProperties){
$NumberOfCPU = $Property.NumberOfCPU;
$MemoryGB = $Property.MemoryGB;
$MachineMacAddress = $Property.MachineMacAddress;
Write-Host $NumberOfCPU;
Write-Host $MemoryGB;
Write-Host $MachineMacAddress;
$OldmacAddress = (Get-VM -Name $VMName | Get-VMNetworkAdapter).MacAddress
Write-Host "OldMacAddress is $OldmacAddress";
Get-VM -Name $VMName | Set-VMNetworkAdapter -StaticMacAddress $MachineMacAddress
$NewMacAddress = (Get-VM -Name $VMName | Get-VMNetworkAdapter).MacAddress
Write-Host "OldMacAddress is $NewMacAddress";
$OldProcessorCount = (Get-VM -Name $vmname).ProcessorCount
$OldMemoryAssined = (Get-VM -Name $vmname).MemoryAssigned
Write-Host "OldProcessorCount is $OldProcessorCount";
Write-Host "OldMemoryAssined is $OldMemoryAssined";
Write-Host "OldProcessorCount is $NewProcessorCount";
Set-VM –MemoryAssigned $MemoryGB -ProcessorCount $NumberOfCPU;
$NewProcessorCount = (Get-VM -Name $vmname).ProcessorCount
$NewMemoryAssined = (Get-VM -Name $vmname).MemoryAssigned
}
Start-VM -Name $VMName
检查Show-Help Set-VM
没有属性–MemoryAssigned
,你应该使用组合:
-DynamicMemory
-MemoryMaximumBytes
-MemoryMinimumBytes
-MemoryStartupBytes
我更改了代码并且有效:
$VMProperties = Import-Csv $PathTocsv -Delimiter ";";
foreach ($Property in $VMProperties){
# GB to Byte
$MemoryByte = [Double]$MemoryGB*(1024*1024*1024)
$NumberOfCPU = $Property.NumberOfCPU;
$MemoryGB = $Property.MemoryGB;
$MachineMacAddress = $Property.MachineMacAddress;
Write-Host $NumberOfCPU;
Write-Host "$MemoryGB GB";
Write-Host $MachineMacAddress;
$OldmacAddress = (Get-VM -Name $VMName | Get-VMNetworkAdapter).MacAddress
Write-Host "-> OldMacAddress was $OldmacAddress";
Get-VM -Name $VMName | Set-VMNetworkAdapter -StaticMacAddress $MachineMacAddress
$NewMacAddress = (Get-VM -Name $VMName | Get-VMNetworkAdapter).MacAddress
Write-Host "-> NewMacAddress is $NewMacAddress";
$OldProcessorCount = (Get-VM -Name $vmname).ProcessorCount
$OldMemoryAssined = (Get-VM -Name $vmname).MemoryStartup
Write-Host "--> OldProcessorCount was $OldProcessorCount";
Write-Host "---> OldMemory was $OldMemoryAssined Byte";
Set-VM -Name $VmName –MemoryStartupBytes $MemoryByte -ProcessorCount $NumberOfCPU -StaticMemory;
$NewProcessorCount = (Get-VM -Name $vmname).ProcessorCount
$NewMemory = (Get-VM -Name $vmname).MemoryStartup
Write-Host "--> New ProcessorCount is $NewProcessorCount";
Write-Host "---> NewMemory is $NewMemory Byte";
}