自定义PowerShell对象属性问题

时间:2015-01-14 22:51:46

标签: powershell iis-7 psobject web-administration

我正在尝试使用来自IIS7的WebAdministration模块的数据创建自定义PowerShell对象。该对象应从IIS中的工作进程的GetExecuteRequest WmiMethod捕获ClientIPAddress和SiteID。

$p = Get-WmiObject WorkerProcess -Namespace root\WebAdministration -ComputerName . | Invoke-WmiMethod -Name GetExecutingRequests | Select-Object -ExpandProperty OutputElement
$wpob = @()

foreach($w in $p)
{
            $webrequests = New-Object PSObject
            $webrequests | Add-Member -Type NoteProperty -Name ClientIP -Value ($w | select -ExpandProperty ClientIPAddress)
            $webrequests | Add-Member -Type NoteProperty -Name SiteID -Value ($W | select -ExpandProperty SiteID)
            $wpobj += $webrequests
        }

问题:

对象($ wpobj)包含get-member下的“ClientIP”和“SiteID”,但您无法使用$ wpobj.clientip或$ wpobj.siteid获取这些值。只有我可以检索这些值的方法是使用$ wpobj |选择clientip或$ wpobj |选择siteid

无法以上述方式获取属性的值使得对数据进行排序/分组变得更加困难,因为我无法在管道的后面选择值。

任何人都知道我可能会缺少什么?我以前没见过这个。仅在这种特殊情况下

1 个答案:

答案 0 :(得分:0)

解决方案是将Powershell升级到V4.0。 IE.invoke不适用于早期版本的Powershell。