Я пытаюсь настроить скрипт powershell, чтобы получить ключ шифрования.Компания размещает его на веб-сайте и ожидает, что мы будем получать его вручную каждые 6 месяцев, но я ленива и забывчива.Поэтому я написал сценарий для этого, который я планирую запускать каждые 3 месяца или около того.Вот что у меня есть:
$url ="http://www.theirwebsite.com/pgp/corp07272011Public.asc"
$client = new-object System.Net.WebClient
$proxy = New-Object System.Net.WebProxy("http://OurProxy:80")
$proxy.UseDefaultCredentials = $true
$client.proxy = $proxy
$client.DownloadFile( $url, ".\CorpPublicKey.asc" )
И это работает для их текущего ключа. НО , файл, который я загружаю, использует дату как часть своего имени.Когда наступит время 27.07.2011, предположительно новый ключ будет назван в честь 27.01.2011 или что-то похожее.
Так что это может быть простой проблемой .NET, но как мне найти, какие файлынет на сайте?Или есть совершенно лучший способ сделать это?
РЕДАКТИРОВАТЬ: хорошо, один из моментов, который я не упомянул, это то, что этот файл связан с известным веб-сайтом.Тааак ... Теоретически я мог бы проанализировать веб-страницу для ссылки, и использовать это, чтобы найти имя файла.Я опубликую код, когда / если я все улажу.
РЕДАКТИРОВАТЬ, часть Deux
Так что я понял это.
1) Вы не можете просто перечислить файлы на веб-сервере.Вот почему веб-мастера публикуют деревья файлов.Кроме того, у вас есть паук, просматривающий все ссылки на сайте.
2) Зная, что на веб-сайте всегда будет ссылка на мою цель, я выбираю веб-страницу, нахожу ссылку / имя файла и затем могу загрузить файл.
3) Правильный способ сделать это - проанализировать его в xml и затем найти в тегах привязки мою ссылку с помощью Xpath или чего-то еще.
4) Но это раздражает, поэтому я просто пересмотрел файл .asc и назвал его готовым.
$url ="http://www.theirwebsite.com/pgp/"
$client = new-object System.Net.WebClient
$proxy = New-Object System.Net.WebProxy("http://ourproxy:80")
$proxy.UseDefaultCredentials = $true
$client.proxy = $proxy
$webstring = $client.DownloadString( $url)
$webstring -match "aspecifcname.*asc"
$matches[0]
$url ="http://www.theircompany.com/pgp/" + $matches[0]
"url: " + $url
#Huh, we need to use the full path for downloading this file. .\ didn't cut it
$client.DownloadFile( $url, "C:\Program Files (x86)\theirCompany\savedKey.asc" )