powershell - 无法将参数绑定(bind)到参数 'InputObject',因为它为空

标签 powershell powershell-2.0 powershell-3.0

我有一个 powershell 脚本可以测量某些页面的下载时间,但是我收到上面的错误,我不确定我做错了什么

错误是

Cannot bind argument to parameter 'InputObject' because it is null.

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

最佳答案

查看您上次的编辑,似乎 $results 只是返回 $null (正如您的错误所述)

唯一的行设置$results$results += New-Object PSObject -Property $details

它不在您的 Export-CSV 调用范围内,即使在范围内,如果未调用此行,$results 也可能为空。

恕我直言,您应该将其设置为例如一个ArrayList如下:

$results = New-Object -TypeName System.Collections.ArrayList

并通过

添加项目
$times = ResponseTime -commonname '' #etc
$results.Add($times) | Out-Null

这将为您提供一个 ArrayList - 即使其中没​​有任何项目 - 也可以轻松将其转换为 CSV 和其他格式。

关于powershell - 无法将参数绑定(bind)到参数 'InputObject',因为它为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46605086/

相关文章:

azure - 用于从 Azure 文件共享还原 Azure SQL 数据库的 PowerShell 脚本

powershell - 如何在交互式 PowerShell 窗口中编写多行 "for"循环?

windows - PowerShell 检查服务是否被禁用

windows - 在 EC2 用户数据中调用 PowerShell 脚本不起作用

powershell - 使用带步骤的范围运算符

powershell - 无法使用 PowerShell 在任务计划程序中创建任务

batch-file - 将 PowerShell 脚本转换为不可读的格式

powershell - 如何转义 PowerShell 保留字?

powershell - Powershell属性计数

.net - 如何启动 Powershell session 并导入所有模块?