Правильно добавлять не
$serial - в нём список сериалов, а
$serialID - переменную из цикла
или логичнее тогда уж
# Пляски @() вокруг Get-Content не нужны, foreach и так всё переберёт как массив, если вы не на PSv2
$serials = Get-Content ...
foreach ($serial in $serials) {
Invoke-WebRequest "https://...api..$serial..."
}
А если их действительно 10000 лучше использовать foreach -parallel из седьмого PS или его ранние варианты из PoshRSJob, Invoke-Parallel, ThreadJob...