【发布时间】:2014-06-09 19:43:19
【问题描述】:
我正在为 vmware 制作一个在 powershell (powerCLI) 中运行的脚本。我尝试将自动报告导出到 csv 文件,但我不知道如何解决几个问题。
我不知道如何导出的所有参数。
“虚拟机工作位置” 我可以导出 mashine 所在的磁盘,但我不知道如何导出所有带文件夹的路径。
域/工作组
计算机名称 当我尝试导出一个名称时,我得到了域“name.domainname.com”的名称(这很奇怪,因为我的虚拟机不在域中,但在工作组中) name 我的意思是操作系统内部的一个名称,而不是 esxi 中的名称,因为我从中获得了 vm 的 esxi 名称
$name = (get-vm name_maschine|select-object name).name
或者简单的循环参数是mashine的名字,我只导出一个参数
不太重要的参数
4 .主机所在的 vCenter 的名称
- 主机在其中工作的数据中心的名称
代码:
connect-viserver -server IP-ADDRES -user root -password PASSWORD
Get-View -ViewType VirtualMachine | %{
New-Object PSObject -Property @{
# mashine name
'Mashine name' = $_.Name
#date when edited
'Date' = Get-Date
# resource pull
'pull' = (Get-VM $_.Name | Get-ResourcePool | select-object name).name
#disk where is mashine
'Datastore' = [system.String]::Join(",",($_.Storage.PerDatastoreUsage | %{Get-View $_.Datastore} | %{$_.Name}))
}
}
【问题讨论】:
-
写一些代码,把它贴在这里,SO 的好人会帮助你修复有问题的地方。否则只是懒惰
-
抱歉,由于stackoverflow“限制”,我无法粘贴所有代码
-
connect-viserver -server IP-ADDRES -user root -password PASSWORD Get-View -ViewType VirtualMachine | %{ New-Object PSObject -Property @{ # mashine name 'Mashine name' = $_.Name #date when editing 'Date' = Get-Date # resource pull pull = (Get-VM $_.Name | Get-ResourcePool | select-object name).name #disk where is mashine 'Datastore' = [system.String]::Join(",",($_.Storage.PerDatastoreUsage | %{Get-View $_.Datastore} | % {$_.Name}))
-
刚刚注意到我错过了答案中的 datacenter,现在添加。
标签: powershell vmware esxi powercli