豆子最近接管了一些ESXi 5.0,上面有很多虚拟机,不过这些虚拟机的SCSI的驱动很多都还在使用旧版本比如LSIBasci,LSISAS等等。我希望把他们都更新到ParaVirtual的驱动,更新方式很简单,手动添加一个硬盘和SCSI驱动器,选择ParaVirtual,等操作系统识别出硬盘以后就表示驱动已经自动安装了,那么删除这个新硬盘并修改启动盘的驱动器类型就行了。
不过首先 我得先获取所有VM的SCSI和操作系统的类型才方便下一步的操作。
连接VCenter很容易,下载对应的PowerCli,然后添加Snappin就行。如果懒得每次执行,可以在powershell profile里面配置每次启动ISE自动加载。
1
|
Add-PSSnapin
VMware.VimAutomation.Core
|
然后连接VCenter,就可以查看类型了。语句本身没啥好说的,我用了个tee来保存变量,这样我可以同时在屏幕上也看见结果。最后导出结果。
1
2
3
4
5
|
Connect-viserver
sydvcs2012
get-VM
| select version,Name, powerstate, numcpu, Memorygb, @{N=
"IP Address"
;E={@(
$_
.guest.IPAddress[0])}},@{n=
"OS"
;e={
$_
.guest.osfullname}}, @{n=
"scsi"
;e={(
Get-ScsiController
$_
.name).type}} |
tee -variable result
$result
| sort scsi |
Export-Csv
C:\temp\mel.csv -NoTypeInformation
Disconnect-VIServer
|
值得一提的是get-vm刚开始的时候出了些小问题,因为我同时安装了hyper-v的模块,hyper-v也有get-vm这个命令。有的时候powershell会迷糊我到底需要哪个模块的指令。
如果为了避免混淆,需要把模块名字前缀上去就不会有冲突了
本文转自 beanxyz 51CTO博客,原文链接:http://blog.51cto.com/beanxyz/1747412,如需转载请自行联系原作者