博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
微软私有云分享(R2)16PowerShell查看虚拟机信息
阅读量:7236 次
发布时间:2019-06-29

本文共 1978 字,大约阅读时间需要 6 分钟。

微软私有云交流群【236804566】,技术分享成就梦想

欢迎关注新浪微博 @肥九叔

今天在群里面看到有同学问到,SCVMM能不能统一导出一份报表给客户看,当然这是可以的,不过基本非常依赖SQL,要写SQL语句。 当然,用PowerShell也可以实现差不多的功能,本人技术非常一般,下面脚本对我来说还是比较好用的。 首先PowerShell输出Hyper-V主机的条目信息是这样的

 

Get-VMNetworkAdapter -all

这个命令输出的结果有多悲剧我就不说了,东西太多。 所以我很机智的加了一些东西,”|”是管道的作用,把结果输出到后面的参数,后面的意思是只输出虚拟机名称和IP地址。

Get-VMNetworkAdapter -all | Select-Object VMname,IPAddresses | Format-Table

既然已经很机智了,再来一点吧

Get-VMNetworkAdapter -all | Select-Object VMname,IPAddresses | Format-Table >>\192.168.15.194d$33.csv

直接将内容输出到一个共享文件夹的.csv文件中。 ===========更高档的来了?====================== 用下面这个句子,可以一次输出三台主机的IP地址和虚拟机名称列表,名称为目标主机的d盘下的以主机名为名称的.csv,这时候注意下,输出结果是分散在不同主机上的。

Invoke-Command -ComputerName hahv1,hahv2,hahv3 -Command{

Get-VMNetworkAdapter -all | Select-ObjectVMname,IPAddresses | Format-Table > d:$env:COMPUTERNAME.csv}

  我们总结一下,写一个.ps1文件,也就是PowerShell的批处理脚本

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

还有很机智的小伙伴说,原来PowerShell里面可以运行cmd啊,是啊没错,不过你如果不是.xxx.cmd这种方式运行,程序就跑到cmd里面,回不到ps了,后续内容不执行,非常悲剧。

另外echo “copy *.csv hv.csv /y” >d:/cp.cmd 这种方法其实是错的,正确的是下面的!!

echo “asdf3434sdsf3434df” |Out-File d:/11.txt -Encoding Default -Append

你要问为什么这么写,是因为一行没什么事儿,多了的话,这乱码问题解决不了啊。 另外这种方式还有一个机智的地方,它是追加写入的,就是这命令你输入一次,他追加一行。 如果你想保证脚本干净,记得运行前来一个del cp.cmd 只有这样才会创建新的文件。

 

================下面内容是白送的=========================== 依然是报错一小波

Id10619,这个问题出错实在是太机智了。比如你VHD模板里面的管理员用户名是administrator,但是你在VM模板中想把管理员设置成admin,很遗憾,这不行。 如果你拿到的是别人做给你的VHD,你的好***很邪恶的修改了administrator的名称,变成了xyz,那么你正常部署必然会失败。 

Id802,被其他人使用中,这个毫无办法,重启vmm服务器解决(其实是库服务器上的文件被其他人使用,但是重启VMM是有效的。) 

Id2904找不到路径,这个问题是这样的,你想把虚拟机部署到目标主机的D:HYPERV目录下,但是,但是,你必须要提前创建这个目录才可以。 

转载地址:http://wdrfm.baihongyu.com/

你可能感兴趣的文章
SRM 394(1-250pt)
查看>>
linux shell 编程
查看>>
URAL 1182. Team Them Up!
查看>>
设计模式:代理模式
查看>>
ES6学习笔记--let和const命令
查看>>
[工具开发] 分享两个基于Heapster 和 Influxdb 的 Grafana 监控仪表盘模板
查看>>
RabbitMQ 通过记日志来看routingkey
查看>>
sklearn help之岭回归 ridge regression
查看>>
unity3d资源打包总结
查看>>
HTTP协议和几种常见的状态码
查看>>
NET程序的代码混淆、加壳与脱壳
查看>>
Servlet Analysis
查看>>
awk if print
查看>>
加载数据库User表中创建人,显示到界面控件中,其中数据库定义是int 型 外键(User表)...
查看>>
c标签遍历List<Map<String, Object>> 数据格式
查看>>
结点选择 (蓝桥杯 树形动态规划)
查看>>
HDU 1301 Jungle Roads【MST】
查看>>
使用标量值函数作为主键自增值的时候,动软代码生成器的插入方法需要去掉主键的参数。...
查看>>
需求分析
查看>>
作业 20181009-1 选题展示
查看>>