列出所有VM的VMDK文件以及所在的Datastore目录位置

当企业的VM环境运营一段时间后,管理员可能会发现Datastore里面的vmdk文件跟VM的名字对不上号。因为重命名VM之后,VMDK文件并不会随之重命名。另外vCenter还有个功能叫Remove From Inventory,这个功能并不会把VM从Datastore里面删除,只是把VM从列表里删除。所以如果有新手误用到这个功能当作删除,Datastore里面也会有越来越多的不知道是不是应该删除的文件。

这篇博文http://briangordon.wordpress.com/2010/09/01/powershell-list-vm-name-hard-drive-name-and-datastore-name/ 针对上面的问题提出了解决方法。经过测试可以得到想要的结果。但是因为PoweShell输出的默认字数有限制,我把代码输出部分优化了一下,如下

$VMs= Get-vm
foreach($vm in $VMs){
$ds=Get-HardDisk -VM $vm | Select-Object name,filename
$vm.Name, $ds | Format-Table -Wrap -AutoSize | Out-File -Append -FilePath "C:\VM-HardDisk-List.txt"
}

输出结果示例如下

ContentS Cluster3_112

Name Filename
---- --------
Hard disk 1 [Datastore- Storage] ContentS Cluster3/ContentS Cluster3.vmdk
Hard disk 2 [Datastore- Storage] ContentS Cluster3/ContentS Cluster3_1.vmdk
Hard disk 3 [Datastore- Storage] ContentS Cluster3/ContentS Cluster3_112.vmdk

最上面那个是VM的名称。

 

posted @ 2013-07-09 15:14  Dylan ZHANG  阅读(792)  评论(0编辑  收藏  举报