Итак, я нашел несколько программ, которые могут искать устройства UPnP в локальной сети, но я не могу найти такую же реализацию в Powershell. Может кто подскажет, как написать скрипт Powershell с помощью UPnP для поиска устройств?
Есть ли какой-нибудь скрипт, который может искать по всей локальной сети устройства UPnP?
comment
Прочтите мой комментарий, вы не получаете устройства 2-го уровня плюс с вашим кодом. Уровень означает более глубокий, чем 2-й уровень вложенности.
- person Erx_VB.NExT.Coder   schedule 04.09.2012
Ответы (3)
По этому вопросу мне помогли. Так что есть ответ на мой вопрос, если он кому-то нужен. Код в PS должен быть таким:
$finder = New-Object -ComObject UPnP.UPnPDeviceFinder;
$devices = $finder.FindByType("upnp:rootdevice", 0)
foreach($device in $devices)
{
Write-Host -ForegroundColor Red ---------------------------------------------
Write-Host -ForegroundColor Green Device Name: $device.FriendlyName
Write-Host -ForegroundColor Green Unique Device Name: $device.UniqueDeviceName
Write-Host -ForegroundColor Green Description: $device.Description
Write-Host -ForegroundColor Green Model Name: $device.ModelName
Write-Host -ForegroundColor Green Model Number: $device.ModelNumber
Write-Host -ForegroundColor Green Serial Number: $device.SerialNumber
Write-Host -ForegroundColor Green Manufacturer Name: $device.ManufacturerName
Write-Host -ForegroundColor Green Manufacturer URL: $device.ManufacturerURL
Write-Host -ForegroundColor Green Type: $device.Type
}
person
Vertigo
schedule
24.07.2012
Вы понимаете, что это не даст вам устройства, расположенные под устройствами, через которые вы проходите? Вы получаете устройства только на один уровень глубины. Вам нужно сделать то же самое (как указано выше) для каждого устройства, добавить их в свою коллекцию устройств, пока ни у одного другого устройства не будет дочернего устройства, которое не было добавлено. Я уже сделал это в vb6, если вам нужен код.
- person Erx_VB.NExT.Coder; 04.09.2012
Вас может заинтересовать Microsoft UPnP API, в частности IUPnPDeviceFinder. Я недостаточно знаю Powershell, чтобы сказать, можете ли вы использовать API-интерфейсы напрямую или вам понадобится какая-то связующая библиотека .NET, например, например, этот.
person
Pavel Zdenek
schedule
17.07.2012
person
schedule
Хотя этот код может дать ответ на вопрос, предоставление дополнительного контекста относительно того, как и/или почему он решает проблему, улучшит долгосрочную ценность ответа.
- person Donald Duck; 30.12.2020