gpt4 book ai didi

azure - 格式化 Powershell 脚本对象输出?

转载 作者:行者123 更新时间:2023-12-03 04:57:38 31 4
gpt4 key购买 nike

该脚本的作用是转到每个 Azure 订阅,然后列出 VM 属性,然后创建 PSObject 以有意义且有用的格式捕获输出。

Get-AzSubscription | ForEach-Object {
$subscriptionId = $_.Id
$subscriptionName = $_.Name

Set-AzContext -SubscriptionId $subscriptionId

$VM = Get-AzVM

# Get NIC id
$NICId = $VM.NetworkProfile.NetworkInterfaces[0].id

# Get NIC
$NIC = Get-AzNetworkInterface -ResourceId $NICId

# Get public ip id
$PIPId = $NIC.IpConfigurations.PublicIpAddress.id

# Get public ip
$PIP = Get-AzResource -ResourceId $PIPId

# Output
[pscustomobject]@{
Subscription = $subscriptionName
VMName = $VM.Name
VMRG = $VM.ResourceGroupName
VMLocation = $VM.Location
IpAddress = $PIP.Properties.ipAddress
PublicIPAllocationMethod = $PIP.Properties.publicIPAllocationMethod
FQDN = $pip.Properties.dnsSettings.fqdn
}
} | Out-GridView

但是,结果是混合的,并且格式不正确,如下所示:

Out-GridView

enter image description here

格式表-自动调整大小

Subscription             : Corp-Azure-Dev-subs
VMName : {prod1-build, corpbuild-image, corpplus-build-server, u2api...}
VMRG : {corp-prod1-BUILD, corp-PLUS-BUILD-SETUP, corp-PLUS-BUILD-SETUP, ERP-Acorp-DEV...}
VMLocation : {eastus, east, centralus, westus...}
IpAddress : 52.44.66.198
PublicIPAllocationMethod : Static
FQDN :

最佳答案

我认为您正在输出多种对象类型。从外观上看,该行:

Set-AzContext -SubscriptionId $subscriptionId

可能是导致该问题的原因。请记住,您输出的任何内容都会通过管道输送。因此,可能的问题是 Out-Griview 不知道如何处理多类型数组。尝试将其发送到 Out-Null 以查看它是否符合 Out-GridView 结果。

关于azure - 格式化 Powershell 脚本对象输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64962160/

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