PowerShell CLI 获取VM信息

简介:

豆子最近接管了一些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


wKiom1bY1knRRZtOAAD4EnyHjfU539.png



值得一提的是get-vm刚开始的时候出了些小问题,因为我同时安装了hyper-v的模块,hyper-v也有get-vm这个命令。有的时候powershell会迷糊我到底需要哪个模块的指令。


wKioL1bY1laQ_p_XAAAXV2S_PI8584.png


如果为了避免混淆,需要把模块名字前缀上去就不会有冲突了


wKiom1bY1d2RoGNXAABLUdTLKKA899.png










本文转自 beanxyz 51CTO博客,原文链接:http://blog.51cto.com/beanxyz/1747412,如需转载请自行联系原作者

目录
相关文章
|
3月前
|
数据安全/隐私保护 异构计算 Windows
【Azure 环境】 介绍两种常规的方法来监视Window系统的CPU高时的进程信息: Performance Monitor 和 Powershell Get-Counter
【Azure 环境】 介绍两种常规的方法来监视Window系统的CPU高时的进程信息: Performance Monitor 和 Powershell Get-Counter
|
6月前
|
存储 JSON 运维
【运维】Powershell 服务器系统管理信息总结(进程、线程、磁盘、内存、网络、CPU、持续运行时间、系统账户、日志事件)
【运维】Powershell 服务器系统管理信息总结(进程、线程、磁盘、内存、网络、CPU、持续运行时间、系统账户、日志事件)
159 0
|
存储 JSON 运维
【运维】Powershell 服务器系统管理信息总结
Powershell 服务器系统管理信息总结(进程、线程、磁盘、内存、网络、CPU、持续运行时间、系统账户、日志事件)
127 0
|
jenkins 持续交付 Windows
Jenkins基础--Windows批处理,PowerShell获取指定的Credentials账户信息
Jenkins中Windows批处理,PowerShell获取指定的Credentials账户信息
5010 0