powershell - tag - seo meta check
descargar contenido de url (6)
Como lo entiendo, intenta usar IE porque si envía automáticamente sus credenciales (o tal vez no sabía de ninguna otra opción).
El motivo por el que las respuestas anteriores no funcionan es porque intenta descargar un archivo de SharePoint y envía una solicitud no autenticada . La respuesta es 401.
Esto funciona:
PS>$wc=new-object system.net.webclient
PS>$wc.UseDefaultCredentials = $true
PS>$wc.downloadfile("your_url","your_file")
si el usuario actual de Posh tiene derechos para descargar el archivo (es el mismo que el registrado en IE).
Si no, prueba esto:
PS>$wc=new-object system.net.webclient
PS>$wc.Credentials = Get-Credential
PS>$wc.downloadfile("your_url","your_file")
Estoy trabajando en un script, donde puedo navegar por el contenido web o la ''url'' pero no puedo copiar el contenido web en él y descargarlo como un archivo. Esto es lo que he hecho hasta ahora:
$url = "http://sp-fin/sites/arindam-sites/_layouts/xlviewer.aspx?listguid={05DA1D91-F934-4419-8AEF-B297DB81A31D}&itemid=4&DefaultItemOpen=1"
$ie=new-object -com internetexplorer.application
$ie.visible=$true
$ie.navigate($url)
while($ie.busy) {start-sleep 1}
¿Cómo puedo copiar el contenido de $url
y guardarlo en un disco local como un archivo?
Actualizar:
Tengo estos errores:
Excepción al llamar a "DownloadFile" con "2" argumento (s): "El servidor remoto devolvió un error: (401) No autorizado." En: line: 6 char: 47 + (New-Object system.net.webclient) .Descargar archivo (<<<< "$ url / download-url-content", ''save.html'')
Falta '')'' en el método de llamada. En: line: 6 char: 68 + (New-Object system.net.webclient) .DownloadFile ("$ url", ''save.html'' <<<<
Excepción al llamar a "DownloadFile" con "2" argumento (s): "El servidor remoto devolvió un error: (401) No autorizado." En: line: 6 char: 47 + (New-Object system.net.webclient) .Descargar archivo (<<<< "$ url", ''save.html'')
Ok, déjame explicarte más sobre lo que estoy tratando de hacer: tengo un archivo de Excel en nuestro sitio de Share Point y este es el archivo que estoy tratando de descargar localmente (cualquier formato), que es una parte del script, así que para la parte posterior de la secuencia de comandos, puedo comparar este archivo con otros datos y obtener una salida.
Ahora, si puedo de alguna manera asignar "mis documentos" desde el sitio y poder descargar el archivo, eso también funcionará para mí.
Como ya se respondió en https://.com/a/35202299/4636579 , pero con un Proxy obligatorio y las credenciales. Sin proxy, sería:
$url="http://aaa.bbb.ccc.ddd/rss.xml"
$WebClient = New-Object net.webclient
$path="C:/Users/hugo/xml/test.xml"
$WebClient.DownloadFile($url, $path)
No conozco ninguna forma de guardar usando esa interfaz.
Hace esto la página correctamente:
PS>$wc=new-object system.net.webclient
PS>$wc.downloadfile("your_url","your_file")
Si solo quieres descargar contenido web, usa
(New-Object System.Net.WebClient).DownloadFile( ''download url content'', ''save.html'' )
Actualización de enero de 2014: Con Powershell v3, lanzado con Windows 8, puede hacer esto:
(Invoke-webrequest -URI "http://www.kernel.org").Content
Post original, válido para la versión 2 de Powershell
Esta solución es muy similar a las otras respuestas de stej, Jay Bazusi y Marco Shaw. Es un poco más general, al instalar un nuevo módulo en su directorio de módulos, psurl. El módulo psurl agrega nuevos comandos en caso de que tenga que hacer un montón de html-fetching (y POSTing) con powershell.
(new-object Net.WebClient).DownloadString("http://psget.net/GetPsGet.ps1") | iex
Consulte la página de inicio del sitio web de código compartido http://psget.net/ .
Esta buena línea de script de PowerShell descargará GetPsGet.ps1 y la enviará a Invoke-Expression para instalar el Módulo PsGet.
Luego instale PsUrl , un módulo Powershell inspirado en curl :
Para instalar algo (en nuestro caso PsUrl) desde el directorio central, simplemente escriba:
install-module PsUrl
get-module -name psurl
Salida:
ModuleType Name ExportedCommands
---------- ---- ----------------
Script psurl {Get-Url, Send-WebContent, Write-Url, Get-WebContent}
Mando:
get-command -module psurl
Salida:
CommandType Name Definition
----------- ---- ----------
Function Get-Url ...
Function Get-WebContent ...
Alias gwc Get-WebContent
Function Send-WebContent ...
Alias swc Send-WebContent
Function Write-Url ...
Necesitas hacer esto solo una vez.
Tenga en cuenta que este error puede ocurrir:
P: Error "No se puede cargar el archivo xxx porque la ejecución de scripts está deshabilitada en este sistema. Consulte" obtener ayuda sobre about_signing "para obtener más detalles".
R: De forma predeterminada, PowerShell restringe la ejecución de todos los scripts. Esto es todo acerca de la seguridad. Para "arreglar" esto ejecute PowerShell como Administrador y llame
Set-ExecutionPolicy RemoteSigned
De ahora en adelante, en sus nuevas sesiones / scripts de powershell, haga esto:
import-module psurl
get-url "http://www.google.com"
Para descargar y guardar en un archivo, haga esto:
get-url "http://www.google.com" | out-file -filepath "myfile.html"
$web = New-Object Net.WebClient
$web | Get-Member
$content=$web.DownloadString("http://www.bing.com")