첫 번째 문제 (Java.exe가 실행 중임)
필자는 Java를 설치하기 위해 powershell 스크립트를 사용하는데, 다른 것들 중에서도 큰 3 브라우저를 닫습니다. 아래에 참조 용으로 붙여 넣습니다.
function Get-ScriptDirectory{
$Invocation = (Get-Variable MyInvocation -Scope 1).Value
try {
Split-Path $Invocation.MyCommand.Path -ea 0
}
catch {
Write-Warning 'You need to call this function from within a saved script.'
}
}
function Get-Architecture{
return $(gwmi win32_operatingsystem).OSArchitecture
}
$Path = Get-ScriptDirectory
#Close all instances of IE, Firefox, & Chrome
Get-Process | where {$_.ProcessName -match "iexplore"} | Stop-Process -Force
Get-Process | where {$_.ProcessName -match "chrome"} | Stop-Process -Force
Get-Process | where {$_.ProcessName -match "firefox"} | Stop-Process -Force
#Install
Start-Process -FilePath "$Path\jre-6u41-windows-i586.exe" -ArgumentList "/s /v`"/qb REBOOT=ReallySuppress JAVAUPDATE=0 WEBSTARTICON=0 SYSTRAY=0`"" -Wait
#Also Install the 64-bit JRE if on a 64 workstation
if(Get-Architecture -match "64")
{
Start-Process -FilePath "$Path\jre-6u41-windows-x64.exe" -ArgumentList "/s /v`"/qb REBOOT=ReallySuppress JAVAUPDATE=0 WEBSTARTICON=0 SYSTRAY=0`"" -Wait
}
#Import reg keys to disable auto updating
reg import "$Path\JavaUpdate.reg"
또한 32 비트 Java를 설치한다는 것을 알 수 있습니다. ...마다 운영 체제의 64 비트 검사 후 64 비트 시스템에 64 비트 Java를 설치합니다.
이 스크립트를 Java exes와 함께 패키지를 풀고 실행하는 sfx로 패키지합니다.
powershell.exe -executionpolicy bypass -noprofile -file C:\Temp\Java\install.ps1
귀하의 두 번째 질문에 대해, 자바가 자동 업데이트를 확인하는 두 개의 등록 키가 있습니다.
HKLM\SOFTWARE\JavaSoft\Java Update\Policy\EnableAutoUpdateCheck
HKLM\SOFTWARE\JavaSoft\Java Update\Policy\EnableJavaUpdate
그들 양자 모두 자동 업데이트를 사용하지 않으려면 0으로 설정해야합니다 (일부 Java 버전은 하나의 키를 읽고 일부는 다른 버전을 읽음). 스크립트에서 볼 수있는 것처럼 패키지와 함께 reg 키를 배포하지만 SCCM 2012s DCM을 사용하여 구성 항목으로 설정하고 수정 항목을 사용하여 항목이 항상 0인지 확인합니다.