Powershell中的属性错误

时间:2013-09-10 20:16:01

标签: powershell browser teamcity

我的PS代码有问题,我必须每周二在teamcity开始我的浏览器测试!我写了一个功能,它在我的服务器上使用凭据并尝试对其进行测试

function HTTP-GetRequest($url, $username, $password)
{
 $properties = Resolve-Path "C:\Users\Uladzimir_Vaitsiakho\Documents\CI\Build\CI_2.0\vsphere\properties.ps1"
Write-Host $properties
. $properties

    $webRequest = [System.Net.WebRequest]::Create($url)
    $webRequest.Credentials = New-Object System.Net.NetworkCredential -ArgumentList $username, $password 


    $webRequest.PreAuthenticate = $true
    $webRequest.Headers.Add("AUTHORIZATION", "Basic");

    [System.Net.WebResponse] $resp = $webRequest.GetResponse();
    $rs = $resp.GetResponseStream();
    [System.IO.StreamReader] $sr = New-Object System.IO.StreamReader -argumentList $rs;
    [string] $results = $sr.ReadToEnd();

    return $results
}
if (($today.DayOfWeek) -eq "Tuesday")
{
    if ($env:Browser -eq "Firefox"){
            $url = "http://1111111/httpAuth/action.html?add2Queue=bt6&&env.name=Browser&env.value=Chrome"
            HTTP-GetRequest $url, $teamcity_username, $teamcity_password
            Write-Host $teamcity_password
    Write-Host  $teamcity_username


    }
    if ($env:Browser -eq "Chrome"){
        $url = "http://11111/httpAuth/action.html?add2Queue=bt6&&env.name=Browser&env.Value=InternetExplorer"
        HTTP-GetRequest $url, $teamcity_username, $teamcity_password
    }
}

并且有下一个麻烦的输出,但是我给我的功能提供了属性和凭据的文件,这可能是错的?!

无法转换参数“0”,值为:“System.Object []”,“Create”键入“System.Uri”:“无法转换”System.Object []“类型”System“的值。对象[]“键入”System.Uri“。” 在C:\ Users \ Uladzimir_Vaitsiakho \ Documents \ qw.ps1:6 char:47 + $ webRequest = [System.Net.WebRequest] :: Create<<<< ($网址)     + CategoryInfo:NotSpecified:(:) [],MethodException     + FullyQualifiedErrorId:MethodArgumentConversionInvalidCastArgument

在此对象上找不到属性“凭据”;确保它存在且可设置。 在C:\ Users \ Uladzimir_Vaitsiakho \ Documents \ qw.ps1:7 char:14 + $ webRequest。 <<<< Credentials = New-Object System.Net.NetworkCredential -ArgumentList $ username,$ password     + CategoryInfo:InvalidOperation :( Credentials:String)[],RuntimeException     + FullyQualifiedErrorId:PropertyNotFound

在此对象上找不到属性'PreAuthenticate';确保它存在且可设置。 在C:\ Users \ Uladzimir_Vaitsiakho \ Documents \ qw.ps1:10 char:14 + $ webRequest。 <<<< PreAuthenticate = $ true     + CategoryInfo:InvalidOperation:(PreAuthenticate:String)[],RuntimeException     + FullyQualifiedErrorId:PropertyNotFound

您无法在空值表达式上调用方法。 在C:\ Users \ Uladzimir_Vaitsiakho \ Documents \ qw.ps1:11 char:25 + $ webRequest.Headers.Add<<<< (“AUTHORIZATION”,“Basic”);     + CategoryInfo:InvalidOperation :( Add:String)[],RuntimeException     + FullyQualifiedErrorId:InvokeMethodOnNull

您无法在空值表达式上调用方法。 在C:\ Users \ Uladzimir_Vaitsiakho \ Documents \ qw.ps1:13 char:58 + [System.Net.WebResponse] $ resp = $ webRequest.GetResponse<<<< ();     + CategoryInfo:InvalidOperation:(GetResponse:String)[],RuntimeException     + FullyQualifiedErrorId:InvokeMethodOnNull

您无法在空值表达式上调用方法。 在C:\ Users \ Uladzimir_Vaitsiakho \ Documents \ qw.ps1:14 char:31 + $ rs = $ resp.GetResponseStream<<<< ();     + CategoryInfo:InvalidOperation:(GetResponseStream:String)[],RuntimeException     + FullyQualifiedErrorId:InvokeMethodOnNull

New-Object:找不到构造函数。找不到类型System.IO.StreamReader的适当构造函数。 在C:\ Users \ Uladzimir_Vaitsiakho \ Documents \ qw.ps1:15 char:43 + [System.IO.StreamReader] $ sr = New-Object<<<< System.IO.StreamReader -argumentList $ rs;     + CategoryInfo:ObjectNotFound:(:) [New-Object],PSArgumentException     + FullyQualifiedErrorId:CannotFindAppropriateCtor,Microsoft.PowerShell.Commands.NewObjectCommand

您无法在空值表达式上调用方法。 在C:\ Users \ Uladzimir_Vaitsiakho \ Documents \ qw.ps1:16 char:35 + [string] $ results = $ sr.ReadToEnd<<<< ();     + CategoryInfo:InvalidOperation:(ReadToEnd:String)[],RuntimeException     + FullyQualifiedErrorId:InvokeMethodOnNull

1 个答案:

答案 0 :(得分:1)

目前,对HTTP-GetRequest的调用是将一个对象数组($url, $teamcity_username , $teamcity_password)传递给该函数。从函数调用中删除逗号:

HTTP-GetRequest $url $teamcity_username $teamcity_password