Get class of returned object by PowerShell command - determine a cmdlet's output data type

六月ゝ 毕业季﹏ 提交于 2020-05-29 11:42:05

问题


In PowerShell, if a command returns an array of one or more objects, I can find out the class of the object by the following method:

$ab = SampleCommand
$ab[0].getType()

But, how can I find out the default return type of a command if the command returned nothing (array of 0 values)?

Note: For example, I am working on SCOM PowerShell commands, and I am trying to find the default return class type of command get-scomscadvisoragent, but it returns nothing as the advisor agent is not configured in my lab setup. Hence, I am not able to get the class of returned object.


回答1:


If you want to determine the type of objects a given command outputs in principle, use (Get-Command <cmd>).OutputType; in your case:

(Get-Command get-scomscadvisoragent).OutputType

Note, however, that this only works if the target command has explicitly declared its output types via one or more OutputType attributes.


Cmdlets / advanced functions may alternatively / additionally describe their output types in a less formal way, via the .OUTPUTS section of their help text (in comment-based help).
Therefore, if the above didn't work, you can also try:

(Get-Help get-scomscadvisoragent).returnvalues

The latter information can also be found in the OUTPUTS section of the output from
Get-Help -Full <cmd>.



来源:https://stackoverflow.com/questions/50862611/get-class-of-returned-object-by-powershell-command-determine-a-cmdlets-output

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!