静默 Java 更新检查

rik*_*rik 5 windows java powershell vbscript automatic-update

如何在没有jusched.exe进程一直在后台运行并控制何时检查更新的情况下自动更新 Java ?

rik*_*rik 7

假设:

  • 视窗 7 64 位
  • Java 32 位

禁用 Java 自动更新:更改 Java 更新选项


使用以下内容创建java_check_update.ps1 PowerShell 脚本:

$currVer = Get-ItemProperty "hklm:\SOFTWARE\Wow6432Node\JavaSoft\Java Runtime Environment" -name "CurrentVersion"

if (!$currVer.'CurrentVersion') {
    Exit
}

$famVerStr = ('Java' + $currVer.'CurrentVersion'.Split(".")[1] + 'FamilyVersion')
$famVer = Get-ItemProperty "hklm:\SOFTWARE\Wow6432Node\JavaSoft\Java Runtime Environment" -name $famVerStr

if (!$famVer.$famVerStr) {
    Exit
}

$java_version = $famVer.$famVerStr

$url = "http://javadl-esd.sun.com/update/" + $currVer.'CurrentVersion' + ".0/map-" + $currVer.'CurrentVersion' + ".0.xml"

$c = New-Object System.Net.WebClient
$xml = $c.DownloadString($url)

$p = [xml]$xml
$n = $p.SelectSingleNode('java-update-map/mapping[version="' + $java_version + '"]')

if ($n) {
    #update available
    cmd.exe /c "C:\Program Files (x86)\Common Files\Java\Java Update\jucheck.exe"
}
Run Code Online (Sandbox Code Playgroud)

使用以下内容创建java_check_update.vbs VBScript:

Set oShell = CreateObject("WScript.Shell")
oShell.Run "powershell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -File ""PATH_TO_POWERSHELL_SCRIPT""", 0
Run Code Online (Sandbox Code Playgroud)

PATH_TO_POWERSHELL_SCRIPT例如:D:\Scripts\java_check_update.ps1


在任务计划程序中添加新任务以每天、每周或每月运行脚本java_check_update.vbs(文件的完整路径)。