2016-05-12 7 views
0

Ich bin vor einem Problem, wenn eine Datei mit einem Powershell-Skript zum Download versuchen:eine Datei Form dynamische URL herunterladen

Das Problem ist, dass der Name der Datei dynamisch ändert, also bin ich nicht sicher, wie zu definieren, der URL-Pfad

Zum Beispiel würde Ich mag eine Datei zum Download von „http://definitions.symantec.com/defs/jdb/ FILE_NAME“, aber den Namen der Datei (zB „2wer123.jdb“) Änderungen jeden Tag.

Im Folgenden können Sie das Skript sehen, an dem ich gerade arbeite. Ich weiß jedoch nicht, wie ich eine Lösung für den dynamischen Namen implementieren soll.

$source = "http://definitions.symantec.com/defs/jdb/*.jdb"; 
$dest = "F:\Program Files (x86)\xXXXXXx\xXXXXXx\xXXXx\xXXx\content\incoming\virus_def.jdb"; 
$secPasswd = ConvertTo-SecureString "adfasfdasfl" -AsPlainText -Force 
$myCreds = New-Object System.Management.Automation.PSCredential -ArgumentList "sadfas.sdafasf.sfdasdfaf.sfs.sdfs\Administrator", $secPasswd 
$Test = Invoke-WebRequest -Uri $source -OutFile $dest -Proxy 'http:\\sdfs.sdfs.sadfsa:8080' -ProxyCredential $mycreds 

Antwort

1

Um diesen Link die aktuelle Definition Link von this page wie Andrey Marchuk suggests

$path = "https://www.symantec.com/security_response/definitions/download/detail.jsp?gid=sep" 
$definitionPath = (Invoke-WebRequest $path).Links | 
    Where-Object{$_.InnerText -like "*.jdb" -and $_.InnerText -notlike "*core*"} | 
    Select-Object -ExpandProperty href 

analysieren müssen zu bekommen Was es auf der Seite alle Links übernimmt und die eine Rückkehr (??) das hat einen Link, der in "jdb" endet, aber nicht "core" enthält (beide sind aufgeführt). Jetzt enthält $definitionPath den Pfad, den Sie suchen und jetzt herunterladen können.

Ich glaube, dass Sie PowerShell 3.0 benötigen, damit dies funktioniert.

1

Ihr Skript funktioniert nicht, weil Sie kein Platzhalterzeichen über HTTP verwenden können. Was Sie tun können, ist eine Seite zu finden, die den Link auf die aktuelle Version der Datei hat, wie: https://www.symantec.com/security_response/definitions/download/detail.jsp?gid=sep

Von dort auf I 2 Wege, um den Dateinamen denken:

  1. die Seite herunterladen und analysieren ist der Link
  2. Auf dieser Seite gibt es FTP-Link zu der gleichen Datei. Sie können Ihre Datei über FTP herunterladen oder zumindest die Dateien auflisten und den Dateinamen erhalten.