Ne peut pas se lier argument de paramètre InputObject " parce que c'est nul

J'ai un script powershell qui mesure le temps de téléchargement sur certaines pages, mais j'ai l'erreur ci-dessus, je suis sûr que je fais de mal

erreur est

Ne peut pas lier argument de paramètre InputObject " parce que c'est nul.

function ResponseTime($CommonName,$URL, $environment) 
{ 
    $Times = 5
    $i = 0 
    $TotalResponseTime = 0 
      Write-HOst $URL
    While ($i -lt $Times) { 
        $Request = New-Object System.Net.WebClient 
        $Request.UseDefaultCredentials = $true 
        $Start = Get-Date 
        Write-HOst $URL
        $PageRequest = $Request.DownloadString($URL) 
        $TimeTaken = ((Get-Date) - $Start).TotalMilliseconds 
        $Request.Dispose() 
        $i ++ 
        $TotalResponseTime += $TimeTaken 
    } 

    $AverageResponseTime = $TotalResponseTime / $i 
    Write-Host Request to $CommonName took $AverageResponseTime ms in average -ForegroundColor Green 

    $details = @{            
        Date             = get-date              
        AverageResponseTime     = $AverageResponseTime              
        ResponseTime      = $Destination 
        Environment = $environment
    }                           
    $results += New-Object PSObject -Property $details
    $random = Get-Random -minimum 1 -maximum 30
    Start-Sleep -s $random
} 

#PRODUCTION
ResponseTime -commonname 'app homepage' -URL 'https://url1' -environment 'PRODUCTION'
ResponseTime -commonname 'department homepage' -URL 'https://url2' -environment 'PRODUCTION'

$results | export-csv -Path c:\so.csv -NoTypeInformation
  • Sur quelle ligne vous obtenez le message d'erreur? Qu'avez-vous essayez de déboguer votre code?
  • Avez-vous des guillemets autour du message après Write-Host? c'est à dire Write-Host "Request to $CommonName took $AverageResponseTime ms in average" -ForegroundColor Green
  • dans la dernière ligne que je viens d'ajouter à la question d'origine, je n'ai pas compris désolé.
  • ps. Pour info il est généralement recommandé d'éviter de Write-Host pour la plupart des scénarios; voir ce post pour plus d': stackoverflow.com/questions/38523369/...
  • Ouais, donc $results est vide. Il devrait être une liste d'objet de type vous permet d'ajouter vos articles.
  • NB: les Résultats est définie au sein de votre fonction; mais vous faites référence à l'extérieur de votre fonction; c'est à dire que vous êtes à la recherche à un autre (non défini/null) variable.
  • L' (écrire) la portée de la $results variable est à l'intérieur de votre fonction. Vous aurez besoin de donner $results une portée globale: $global:results (notez également que lorsque vous utilisez l'opérateur d'affectation d'addition (+=) la première instance va être $Null) ou mieux le retour de la $results de votre fonction et de l'attribuer à un mondial $results: $Results = ResponseTime -commonname 'app homepage' ... $Résultats += ResponseTime -commonname 'département de la page d'accueil de'...`
  • Est la dernière ligne qui a été ajouté à votre modifier vraiment la dernière ligne de votre code ou tout simplement placé là pour des fins pédagogiques?