PowerShell实现批量收集SCVMM中虚拟机IP

简介:

首先,这个脚本有个功能限制:只能针对已安装代理的Windows虚拟机

先看看以前只会写CMD阶段做的脚本吧。http://jiushu.blog.51cto.com/972756/1419862 这个阶段写的脚本思路都充满了人文关怀

1
2
3
4
5
6
7
8
9
10
Invoke-Command  -ComputerName hahv1,hahv2,hahv3 -Command{ Get-VMNetworkAdapter  -all  |Select -Object VMname,IPAddresses |  Format-Table  > d: $env:COMPUTERNAME .csv}  #导出IP地址
#这下面三个copy是啥意思呢?拷贝不同主机上的文件到运行脚本的D盘
copy \hahv1d $hahv1 .csv d:
copy \hahv2d $hahv2 .csv d:
copy \hahv3d $hahv3 .csv d:
#PowerShell中运行cmd命令不太方便,因为cmd命令有一些和PowerShell差不多,但是功能不一样,所以用ech写入一条命令,就是将本地的csv文件组合一下,附加到一个叫做cp.cmd的文件中
echo “copy *.csv hv.csv /y” >d:/cp.cmd
d:
#运行这个拷贝,结束
.cp.cmd

↑以上脚本别用了

来看看新的写法怎么写。脚本需要在SCVMM的PowerShell中使用,如果是静默运行,记得要先加载模块

1
2
3
4
5
6
7
echo ----本脚本展示当前SCVMM中所有Hyper-V主机的虚拟机IP地址与计算机名称的对应关系
echo ----IP地址来源于Hyper-V主机,所以现阶段只能针对已安装代理的Windows虚拟机。
echo ----可以配合邮件发送功能,定时发送
echo  "----Powerd By 九叔"
$cc  Get-VMHost |select  computername
$cc |foreach  {echo 当前列表的虚拟机的宿主机为:( $_ .computername)
Invoke-Command  -ComputerName  $_ .computername  -Command{ Get-VMNetworkAdapter  -all |  Select-Object  VMname,IPAddresses |ft }}

以上代码7行,4行都是说明,所以你这次代码效率真的是提高了。不过因为这说白了是到目标计算机上执行的,所以运行效率和以前一样,最后我们看看效果

【关机的看不了,Linux的看不了,没装agent的看不了】

wKiom1Vb5orhJ0_gAAPv9VRFbss726.jpg



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

相关文章
|
14天前
|
域名解析 网络协议 Ubuntu
虚拟机ip不停地变每次使用ssh不好登录?有手就行!
虚拟机ip不停地变每次使用ssh不好登录?有手就行!
32 1
|
14天前
|
虚拟化
vmware克隆虚拟机后没有ip地址的问题
解决vmware克隆虚拟机后没有内网ip的问题
|
14天前
|
Linux 虚拟化
VMware workstation 中centos7虚拟机在nat模式下怎么配置网卡,指定我想要的IP并且可以联网
https://blog.csdn.net/2302_78534730/article/details/132825156?spm=1001.2014.3001.5502
138 0
|
14天前
|
弹性计算 运维 Shell
修改虚拟机网卡IP 地址
【4月更文挑战第29天】
15 0
|
14天前
|
弹性计算 运维 Shell
|
14天前
|
Linux
【Linux】虚拟机ip端口如何固定
【Linux】虚拟机ip端口如何固定
11 0
|
14天前
|
Linux
centos7 虚拟机修改IP地址
centos7 虚拟机修改IP地址
26 0
|
14天前
|
网络协议 Linux 虚拟化
修改虚拟机ip为静态ip
centos修改ip为静态ip
|
14天前
|
Linux 虚拟化
Linux虚拟机不显示IP地址的解决办法
Linux虚拟机不显示IP地址的解决办法
103 0
|
14天前
|
网络协议 Linux Windows
Linux虚拟机设置固定IP
Linux虚拟机设置固定IP
45 2