我想浏览我的媒体服务器(Rasperry Pi上的MiniDLNA 1.1.5)。 这是我到目前为止的代码:
$DeviceFinder = New-Object -COM "UPnP.UPnPDeviceFinder"
$DeviceType = "urn:schemas-upnp-org:service:ContentDirectory:1"
Write-Host "Finding MediaServer devices..."
$Devices = $DeviceFinder.FindByType($DeviceType,0)
$MediaServer = $Devices | Where-Object { $_.FriendlyName -like "*LittlePi*" }
$MediaServerDirectory = $MediaServer.Services | Where-Object { $_.Id -eq "urn:upnp-org:serviceId:ContentDirectory" }
Write-Host "MediaServer Description:" $MediaServer.Description
Write-Host "Browsing MediaServer..."
$ContainerID = 0
$BrowseFlag = "BrowseDirectChildren"
$Filter = ""
$StartIndex = 0
$RequestedCount = 1000
$SortCriteria = ""
$myInObject = @($ContainerID, $BrowseFlag, $Filter, $StartIndex, $RequestedCount, $SortCriteria)
$outArgs = @()
$returnValue = $MediaServerDirectory.InvokeAction("Browse", $myInObject, [ref]$outArgs)
我的问题是$returnValue
和$outArgs
是$null
。
答案 0 :(得分:0)
在调用InvokeAction之前,您是否尝试过设置$ outArgs = $ null?
我在尝试从路由器获取外部IP地址时遇到了问题,并且$ null分配技巧有效。
(搜索3个关键字:powershell com upnp以查看我的示例)
不确定这是否会对$ returnvalue产生任何影响。