সমস্ত সান জাভা সংস্করণ আনইনস্টল করতে ব্যাচের ফাইল?


11

আমি জাভাটি আমাদের অফিসে আপ টু ডেট রাখার জন্য একটি সিস্টেম স্থাপন করছি। প্রত্যেকের কাছে জাভা সম্পর্কিত বিভিন্ন সংস্করণ রয়েছে যার মধ্যে অনেকগুলি পুরানো এবং অনিরাপদ এবং কিছুটি ১.৪ পর্যন্ত ডেটে রয়েছে। আমার কাছে একটি সিস্টেম সেন্টার এসেনশিয়ালস সার্ভার রয়েছে যা নিঃশব্দে একটি .msi ফাইল চালাতে পারে এবং আমি ইতিমধ্যে পরীক্ষা করেছি যে এটি সর্বশেষতম জাভা ইনস্টল করতে পারে। তবে পুরাতন সংস্করণগুলি (যেমন 1.4) ইনস্টলার দ্বারা মুছে ফেলা হয় না, তাই আমার সেগুলি আনইনস্টল করা দরকার। সবাই উইন্ডোজ এক্সপি চালাচ্ছেন।

পরিষ্কার কাকতালীয় বিষয় হ'ল সান কেবল ওরাকল কিনেছিলেন এবং ওরাকল এখন "সান" এর সমস্ত উদাহরণ জাভাতে "ওরাকল" এ বদলে দিয়েছেন। সুতরাং, আমি সর্বশেষে জাভা আনইনস্টল করার বিষয়ে সুবিধাজনকভাবে চিন্তা করতে পারি না, কারণ আমি কেবল একটি অনুসন্ধান করতে পারি এবং সমস্ত সান জাভা প্রোগ্রাম আনইনস্টল করতে পারি ।

আমি একটি ফোরাম পোস্টে নিম্নলিখিত ব্যাচের স্ক্রিপ্টটি পেয়েছি যা প্রতিশ্রুতিবদ্ধ দেখাচ্ছে:

@echo off & cls
Rem List all Installation subkeys from uninstall key.
echo Searching Registry for Java Installs
for /f %%I in ('reg query HKLM\SOFTWARE\microsoft\windows\currentversion\uninstall') do echo %%I | find "{" > nul && call :All-Installations %%I
echo Search Complete..
goto :EOF
:All-Installations
Rem Filter out all but the Sun Installations
for /f "tokens=2*" %%T in ('reg query %1 /v Publisher 2^> nul') do echo %%U | find "Sun" > nul && call :Sun-Installations %1
goto :EOF
:Sun-Installations
Rem Filter out all but the Sun-Java Installations. Note the tilda + n, which drops all the subkeys from the path
for /f "tokens=2*" %%T in ('reg query %1 /v DisplayName 2^> nul') do echo . Uninstalling - %%U: | find "Java" && call :Sun-Java-Installs %~n1
goto :EOF
:Sun-Java-Installs
Rem Run Uninstaller for the installation
MsiExec.exe /x%1 /qb
echo . Uninstall Complete, Resuming Search..
goto :EOF

যাইহোক, আমি স্ক্রিপ্টটি চালানোর সময়, আমি নিম্নলিখিত আউটপুটটি পাই:

Searching Registry for Java Installs
'DEV_24x6' is not recognized as an internal or external command,
operable program or batch file.
'SUBSYS_542214F1' is not recognized as an internal or external command,
operable program or batch file.

এবং তারপরে এটি স্তব্ধ হয়ে যায় এবং এটি বন্ধ করার জন্য আমি ctrl-c।

স্ক্রিপ্টটি পড়ে, আমি সবকিছু বুঝতে পারি না, তবে কেন এটি প্রোগ্রাম হিসাবে রেজিস্ট্রি কীগুলির টুকরো চালানোর চেষ্টা করছে তা আমি জানি না। ব্যাচের স্ক্রিপ্টে কী ভুল? আমি কীভাবে এটি ঠিক করতে পারি, যাতে আমি কোনওভাবে এটিকে একটি এমএসআইতে পরিণত করতে এবং এই অফিসটি পরিষ্কার করার জন্য এটি প্রত্যেকের কাছে স্থাপন করে যেতে পারি?

অথবা বিকল্পভাবে, আমার কী প্রয়োজন তা করার জন্য আপনি কি আরও ভাল সমাধান বা বিদ্যমান এমএসআই ফাইলের পরামর্শ দিতে পারেন? আমি কেবল জাওয়ার সমস্ত পুরানো সংস্করণ সকলের কম্পিউটার থেকে বন্ধ করে দেওয়া নিশ্চিত করতে চাই, যেহেতু আমি এমন শোষণের কথা শুনেছি যার ফলে জাভা পুরানো সংস্করণ ব্যবহার করে ওয়েব পৃষ্ঠাগুলি লোড হয় এবং আমি সেগুলি এড়াতে চাই।


কৌতূহলের বাইরে আপনি কেন এটি করতে চান। জাভা সংস্করণ অসম্পূর্ণতা আমাকে ব্যথার শেষের কারণ ঘটাচ্ছে না (এইচপি আমি আপনাকে দেখছি)। যদি কিছু হয় তবে আমি জাভা-র একাধিক সংস্করণ ইনস্টল করার জন্য একটি স্ক্রিপ্ট লিখতে প্ররোচিত হব
জিম বি

3
সুরক্ষা প্রাথমিক উদ্বেগ হবে। সাম্প্রতিক আক্রমণগুলিতে জেভিএম এর পুরানো সংস্করণগুলি খুব জনপ্রিয়ভাবে ব্যবহার করা হয়েছে। এমনকি উইন্ডোজ 7 মেশিনগুলি প্রভাবিত হয়েছিল।
জোশুয়া

1
একেবারে সুরক্ষার জন্য। আমি গত কয়েক ঘন্টা সাফল্যের সাথে অফিস জুড়ে সর্বশেষতম জাভা মোতায়েন করেছি, তবে সেই পুরানো সংস্করণগুলি এখনও রয়ে গেছে। আমি স্পাইওয়্যার ইনস্টল করার জন্য জাভাটির একটি পুরানো সংস্করণ ব্যবহার করতে সক্ষম হয়েছি যা একটি মেশিনে ইনস্টল করা ছিল কিন্তু সুপ্ত ছিল, এবং আমি কেবল কম্পিউটারে সর্বশেষতম জাভা রেখে এর কোনওটি এড়াতে চাই।
রিকিট

আমি সন্ধান পেলাম এখানে আরও একটি পন্থা এখানে রয়েছে: ivan.dretvic.com/2011/02/…
ক্রেগ

উত্তর:


6

নিম্নলিখিতটি আমরা ব্যবহার করি, একটি স্টার্টআপ স্ক্রিপ্ট হিসাবে দুর্দান্ত কাজ করে:

on error resume next

dim WshShell
dim RegKey
dim ScriptVerKey

Set WshShell = CreateObject("WScript.Shell")

'checks to see if registry key exists, if it does, the cleanup runs.
RegKey = "HKLM\SOFTWARE\EDU\Cleanup\"
ScriptVerKey = WshShell.RegRead(RegKey & "JAVAOldVer")

if ScriptVerKey <> "1" Then 
  Cleanup()
 Else 
  WScript.Quit
End If

Sub Cleanup()

' Uninstall Java 1.4.1.01
WshShell.Run "msiexec /x {1666FA7C-CB5F-11D6-A78C-00B0D079AF64} /q",1,True
' Uninstall Java 1.4.2.04
WshShell.Run "msiexec /x {7148F0A8-6813-11D6-A77B-00B0D0142040} /q",1,True
' Uninstall Java 5.0.2
WshShell.Run "msiexec /x {3248F0A8-6813-11D6-A77B-00B0D0150020} /q",1,True
' Uninstall Java 5.0.4
WshShell.Run "msiexec /x {3248F0A8-6813-11D6-A77B-00B0D0150040} /q",1,True
' Uninstall Java 5.0.5
WshShell.Run "msiexec /x {3248F0A8-6813-11D6-A77B-00B0D0150050} /q",1,True
' Uninstall Java 5.0.6
WshShell.Run "msiexec /x {3248F0A8-6813-11D6-A77B-00B0D0150060} /q",1,True
' Uninstall Java 5.0.7
WshShell.Run "msiexec /x {3248F0A8-6813-11D6-A77B-00B0D0150070} /q",1,True
' Uninstall Java 5.0.10
WshShell.Run "msiexec /x {3248F0A8-6813-11D6-A77B-00B0D0150100} /q",1,True
' Uninstall Java 5.0.11
WshShell.Run "msiexec /x {3248F0A8-6813-11D6-A77B-00B0D0150110} /q",1,True
' Uninstall Java 5.0.12
'WshShell.Run "msiexec /x {3248F0A8-6813-11D6-A77B-00B0D0150120} /q",1,True
' Uninstall Java 6.0.0
WshShell.Run "msiexec /x {3248F0A8-6813-11D6-A77B-00B0D0160000} /q",1,True
' Uninstall Java 6.0.1
WshShell.Run "msiexec /x {3248F0A8-6813-11D6-A77B-00B0D0160010} /q",1,True
' Uninstall Java 6.0.2
WshShell.Run "msiexec /x {3248F0A8-6813-11D6-A77B-00B0D0160020} /q",1,True
' Uninstall Java 6.0.5
WshShell.Run "msiexec /x {3248F0A8-6813-11D6-A77B-00B0D0160050} /q",1,True
' Uninstall Java 6.0.30 (020608)
WshShell.Run "msiexec /x {3248F0A8-6813-11D6-A77B-00B0D0160030} /q",1,True


'regkey below stops the script from running again
WshShell.RegWrite "HKLM\Software\EDU\", "Default"
WshShell.RegWrite "HKLM\Software\EDU\Cleanup\", "Default"
WshShell.RegWrite "HKLM\Software\EDU\Cleanup\JAVAOldVer", 1, "REG_SZ"

End Sub

দারুণ! আমি এখনও পুরানো জাভা সংস্করণগুলি পরিষ্কার করি নি তাই আমার মনে হয় আমি এটি আমাদের স্টার্টআপ স্ক্রিপ্টে সংহত করব। ভাগ করে নেওয়ার জন্য ধন্যবাদ!
রিকিট

8

এই লাইনটি জাভা এর সমস্ত সংস্করণ আনইনস্টল করবে:

ডাব্লুএমআই পণ্য যেখানে "জাভা %% %%" এর মতো নাম "কল আনইনস্টল করুন / নোন্টারটেক্টিভ


ধন্যবাদ. এটি আমার সিস্টেমে ভাল কাজ করে। এটি আমার জাভা both পাশাপাশি এই একক কমান্ডের সাহায্যে আমার জাভা versions সংস্করণ উভয়ই সরিয়ে নিয়েছে।
মাইকেল এস।

ধন্যবাদ! পুরানো সব জাভা সংস্করণ অপসারণের জন্য এটি সেরা সেন্টিমিটার। এটি প্রশাসকের অধিকার সহ চালানো হয়েছে তা নিশ্চিত করা দরকার।
প্যাট্রিক কে

1

এর থেকে অংশঃ http://www.java.com/en/download/faq/remove_olderversions.xML

সময়ের সাথে সাথে, আপনি জাভা উপলব্ধ উপলভ্য সামগ্রী চালনার জন্য একাধিক সংস্করণ জাভা ইনস্টল করেছেন। অতীতে, প্রতিটি জাভা আপডেট আপনার সিস্টেমে পৃথক ডিরেক্টরিতে ইনস্টল করা হয়েছিল। তবে জাভা আপডেটগুলি এখন একক ডিরেক্টরিতে ইনস্টল করা আছে।

আমার জাভা পুরানো সংস্করণগুলি মুছে ফেলা উচিত? ব্যবহারকারীরা আপনার সিস্টেম থেকে জাভার সমস্ত পুরানো সংস্করণ সরিয়ে দেওয়ার জন্য আমরা উচ্চতর পরামর্শ দিচ্ছি। আপনার সিস্টেমে জাভা পুরানো এবং অসমর্থিত সংস্করণ রাখা গুরুতর সুরক্ষা ঝুঁকি উপস্থাপন করে। আপনার সিস্টেম থেকে জাভার পুরানো সংস্করণগুলি সরিয়ে ফেলা নিশ্চিত করে যে জাভা অ্যাপ্লিকেশনগুলি আপনার সিস্টেমে সর্বাধিক আপ-টু-ডেট সুরক্ষা এবং কার্যকারিতা উন্নতির সাথে চলবে।

আমি নিম্নলিখিত VBScript পেয়েছি যা তাত্ত্বিকভাবে জাভার পূর্ববর্তী সংস্করণগুলি যথাযথভাবে সরিয়ে দেয় s নীচে থেকে পড়া ভাল , অন্যরা যেহেতু একে একে পরিপূর্ণতার দিকে নিয়ে গেছে:

http://www.appdeploy.com/messageboards/tm.asp?m=29809


"নীচ থেকে পড়া ভাল" - সেক্ষেত্রে আপনার সেরা স্ক্রিপ্টটি এখানে অনুলিপি করা উচিত
jcollum

1

এই সহজ, কিন্তু খুব দরকারী কমান্ড পরীক্ষা করুন:

wmic product where "name like 'Java(TM) 6%%'" call uninstall /nointeractive

এখান থেকে চুরি


0

এখানে কিছু ভিসস্ক্রিপ্ট কোড রয়েছে যে আপনি একটি এমএসআই ছাড়াই গ্রুপ পলিসির মাধ্যমে মোতায়েন করতে সক্ষম হবেন।


0

শীর্ষে ভোট দেওয়া যাচাই করা উত্তরের সাথে কিছু সমস্যা রয়েছে। 6.0 সিরিজের সিএলএসআইডিগুলি আমার পরীক্ষার উপর ভিত্তি করে ভুল।

এখানে প্রতিটি সিআরএসআইডি আমি প্রতিটি জেআরই সিরিজের জন্য কাজ করতে পেয়েছি। আপনি মুছে ফেলতে চান এমন কাঙ্ক্ষিত সংস্করণগুলির জন্য xx প্রতিস্থাপন করুন। দয়া করে /server//a/187552/172014 ব্যবহার করুন

4.2_xx
{7148F0A8-6813-11D6-A77B-00B0D0142xx0}

5.0_xx
{3248F0A8-6813-11D6-A77B-00B0D0150xx0}

6.0_xx
{26A24AE4-039D-4CA4-87B4-2F832160xxF0}

7.0_xx
{26A24AE4-039D-4CA4-87B4-2F832170xxF0}

আমি ১ / ৪.২ সিরিজের জেআরই এমএসআই পুনরায় চালু করতে চাইলে / ক্যুয়ের পরে / নোরস্টার্ট যুক্ত করার পরামর্শ দিচ্ছি।

msiexec /x <insert_CLSID_here> /q /norestart

0

আপনি এখনও ব্যাচ স্ক্রিপ্ট ব্যবহার করে সম্পন্ন করতে পারেন। আমি নিম্নলিখিত স্ক্রিপ্ট ব্যবহার করি;

@ECHO OFF
REM #######################################################
REM AUTHOR: HeyVooN
REM BLOG: http://blog.teksoporte.es
REM DATE CREATED: 09/04/2015
REM Deploy Java to your Enterprise
REM This script is optimised for 32 and 64 Bit versions of Java to be installed on either 32 or 64 bit
REM operating systems. It can easily accommodate 64 bit versions of Java.
REM This script removes all previous versions of Java installed prior to (re)install any version.
REM #######################################################

REM #######################################################
REM SECTION 1 - CLEAN UP PC BEFORE INSTALLING JAVA (This section is not mandatory)
REM #######################################################
ECHO -------------------------------------------------------
ECHO STOP PROCESSES
ECHO -------------------------------------------------------
REM Assuming that processes using Java are stopped before uninstalling existing versions of Java
REM Common processes using Java: firefox.exe, iexplore.exe, chrome.exe, jusched.exe, jucheck.exe, java.exe, javacpl.exe

sc config "UI0Detect" start= disabled
sc stop UI0Detect
taskkill /F /IM jusched.exe /T
taskkill /F /IM jucheck.exe /T
taskkill /F /IM java.exe /T

ECHO -------------------------------------------------------
ECHO UNISTALL ANY PREVIOUS VERSIONS OF JAVA 32 Bit
ECHO -------------------------------------------------------
SET jver="Java 7"
SET regVar32=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
SET myCMD=REG QUERY %regVar32% /s /f %jver%
FOR /f " usebackq delims={} tokens=2" %%i IN (`%myCMD%`) DO (
 ECHO Uninstall Key: {%%i}
 ECHO Condition: %uinstallState%
 START /WAIT MSIEXEC /x {%%i} /qn /norestart
  )

ECHO -------------------------------------------------------
ECHO UNISTALL ANY PREVIOUS VERSIONS OF JAVA 64 Bit
ECHO -------------------------------------------------------
SET jver="Java 7"
SET regVar64=HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\
SET myCMD=REG QUERY %regVar64% /s /f %jver%
FOR /f " usebackq delims={} tokens=2" %%i IN (`%myCMD%`) DO (
 ECHO Uninstall Key: {%%i}
 ECHO Condition: %uinstallState%
 START /WAIT MSIEXEC /x {%%i} /qn /norestart
  )

ECHO -------------------------------------------------------
ECHO CLEANING REGISTRY
ECHO -------------------------------------------------------
REM Removing known problem registry keys. I use the below line to SET the variable of which reg.exe to use depending on OS architecture.
REM Additional registry removal strings can be added here.
@If Defined ProgramFiles(x86) (SET "Reg32Path=%SystemRoot%\SysWOW64\reg.exe") Else (SET "Reg32Path=%SystemRoot%\System32\reg.exe")
REM %Reg32Path% DELETE HKLM\SOFTWARE\JavaSoft /va /f
%Reg32Path% DELETE "HKLM\SOFTWARE\JavaSoft\Auto Update" /va /f
%Reg32Path% DELETE "HKLM\SOFTWARE\JavaSoft\Java Update" /va /f

ECHO -------------------------------------------------------
ECHO DELETE START MENU ITEMS
ECHO -------------------------------------------------------
RD /s /q "%ProgramData%\Microsoft\Windows\Start Menu\Programs\Java"
PAUSE
EXIT /B 0

আপনি নিজের প্রয়োজন অনুসারে যেভাবে মানিয়ে নিতে / পরিবর্তন করতে পারেন। ;-)


আপনি যদি সিস্টেম প্রশাসক হন তবে সতর্কতা ছাড়াই এটি চালাবেন না। জাভা সিস্টেম-ব্যাপী জোর করে হত্যা-কিছু লোককে বিচলিত করতে চলেছে - উদাহরণস্বরূপ আমি প্রতিদিন Eclipse ব্যবহার করি এবং কিছু লোকেরা ওপেনঅফিস / লিব্রেঅফিস ব্যবহার করে। আমি কেবল এটি উল্লেখ করেছি কারণ আমার প্রশ্নটি (পাঁচ বছর আগে) আমি চুপচাপ এমন স্ক্রিপ্ট মোতায়েন করার একটি উপায় খুঁজছিলাম যা প্রত্যেকের কম্পিউটারে চলে এবং জাভার পুরানো সংস্করণ আনইনস্টল করে। সুতরাং পরিষ্কারভাবে এটি ভাল করতে পারে না, বা আমি কমপক্ষে টাস্কकिल লাইন অপসারণ করব।
রিকিট

0

এটি আমার পক্ষে কাজ করেছে। এটি জাভা (32-বিট এবং 64-বিট) এর সর্বশেষ সংস্করণ (যা লেখার সময় v8.0.66 এর পূর্বে) এর সমস্ত সংস্করণ আনইনস্টল করে।

wmic product where "name like 'Java%%' and version < '8.0.66'" call uninstall
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.