Você nunca atribui nada a $Report
. Você precisaria fazer a conversão HTML dentro do loop. Atualmente você percorre cada item e sobrescreve $firstName
e $lastName
a cada iteração. Você finaliza o loop e tem o último valor para usar na saída final.
Para fornecer um exemplo:
Vamos supor que você queira somar o número um a dez usando um loop. O que você está fazendo atualmente é o seguinte.
$numbers = 1..10
$sum = 0
foreach($number in $numbers){
$sum = $number
}
Write-Output $sum
Você está atribuindo qualquer número que esteja ocupando para ser a soma. O que você realmente quer fazer nesse caso seria adicionar a soma a cada iteração.
$numbers = 1..10
$sum = 0
foreach($number in $numbers){
$sum = $sum + $number
}
Write-Output $sum
O que isso significa para o seu código? Você precisa gerar seu HTML dentro do loop. Sua abordagem de associar a saída do loop foreach à variável $repot
pode realmente ser usada para isso. No momento, ele não está gerando nenhuma saída porque você está apenas fazendo uma tarefa (isso não significa erro). A seguinte modificação daria a você uma string com a saída de cada nome e sobrenome de cada item. Você poderia usar isso para gerar seu HTML. Uma abordagem alternativa seria semelhante usando $report
como soma e adicionando a cada iteração.
$Report = ForEach ($item in $users)
{
$firstName = $item.(“fornavn”)
$lastName = $item.(“efternavn”)
Write-Output $firstname,$lastName
}
P.S. esteja ciente de que foreach e < a href="https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/foreach-object?view=powershell-6"> ForEach-Object são coisas diferentes. Você provavelmente encontrará o último com mais frequência, especialmente se usar o atalho %
. Uma grande diferença é que você não pode usar continue
ou break
dentro do último, mas precisaria usar outro mecanismo como return
.