Page 1 of 1

Update for Microsoft Silverlight (KB3056819)

PostPosted: 12.05.2015, 21:59
by harry
Update for Microsoft Silverlight (KB3056819) (version 5.1.40416.0 - 2015-05-12)

Es gibt wohl keine explizite Downloadseite für dieses Update, daher stammen die folgenden URLs von der Seite "Get Silverlight":
Code: Select all
http://silverlight.dlservice.microsoft.com/download/B/D/C/BDCE18B1-73C1-47BA-9B11-46A4C14CF7B0/40416.00/Silverlight.exe
http://silverlight.dlservice.microsoft.com/download/B/D/C/BDCE18B1-73C1-47BA-9B11-46A4C14CF7B0/40416.00/Silverlight_x64.exe


[EDIT] 2015-05-14
Entsprechende Downloadseite (KB3056819) im Download-Center

Code: Select all
http://download.microsoft.com/download/B/D/C/BDCE18B1-73C1-47BA-9B11-46A4C14CF7B0/40416.00/Silverlight.exe
http://download.microsoft.com/download/B/D/C/BDCE18B1-73C1-47BA-9B11-46A4C14CF7B0/40416.00/Silverlight_x64.exe

[/EDIT]

Re: Update for Microsoft Silverlight (KB3056819)

PostPosted: 13.05.2015, 05:04
by aker
Können wir nicht eine Implementierung verwenden, die den Link aus der wsusscn2.cab ausliest?
Er ist darin enthalten (im Resultat der ExtractDownloadLinks-all.txt). Das würde die manuelle Aktualisierung ersparen.

Viele Grüße

Re: Update for Microsoft Silverlight (KB3056819)

PostPosted: 18.05.2015, 11:55
by WSUSUpdateAdmin
Moin!

aker wrote:Können wir nicht eine Implementierung verwenden, die den Link aus der wsusscn2.cab ausliest?
Er ist darin enthalten (im Resultat der ExtractDownloadLinks-all.txt). Das würde die manuelle Aktualisierung ersparen.


Würd' ich auch gern machen, geht aber leider deswegen nicht:
Code: Select all
http://download.windowsupdate.com/c/msdownload/update/software/secu/2015/05/silverlight_x64_2f3040e5f7028c2d42cff848f361c06f3d237376.exe
http://download.windowsupdate.com/c/msdownload/update/software/secu/2013/07/silverlight_x64_5791a4f1e1a399947079a2582046e6167ddb040d.exe
http://download.windowsupdate.com/msdownload/update/software/secu/2012/04/silverlight_x64_e799ce3c7e730ff6baf6020caf0351922733eb38.exe 
http://download.windowsupdate.com/msdownload/update/software/secu/2013/02/silverlight_x64_9428ac799e3df919fce3a67b9fa3ae91413ede75.exe 
http://download.windowsupdate.com/c/msdownload/update/software/uprl/2014/07/silverlight_x64_5454efe70e6ad8a225a4bbfdcec5fa0a43e4ced0.exe
http://download.windowsupdate.com/c/msdownload/update/software/secu/2013/10/silverlight_x64_dc33546e8492fdb5ae0ab2a3a3ebdc681263abe2.exe
http://download.windowsupdate.com/d/msdownload/update/software/secu/2014/02/silverlight_x64_5ae9c457e2efac6c943f23045b2f0eeea484d7f9.exe


Gruß
Torsten

Re: Update for Microsoft Silverlight (KB3056819)

PostPosted: 18.05.2015, 12:38
by WSUSUpdateAdmin
Danke, harry, hab' ich jetzt drin. :)

Gruß
Torsten

Re: Update for Microsoft Silverlight (KB3056819)

PostPosted: 18.05.2015, 20:02
by aker
Silverlight wird auch unter den superseded Updates geführt. Damit konnten bis auf drei Links alle herausgefiltert werden. Die letzten könnten mittels statische Definition oder folgendem Code eliminiert werden:

.\Silverlight_test.cmd
Code: Select all
@echo off
setlocal ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION

cscript.exe //Nologo //E:vbs .\cmd\XSLT.vbs ".\package.xml" .\xslt\silverlight_x86.xsl ".\tmp\Silverlight-x86_all.txt"
cscript.exe //Nologo //E:vbs .\cmd\XSLT.vbs ".\package.xml" .\xslt\silverlight_x64.xsl ".\tmp\Silverlight-x64_all.txt"

%SystemRoot%\System32\findstr.exe /L /I /V /G:".\ExcludeList-superseded.txt" ".\tmp\Silverlight-x86_all.txt" >".\tmp\Silverlight-x86_nos.txt"
%SystemRoot%\System32\findstr.exe /L /I /V /G:".\ExcludeList-superseded.txt" ".\tmp\Silverlight-x64_all.txt" >".\tmp\Silverlight-x64_nos.txt"
del ".\tmp\Silverlight-x86_all.txt"
del ".\tmp\Silverlight-x64_all.txt"

for /f "delims=" %%f in (.\tmp\Silverlight-x86_nos.txt) do (
  cscript //Nologo //E:vbs .\cmd\GetDateFromURL.vbs %%f >>.\tmp\Silverlight-x86_withdate.txt
)
for /f "delims=" %%f in (.\tmp\Silverlight-x64_nos.txt) do (
  cscript //Nologo //E:vbs .\cmd\GetDateFromURL.vbs %%f >>.\tmp\Silverlight-x64_withdate.txt
)
del ".\tmp\Silverlight-x86_nos.txt"
del ".\tmp\Silverlight-x64_nos.txt"

set olddate=0
set mostrecentlink=
for /f "tokens=1,2 delims=;" %%a in (.\tmp\Silverlight-x86_withdate.txt) do (
  if !olddate! LSS %%b (
    set olddate=%%b
    set mostrecentlink=%%a
  )
)
echo %mostrecentlink%>.\Silverlight-x86.txt
set olddate=0
set mostrecentlink=
for /f "tokens=1,2 delims=;" %%a in (.\tmp\Silverlight-x64_withdate.txt) do (
  if !olddate! LSS %%b (
    set olddate=%%b
    set mostrecentlink=%%a
  )
)
echo %mostrecentlink%>.\Silverlight-x64.txt
del ".\tmp\Silverlight-x86_withdate.txt"
del ".\tmp\Silverlight-x64_withdate.txt"

endlocal


.\cmd\GetDateFromURL.vbs
Code: Select all
Option Explicit
Dim strInput, arrInput
If WScript.Arguments.Count < 1 Then
  WScript.Echo("ERROR: Missing argument.")
  WScript.Echo("Usage: " & WScript.ScriptName & " <URL>")
  WScript.Quit(1)
End If
strInput = WScript.Arguments(0)
If strInput = "" Then
  WScript.Quit(1)
End If
If InStr(strInput, "/") = 0 Or InStr(strInput, "http") <> 1 Then
  WScript.Quit(1)
End If
arrInput = Split(strInput, "/", -1, vbTextCompare)
WScript.Echo(strInput & ";" & arrInput(UBound(arrInput) - 2) & arrInput(UBound(arrInput) - 1))
WScript.Quit(0)


.\cmd\XSLT.vbs
<aus wsusou>

.\xslt\Silverlight_x64.xsl
Code: Select all
<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" encoding="UTF-8"/>
                       
<xsl:template match="*">
  <xsl:choose>
    <xsl:when test="name()='FileLocation'">
     <xsl:if test="contains(@Url, '/silverlight') and contains(@Url, '_x64') and not(contains(@Url, '_sdk') or contains(@Url, '_developer')) and contains(@Url, '.exe')">
        <xsl:value-of select="@Url"/>
        <xsl:text>&#10;</xsl:text>
     </xsl:if>
    </xsl:when>
    <xsl:otherwise>
      <xsl:apply-templates select="*"/>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>

</xsl:transform>


.\xslt\Silverlight_x86.xsl
Code: Select all
<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" encoding="UTF-8"/>
                       
<xsl:template match="*">
  <xsl:choose>
    <xsl:when test="name()='FileLocation'">
     <xsl:if test="contains(@Url, '/silverlight') and not(contains(@Url, '_x64') or contains(@Url, '_sdk') or contains(@Url, '_developer')) and contains(@Url, '.exe')">
        <xsl:value-of select="@Url"/>
        <xsl:text>&#10;</xsl:text>
     </xsl:if>
    </xsl:when>
    <xsl:otherwise>
      <xsl:apply-templates select="*"/>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>

</xsl:transform>


Die package.xml ist die aus der wsusscn2.cab und die ExcludeList-superseded.txt ist die ExcludeList von wsusou.

Das Resultat sieht so aus:
Code: Select all
http://download.windowsupdate.com/c/msdownload/update/software/secu/2015/05/silverlight_x64_2f3040e5f7028c2d42cff848f361c06f3d237376.exe

Code: Select all
http://download.windowsupdate.com/c/msdownload/update/software/secu/2015/05/silverlight_5e77fd1cd6ebcc223b0ba9d6aab9e8f2c3093937.exe


Dies ist nur ein auf die Schnelle zusammengecodeter Ansatz, der aus dem Link
http://download.windowsupdate.com/c/msdownload/update/software/secu/2015/05/silverlight_5e77fd1cd6ebcc223b0ba9d6aab9e8f2c3093937.exe
das Jahr und den Monat herausextrahiert und daraus den neusten Link ermittelt. Ich bin mir nicht sicher, ob dieser Code optimal arbeitet, aber er liefert das Resultat, was er liefern soll.

Viele Grüße

Re: Update for Microsoft Silverlight (KB3056819)

PostPosted: 21.05.2015, 15:42
by WSUSUpdateAdmin
Danke für Deine Mühe, aker!

Ich weiß, dass das so oder ähnlich funktionieren würde, aber angesichts der Unwägbarkeiten (MS-"superseded"-Pflege etc.) und der zu erwartenden Silverlight-Aktualisierungsfrequenz (einmal im Jahr?) scheue ich den Aufwand und reiche lieber via http://download.wsusoffline.net/StaticD ... dified.txt eine aktualisierte Datei http://download.wsusoffline.net/StaticD ... 86-glb.txt nach, wie gerade geschehen.

Viele Grüße,
Torsten