gpt4 book ai didi

powershell - 如何访问 Get-EC2Instance 的 RunningInstance 方法中的列表值?

转载 作者:行者123 更新时间:2023-12-04 00:10:59 26 4
gpt4 key购买 nike

我正在尝试从 get-ec2instance 返回的对象中检索 instanceid、公共(public) dns 名称和“名称”标签。 .

$instances = foreach($i in (get-ec2instance)) '
{ $i.RunningInstance | Select-Object InstanceId, PublicDnsName, Tag }

这是输出:
InstanceId                              PublicDnsName                     Tag
---------- ------------- ---
myInstanceIdHere myPublicDnsName {Name}
... ... {Name}

我希望能够访问 {Name}使用上面的代码行并在此输出中打印其值。自从第一次发布以来,我做了一些研究,发现......
PS C:\Users\aneace\Documents> $instances[0].Tag.GetType()

IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True List`1 System.Object

在此和 AWS 文档之间, I think Tag refers to this list ,但我不确定。我可以通过调用 $instances[0].Tag 访问打印键和值列的表,但我现在的问题是我想要 Value成为我的第一个表的输出,而不是 {Name}目的。有什么建议么?

最佳答案

根据文档,Tag属性是 列表 Tag对象。所以一般来说,那里会存储多个键/值。您是否假设在您的情况下只有 1 个?
Select-Object不仅可以获取原始属性值,还可以获取计算值。假设您只想要 Value 的逗号分隔列表来自 Tag列表中的对象。以下是您的操作方法:

$instances = Get-EC2Instance `
|%{ $_.RunningInstance } `
| Select-Object InstanceId,PublicDnsName,@{Name='TagValues'; Expression={($_.Tag |%{ $_.Value }) -join ','}}
$instances 的元素现在将拥有一个属性 TagValues这是一个由 Value 组成的字符串来自与实例关联的所有标签。

关于powershell - 如何访问 Get-EC2Instance 的 RunningInstance 方法中的列表值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18090022/

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