自定义 PowerShell 对象 属性 问题
Custom PowerShell Object Property Issue
我正在尝试使用 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
}
问题:
Object ($wpobj) 包含 get-member 下的 'ClientIP' 和 'SiteID',但您无法使用 $wpobj.clientip 或 $wpobj.siteid 获取这些值。我可以检索这些值的唯一方法是使用 $wpobj | select clientip 或 $wpobj | select 站点 ID
无法以上述方式获取属性值使得 sort/group 数据变得更加困难,因为我无法 select 稍后在管道中获取这些值。
有人知道我可能遗漏了什么吗?我以前没见过这个。仅在这种特殊情况下
解决方案是将 Powershell 升级到 V4.0。 IE.invoke 不适用于早期版本的 Powershell。
我正在尝试使用 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
}
问题:
Object ($wpobj) 包含 get-member 下的 'ClientIP' 和 'SiteID',但您无法使用 $wpobj.clientip 或 $wpobj.siteid 获取这些值。我可以检索这些值的唯一方法是使用 $wpobj | select clientip 或 $wpobj | select 站点 ID
无法以上述方式获取属性值使得 sort/group 数据变得更加困难,因为我无法 select 稍后在管道中获取这些值。
有人知道我可能遗漏了什么吗?我以前没见过这个。仅在这种特殊情况下
解决方案是将 Powershell 升级到 V4.0。 IE.invoke 不适用于早期版本的 Powershell。