2016-11-15 187 views
0

我试图创建一个PowerCLI脚本,它将根据从CSV文件中获取的设置创建虚拟机。 CSV文件是VBA脚本从Excel电子表格中提取数据的结果,用户将输入其所需的设置。我至今:通过PowerCLI脚本从.CSV文件分配磁盘分区空间

$CSVPath = "C:\NewVMList.csv" 

$CSVFILE = Import-CSV $CSVPath 

$VMhost = Get-vmhost "$($CSVFile.VMHost)" 
$PortGroup = Get-VirtualPortgroup -name "$($CSVFile.VLAN)" -VMhost $VMhost 

New-VM -Name "$($CSVFile.Name)" -MemoryGB "$($CSVFile.MemoryGB)" -NumCPU "$($CSVFile.NumCPU)" -portgroup $Portgroup -DiskGB "$($CSVFile.C_System)" 

,这将引用这些值的CSV文件将有3个细胞可用于不同的分区分配空间(C:\ d:\,M: (应用程序数据))。

我想知道的是,如果在我的PowerCLI脚本中可以使用的函数可以根据CSV文件为各个分区分配合适的空间量,或者需要手动完成这些操作吗?

是否需要除-DiskGB "$($CSVFile.C_System)"之外的其他东西来创建分区,因为这似乎引用了分配的整个磁盘空间(我可能是错误的,请随时纠正我)?

回答

0

分区是通过Windows操作系统而不是VMware处理的,因此您需要进行某种形式的后期构建任务(如果您需要帮助,可以与我创建聊天,但愿意帮助但theres一堆其他变量,我们不得不讨论)

然而,容易和可能更好的方法来完成这个只是添加3个独立的硬盘到服务器。它们都只是位于SAN上的VMDK文件,因此每个3个磁盘都有1个分区与1个具有3个分区的磁盘并没有多大区别,但您可以在创建虚拟机时声明所有三个磁盘。所以你应该使用硬盘大小为New-VM的C:\,然后使用New-HardDisk添加2个额外的磁盘。这还带来了额外的好处,使得后来扩展C:\和D:\驱动器变得更加容易,并且如果您出于性能或容量方面的考虑而开始移动VMDK,则会使存储更加灵活。

+0

谢谢你的答案 - 我相信我会希望与你建议为我需要的各种驱动器创建3个独立的硬盘。我想知道如何才能在我的代码中指定驱动器号?我目前的方式是,这只是分配新的虚拟机的总磁盘空间,然后来宾操作系统将分配给C:\默认情况下?这是VM社区网站上的某个人建议的:$ eDrive = Get-WmiObject -Class win32_volume -Filter“DriveLetter ='E:'” Set-WmiInstance -input $ eDrive -Arguments @ {DriveLetter =“M:”;标签=“AppData”} – NeedToKnowBasis22

+0

驱动器号必须在服务器首次启动后再次在窗口内完成,这取决于您想如何处理它的一系列不同选项,但最简单的方法可能是使用自定义规范来调用脚本来格式化驱动器 –

+0

好的,谢谢你的帮助,我非常欣赏这种洞察力,因为我在这方面很新颖。这听起来像我需要找到一种方法来让我的VBA脚本添加一个计算单元,它将根据代表驱动器号的3个单元计算出所需的总GB数。 – NeedToKnowBasis22