gpt4 book ai didi

azure - PSCustomObject 数据收集问题

转载 作者:行者123 更新时间:2023-12-03 05:44:10 25 4
gpt4 key购买 nike

我正在准备一个表,其中包含有关虚拟机名称和操作系统磁盘的配置日期的信息。如果将单个虚拟机分配给 $VM,我可以轻松地从 $VM.disks.statuses.time[0] 命令检索该信息,但是当我尝试将数据收集到表中时,出现错误:

Cannot index into a null array.
At line:4 char:1
+ [PSCustomObject]@{
+ ~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : NullArray

这是我的代码:

$VMs = Get-AzVM -status

$vmOutput = $VMs | ForEach-Object {
[PSCustomObject]@{
"VM Name" = $_.Name
"Provision Date" = $_.disks.statuses.time[0].ToString()
}
}

最佳答案

我可以重现您的问题,该问题是由 Get-AzVM -status 的输出引起的和Get-AzVM -ResourceGroupName <ResourceGroupName> -Name <Name> -Status是不同的。

Get-AzVM -status的输出不会有disks属性,但是当您通过 Get-AzVM -ResourceGroupName <ResourceGroupName> -Name <Name> -Status 获取单个虚拟机状态时,它将具有该属性,因此您会得到错误。

<强> Get-AzVM -status :

enter image description here

<强> Get-AzVM -ResourceGroupName <ResourceGroupName> -Name <Name> -Status :

enter image description here

解决方案:

要解决此问题,只需使用 Get-AzVM -ResourceGroupName <ResourceGroupName> -Name <Name> -Status在你的脚本中。

$VMs = Get-AzVM -status

$vmOutput = $VMs | ForEach-Object {

$VMstatus = Get-AzVM -ResourceGroupName $_.ResourceGroupName -Name $_.Name -Status

[PSCustomObject]@{
"VM Name" = $VMstatus.Name
"Provision Date" = $VMstatus.disks.statuses.time[0].ToString()
}
}

enter image description here

关于azure - PSCustomObject 数据收集问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56112267/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com