0

我正在尝试使用来自 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 | 选择站点ID

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

有人知道我可能会错过什么吗?我以前没见过这个。仅在这种特殊情况下

4

1 回答 1

0

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

于 2015-02-11T14:39:27.070 回答