El contenido de la respuesta no se puede analizar porque el motor de Internet Explorer no está disponible, o
Necesito descargar una serie del canal 9 usando powershell, sin embargo los scripts que he probado tienen errores:
este guión
$url="https://channel9.msdn.com/blogs/OfficeDevPnP/feed/mp4high" $rss=invoke-webrequest -uri $url $destination="D:\Videos\OfficePnP" [xml]$rss.Content|foreach{ $_.SelectNodes("rss/channel/item/enclosure") }|foreach{ "Checking $($_.url.split("/")[-1]), we will skip it if it already exists in $($destination)" if(!(test-path ($destination + $_.url.split("/")[-1]))){ "Downloading: " + $_.url start-bitstransfer $_.url $destination } }
falló con error:
El contenido de la respuesta no se puede analizar porque el motor de Internet Explorer no está disponible o la configuración de primer inicio de Internet Explorer no está completa. Especifique el parámetro UseBasicParsing e inténtelo de nuevo.
También probé este
# --- settings --- $feedUrl = "https://channel9.msdn.com/blogs/OfficeDevPnP/feed/mp4high" $mediaType = "mp4high" $overwrite = $false $destinationDirectory = join-path ([Environment]::GetFolderPath("MyDocuments")) "OfficeDevPnP" # --- locals --- $webClient = New-Object System.Net.WebClient # --- functions --- function PromptForInput ($prompt, $default) { $selection = read-host "$prompt`r`n(default: $default)" if ($selection) {$selection} else {$default} } function DownloadEntries { param ([string]$feedUrl) $feed = [xml]$webClient.DownloadString($feedUrl) $progress = 0 $pagepercent = 0 $entries = $feed.rss.channel.item.Length $invalidChars = [System.IO.Path]::GetInvalidFileNameChars() $feed.rss.channel.item | foreach { $url = New-Object System.Uri($_.enclosure.url) $name = $_.title $extension = [System.IO.Path]::GetExtension($url.Segments[-1]) $fileName = $name + $extension $invalidchars | foreach { $filename = $filename.Replace($_, ' ') } $saveFileName = join-path $destinationDirectory $fileName $tempFilename = $saveFilename + ".tmp" $filename if ((-not $overwrite) -and (Test-Path -path $saveFileName)) { write-progress -activity "$fileName already downloaded" -status "$pagepercent% ($progress / $entries) complete" -percentcomplete $pagepercent } else { write-progress -activity "Downloading $fileName" -status "$pagepercent% ($progress / $entries) complete" -percentcomplete $pagepercent $webClient.DownloadFile($url, $tempFilename) rename-item $tempFilename $saveFileName } $pagepercent = [Math]::floor((++$progress)/$entries*100) } } # --- do the actual work --- [string]$feedUrl = PromptForInput "Enter feed URL" $feedUrl [string]$mediaType = PromptForInput "Enter media type`r`n(options:Wmv,WmvHigh,mp4,mp4high,zune,mp3)" $mediaType $feedUrl += $mediaType [string]$destinationDirectory = PromptForInput "Enter destination directory" $destinationDirectory # if dest dir doesn't exist, create it if (!(Test-Path -path $destinationDirectory)) { New-Item $destinationDirectory -type directory } DownloadEntries $feedUrl
con demasiados errores
http://screencast.com/t/bgGd0s98Uc
En su solicitud web de invocación simplemente use el parámetro-UseBasicParsing
por ejemplo, en su script (línea 2) debe usar:
$rss = Invoke-WebRequest -Uri $url -UseBasicParsing
Según la documentación , este parámetro es necesario en sistemas donde IE no está instalado o configurado:
Utiliza el objeto de respuesta para contenido HTML sin análisis del modelo de objetos de documento (DOM). Este parámetro es necesario cuando Internet Explorer no está instalado en las computadoras, como en una instalación Server Core de un sistema operativo Windows Server.
Para que funcione sin modificar sus scripts:
Encontré una solución aquí: http://wahlnetwork.com/2015/11/17/solving-the-first-launch-configuration-error-with-powershells-invoke-webrequest-cmdlet/
Probablemente el error surja porque IE aún no se ha iniciado por primera vez, lo que muestra la siguiente ventana. Ejecútelo y pase por esa pantalla, y luego el mensaje de error ya no aparecerá. No es necesario modificar ningún script.