【问题标题】:Why doesn't Get-Member give a full list of all properties and methods.为什么 Get-Member 不提供所有属性和方法的完整列表。
【发布时间】:2013-08-23 11:21:36
【问题描述】:

我最近发现我可以访问通过 get-member 运行时未列出的内容的属性。

这是一个示例,我将使用自定义 psobject 进行演示。

首先,我将创建哈希表(稍后我将使用它来创建 psobject):

$MyHashtable = @{'column1'="aaa";
                 'column2'="bbb";
                 'column3'="ccc"
}

现在我创建我的 psobject:

PS C:\> $MyNewObject = New-Object -TypeName PSObject -Property $MyHashtable

现在如果我通过 get-member 运行这个新对象,它会显示:

PS C:\> $MyNewObject | Get-Member

   TypeName: System.Management.Automation.PSCustomObject

Name        MemberType   Definition                    
----        ----------   ----------                    
Equals      Method       bool Equals(System.Object obj)
GetHashCode Method       int GetHashCode()             
GetType     Method       type GetType()                
ToString    Method       string ToString()             
column1     NoteProperty System.String column1=aaa     
column2     NoteProperty System.String column2=bbb     
column3     NoteProperty System.String column3=ccc

到目前为止,一切都很好(尽管我怀疑上面的列表中缺少一个名为“PSObject”的属性,我现在将要演示)。

但是,如果我现在这样做:

PS C:\> $MyNewObject.PSObject


Members             : {System.String column1=aaa, System.String column2=bbb, System.String column3=ccc, string ToString()...}
Properties          : {System.String column1=aaa, System.String column2=bbb, System.String column3=ccc}
Methods             : {string ToString(), bool Equals(System.Object obj), int GetHashCode(), type GetType()}
ImmediateBaseObject : 
BaseObject          : 
TypeNames           : {System.Management.Automation.PSCustomObject, System.Object}

这行得通!这怎么可能,因为当我们通过 Get-Member 传递对象时,“PSObject”没有被列为属性。

希望有人可以提供帮助。

【问题讨论】:

  • Get-Help Get-Member -Parameter Force
  • 非常感谢。这正是我想要的!
  • @BartekB 这不应该是一个公认的答案吗?

标签: powershell


【解决方案1】:

使用 Get-Member -Force 查看所有成员

-强制 [SwitchParameter] 添加内部成员(PSBase、PSAdapted、PSObject、PSTypeNames)和 编译器生成的 get_ 和 set_ 方法显示。默认情况下,获取成员 在除“Base”和“Adapted”之外的所有视图中获取这些属性,但确实如此 不显示它们。

【讨论】:

    猜你喜欢
    • 2018-06-15
    • 2017-09-22
    • 1970-01-01
    • 2020-06-09
    • 2018-04-04
    • 2013-11-26
    • 2017-12-22
    • 1970-01-01
    • 2014-03-24
    相关资源
    最近更新 更多