首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Powershell -显示对象属性的值,其中属性名类似于“*配额*”

Powershell -显示对象属性的值,其中属性名类似于“*配额*”
EN

Stack Overflow用户
提问于 2017-04-12 06:26:56
回答 2查看 2.2K关注 0票数 0

根据主题,我试图为特定的邮箱获取属性的名称和与该属性相结合的值。

因此,下面的行获得了一个很好的可用对象属性列表,输出中显示的默认列的标题为“Name”。

代码语言:javascript
复制
Get-Mailbox -Identity "Person Name" | gm

然后我想说这样的话:

  1. 对象:“个人姓名邮箱”
  2. 其中“个人姓名邮箱”的属性具有类似于“配额”的名称
  3. 列出“Person name邮箱”的实际属性名称及其值

我尝试过一些使用-ExpandProperty/Select/Where的东西,但它们都失败了。我相信这是非常基本的,但Powershell绝对不是我的优势。有人能告诉我如何正确地构造这条管道吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-04-12 09:12:33

您不需要使用Where-Object,只需要使用Select-Object

代码语言:javascript
复制
Get-Mailbox -Identity "Person Name" | Select-Object -Property *quota*
票数 1
EN

Stack Overflow用户

发布于 2017-04-12 07:00:11

你似乎使用了正确的命令。Where-Object滤波器Select-Object选择特定的属性。

根据我的经验,有时您在控制台上看到的内容与实际的属性名称不匹配,因为有一个格式化程序甚至可以更改列名。如果您使用该虚拟属性名称驱动Where-ObjectSelect-Object,则它们确实会失败。此外,有时输出实际上不是一个与这些cmdlet很好地工作的记录集。

我的建议是,当事情变得奇怪时,总是检查对象的类型。从$items=Get-Mailbox -Identity "Person Name"开始。然后$items.GetType()显示实际的.net类型。然后$items.Count会显示它实际上是数组还是单个对象。然后$items|ForEach-Object {$_.GetType()}显示每个对象的类型。

此外,$items|Get-Member对于确定属性名也很有帮助。如果有必要,也可以在循环中使用它。

这就是我如何解决奇怪行为的方法,如果您能够发布您的发现和您在Where-ObjectSelect-Object中尝试过的代码,这将是一个很大的帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43361884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档