【问题标题】:Why PowerCLI script creates duplicate records using get-vm?为什么 PowerCLI 脚本使用 get-vm 创建重复记录?
【发布时间】:2019-07-23 15:01:59
【问题描述】:

我正在尝试构建一个脚本,该脚本将从多个 vSphere 服务器中提取 VM 列表。在这一点上,它做了我想要的,但不幸的是它还在结果 .csv 文件中创建了重复的值。

只是为了说明 serverlist.txt 和 vicredentials.xml 包含相同的唯一服务器。

Import-Module VMware.VimAutomation.Core
Set-PowerCLIConfiguration -DefaultVIServerMode Multiple -Confirm:$false

if (Test-Path 'E:\vSphereScript\vCenterVMList.csv'){Remove-Item 'E:\vSphereScript\vCenterVMList.csv'}

$serverList = Get-Content -Path "E:\vSphereScript\serverlist.txt" 

foreach ($server in $serverList) {
$creds  = Get-VICredentialStoreItem -file "vSphereScript\vicredentials.xml" -Host $server
Connect-VIServer -server $creds.host -user $creds.user -password $creds.password
Get-VM | Select-Object Name, Guest, VMhost, ResourcePool | Export-Csv -Path "E:\ProgramData\vCenterVMList.csv" -NoTypeInformation -Append
Disconnect-VIServer $server -Confirm:$false

}

还有人知道为什么这么慢吗? 如果我直接从 powershell 连接到 vm 并使用 Get-VM 它几乎是瞬时的

【问题讨论】:

    标签: powershell vmware powercli


    【解决方案1】:

    我认为您的代码没有任何根本性的问题,但我确实想到了几件事:

    • 如果您一次只连接到一个 vCenter,为什么要将 DefaultVIServerMode 设置为 Multiple?
    • 当您说重复时,是指来自 vCenter 的整个 VM 清单还是仅是特定的 VM?
    • 重复的虚拟机是来自单个 vCenter 还是多个 vCenter?
    • 您是否使用任何基于复制的软件? (例如:SRM)

    在速度方面,Get-VM 很快。但是,与 vCenter 服务器连接和断开连接并不是特别快速的操作。

    【讨论】:

      猜你喜欢
      • 2017-07-05
      • 1970-01-01
      • 1970-01-01
      • 2014-01-09
      • 1970-01-01
      • 1970-01-01
      • 2019-01-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多