'调用-的WebRequest'在提示时工作正常但在通过Jenkins执行时失败

时间:2016-07-31 08:43:55

标签: powershell jenkins

我正在使用PowerShell脚本从网页获取动态文件名。

当我在PowerShell提示符下运行代码时,它返回文件名的输出,例如#!/usr/local/bin/perl open file, "EDCNDC-Daily-Volume-Forecast_Ops Forecast by Shift.csv" or die $!; #Opens File or returns error thrown ($!) while ( <file> ) { if ( $. < 4 ) { print ""; } elsif ( $. > 8 ) { print ""; } elsif ( $_ =~ /^\,\,\,\,/ ) { print substr( $_, 4 ); } else { print $_; } } close file

$VMProperties = Import-Csv $PathTocsv -Delimiter ";";
foreach ($Property in $VMProperties){
   $NumberOfCPU = $Property.NumberOfCPU;
   $MemoryGB = $Property.MemoryGB;
   $MachineMacAddress = $Property.MachineMacAddress;

   Write-Host $NumberOfCPU;
   Write-Host $MemoryGB;
   Write-Host $MachineMacAddress;

    $OldmacAddress = (Get-VM -Name $VMName | Get-VMNetworkAdapter).MacAddress
  Write-Host "OldMacAddress is $OldmacAddress";
    Get-VM -Name $VMName | Set-VMNetworkAdapter -StaticMacAddress  $MachineMacAddress
  $NewMacAddress = (Get-VM -Name $VMName | Get-VMNetworkAdapter).MacAddress
  Write-Host "OldMacAddress is $NewMacAddress";

  $OldProcessorCount = (Get-VM -Name $vmname).ProcessorCount
  $OldMemoryAssined = (Get-VM -Name $vmname).MemoryAssigned
  Write-Host "OldProcessorCount is $OldProcessorCount";
  Write-Host "OldMemoryAssined is $OldMemoryAssined";
  Write-Host "OldProcessorCount is $NewProcessorCount";
  Set-VM –MemoryAssigned $MemoryGB -ProcessorCount $NumberOfCPU;
  $NewProcessorCount = (Get-VM -Name $vmname).ProcessorCount
  $NewMemoryAssined = (Get-VM -Name $vmname).MemoryAssigned

}

Start-VM -Name $VMName

然后我将代码复制到执行PowerShell脚本的Jenkins作业。

这里没有返回文件名,我看到下面的错误:

  

Invoke-WebRequest:无法解析响应内容,因为Internet Explorer引擎不可用,或者Internet Explorer的首次启动配置未完成....

我已尝试将abcxyz.jpeg替换为((Invoke-WebRequest -Uri ‘http://myurl.x.y/abc/pqr/’).Links | Where innerHTML -like “abc*.jpeg”).href ,使用Invoke-WebRequest等。有些网站建议打开并配置Internet Explorer,这已经完成了,不过我也试过了。< / p>

Jenkins Job与用户Administrator一起运行。所有其他PowerShell命令,如读取文件,更新文件都可以正常工作,但我只能在上面的命令中得到错误。

因此,如果wget从PowerShell命令提示符正常工作,那么为什么它不能通过Jenkins作业工作? PowerShell脚本在我执行作业的同一台机器上执行。

我认为这更多地与Jenkins环境有关,请提供建议。

2 个答案:

答案 0 :(得分:0)

正在搜索&#34; Internet Explorer的首次启动配置尚未完成&#34; 我遇到了a link! 。需要按照步骤来解决它。但是我的Windows 2012服务器,我无法找到组策略对象对话框窗口。

然后遇到了link!找到组策略对象窗口。

步骤在命令行窗口中(运行gpedit.msc并单击确定)

滚动浏览附加图片enter image description here中突出显示的部分,然后打开&#34;阻止运行首次运行向导&#34;。一旦你能够打开它。按照第一个链接中的步骤进行操作。

答案 1 :(得分:0)

几天前我遇到了类似的问题,我通过在“Invoke-WebRequest”调用中应用代理设置解决了这个问题。

像这样;

Invoke-WebRequest -URI $url -Proxy 'http://10.10.7.11:80' -ProxyCredential $creds