我正在尝试将一组自定义对象传递给函数以进一步处理这些对象。
这是我创建自定义对象数组的函数:
Function GetNetworkAdapterList
{
# Get a list of available Adapters
$hnet = New-Object -ComObject HNetCfg.HNetShare
$netAdapters = @()
foreach ($i in $hnet.EnumEveryConnection)
{
$netconprop = $hnet.NetConnectionProps($i)
$inetconf = $hnet.INetSharingConfigurationForINetConnection($i)
$netAdapters += New-Object PsObject -Property @{
Index = $index
Guid = $netconprop.Guid
Name = $netconprop.Name
DeviceName = $netconprop.DeviceName
Status = $netconprop.Status
MediaType = $netconprop.MediaType
Characteristics = $netconprop.Characteristics
SharingEnabled = $inetconf.SharingEnabled
SharingConnectionType = $inetconf.SharingConnectionType
InternetFirewallEnabled = $inetconf.InternetFirewallEnabled
SharingConfigurationObject = $inetconf
}
$index++
}
return $netAdapters
}
然后在我的主代码中,我像这样调用上面的函数:
$netAdapterList = GetNetworkAdapterList
$netAdapterList 返回预期的数据,我可以执行以下操作:
$netAdapterList | fl Name, DeviceName, Guid, SharingEnabled
到现在为止还挺好。
现在我想调用一个传入 $netAdapterList 的函数
我创建了一个像这样的虚拟函数:
Function ShowAdapters($netAdapterListParam)
{
$netAdapterListParam | fl Name, DeviceName, Guid, SharingEnabled
}
当我这样调用它时:
ShowAdapters $netAdapterList
什么都没有打印出来。
我尝试更改函数的签名,但仍然没有运气:
Function ShowAdapters([Object[]]$netAdapterListParam)
Function ShowAdapters([Object]$netAdapterListParam)
Function ShowAdapters([PSObject[]]$netAdapterListParam)
Function ShowAdapters([array]$netAdapterListParam)
有人知道我在做什么错吗?如何访问函数内的自定义对象?