Powershell 用于下载最新Adobe Reader DC更新的脚本

Powershell 用于下载最新Adobe Reader DC更新的脚本,powershell,adobe-reader,Powershell,Adobe Reader,我写了一个脚本,下载了最新版本的Adobe MUI DC,但我对解析不太满意。脚本开始于https://supportdownloads.adobe.com/new.jsp,然后进行一些解析,获取指向新站点的链接,解析并最终获取最终下载链接 我不确定这是不是最好的方法 $webclient = New-Object System.Net.WebClient $download_folder = 'E:\Adobe_Acrobat_Reader_DC_MUI\' $url = 'https://

我写了一个脚本,下载了最新版本的Adobe MUI DC,但我对解析不太满意。脚本开始于https://supportdownloads.adobe.com/new.jsp,然后进行一些解析,获取指向新站点的链接,解析并最终获取最终下载链接

我不确定这是不是最好的方法

$webclient = New-Object System.Net.WebClient

$download_folder = 'E:\Adobe_Acrobat_Reader_DC_MUI\'
$url = 'https://supportdownloads.adobe.com/support/downloads/'

    Write-Host "Downloading ...AdobeDC Update"
    try {
        If(!(Test-Path $download_folder)){
            New-Item -ItemType Directory -Force -Path "$download_folder"
        }

        $download_url = $url + ((Invoke-WebRequest $url'new.jsp').Links | where outertext -like '*MUI*Continuous*' | select href).href
        Write-Host $download_url

        $download_url = $url + ((Invoke-WebRequest $download_url).Links | where outertext -like '*proceed to download*' | select outertext, href).href.replace("amp;","")
        Write-Host $download_url

        $download_url = ((Invoke-WebRequest $download_url).Links | where outertext -like '*download now*' | select outertext, href).href 
        Write-Host $download_url

        if(!(Test-Path ($download_folder + $download_url.Split('/')[-1]))){
            $webclient.DownloadFile($download_url, $download_folder + $download_url.Split('/')[-1])
        }
    } catch {
        Throw($_.Exception)
    }
Adobe有一个专门针对将软件部署到多台计算机上的企业而不是最终用户自己更新自己的计算机的应用程序

对于,有一个针对企业安装程序的部分:

Adobe为enterprise IT提供了一个包含所有可用安装程序的下载站点。大多数管理员从或Acrobat下载产品、更新和修补程序

FTP链接是获取最新版本比抓取多个网站容易得多的方法

您只需要打开ftp站点ftp://ftp.adobe.com/pub/adobe/reader/win/AcrobatDC/,获取目录列表,选择最新文件夹,然后下载*MUI安装程序

因此,目前您将下载:

ftp://ftp.adobe.com/pub/adobe/reader/win/AcrobatDC/1801120036/AcroRdrDCUpd1801120036_MUI.msp

这种技术可以用于几乎任何Adobe产品,因为它们都是可用的:

出于好奇,我编写了一个基本脚本,从ftp站点获取最新文件:

$DownloadFolder=E:\Adobe\u Acrobat\u Reader\u DC\u MUI\ $FTPFolderUrl=ftp://ftp.adobe.com/pub/adobe/reader/win/AcrobatDC/ 连接到ftp,并获取目录列表 $FTPRequest=[System.Net.FtpWebRequest]::创建$FTPFolderUrl $FTPRequest.Method=[System.Net.WebRequestMethods+Ftp]::ListDirectory $FTPRESSONSE=$FTPRequest.GetResponse $ResponseStream=$FTPResponse.GetResponseStream $FTPReader=新对象System.IO.Streamreader-参数列表$ResponseStream $DirList=$FTPReader.ReadToEnd 从目录列表中获取列表中的最后一项,但跳过一项以避免“misc”目录 $LatestUpdate=$DirList-split'[\r\n]'|其中{$}| Select-Last 1-跳过1 生成文件名 $LatestFile=acrordcupd+$LatestUpdate+\u MUI.msp 为最新文件生成下载url $DownloadURL=$FTPFolderUrl$LatestUpdate/$LatestFile 下载文件 新对象系统.Net.WebClient.DownloadFile$DownloadURL,$DownloadFolder$LatestFile Adobe有一个专门针对将软件部署到多台计算机上的企业而不是最终用户自己更新自己的计算机的应用程序

对于,有一个针对企业安装程序的部分:

Adobe为enterprise IT提供了一个包含所有可用安装程序的下载站点。大多数管理员从或Acrobat下载产品、更新和修补程序

FTP链接是获取最新版本比抓取多个网站容易得多的方法

您只需要打开ftp站点ftp://ftp.adobe.com/pub/adobe/reader/win/AcrobatDC/,获取目录列表,选择最新文件夹,然后下载*MUI安装程序

因此,目前您将下载:

ftp://ftp.adobe.com/pub/adobe/reader/win/AcrobatDC/1801120036/AcroRdrDCUpd1801120036_MUI.msp

这种技术可以用于几乎任何Adobe产品,因为它们都是可用的:

出于好奇,我编写了一个基本脚本,从ftp站点获取最新文件:

$DownloadFolder=E:\Adobe\u Acrobat\u Reader\u DC\u MUI\ $FTPFolderUrl=ftp://ftp.adobe.com/pub/adobe/reader/win/AcrobatDC/ 连接到ftp,并获取目录列表 $FTPRequest=[System.Net.FtpWebRequest]::创建$FTPFolderUrl $FTPRequest.Method=[System.Net.WebRequestMethods+Ftp]::ListDirectory $FTPRESSONSE=$FTPRequest.GetResponse $ResponseStream=$FTPResponse.GetResponseStream $FTPReader=新对象System.IO.Streamreader-参数列表$ResponseStream $DirList=$FTPReader.ReadToEnd 从目录列表中获取列表中的最后一项,但跳过一项以避免“misc”目录 $LatestUpdate=$DirList-split'[\r\n]'|其中{$}| Select-Last 1-跳过1 生成文件名 $LatestFile=acrordcupd+$LatestUpdate+\u MUI.msp 为最新文件生成下载url $DownloadURL=$FTPFolderUrl$LatestUpdate/$LatestFile 下载文件 新对象系统.Net.WebClient.DownloadFile$DownloadURL,$DownloadFolder$LatestFile
是的,你说得对。不知道为什么我一开始没有使用ftp链接。我将更改脚本以使用ftpI。我刚刚用一些基本代码更新了我的答案,以从ftpuh获取文件,谢谢!我仍然在将目录列表放入一个表中,以便对其进行排序;$FTPReader.ReadToEnd中的目录列表实际上是一个多行字符串,因此需要将其放入数组中,然后才能对其进行排序,-split用于执行此操作。是的,您是对的。不知道为什么我一开始没有使用ftp链接。我将更改脚本以使用ftpI。我刚刚用一些基本代码更新了我的答案,以从ftpuh获取文件,谢谢!我仍然无法得到我想要的目录列表 把它放在一张桌子上,这样我就可以把它分类了;$FTPReader.ReadToEnd中的目录列表实际上是一个多行字符串,因此需要将其放入数组中,然后才能对其进行排序,-split用于执行此操作。