Я создаю скрипт PowerShell для проверки локальной системы для предопределенного списка GUID
(IdentifyingNumber), которые принадлежат JRE. Целью является удаление любых старых версий, которые являются частью списка, перед установкой последней версии Java.Powershell сравнить массив, чтобы проверить GUID
Сценарий работает корректно для соответствия GUID
, но когда я запускаю msiexec.exe /x
в цикле for for, а оператор if работает только один раз до завершения скрипта. Он должен удалить каждую из найденных старых версий.
Если бы кто-нибудь мог помочь объяснить, что это такое, я здесь пропал без вести здесь было бы полезно!
[string[]] $Java_GUIDS = @(
#Java Auto Updater
"{4A03706F-666A-4037-7777-5F2748764D10}",
#Java 8 Update 31 - 64-bit
"{26A24AE4-039D-4CA4-87B4-2F86418031F0}",
#Java 8 Update 31 - 32-bit
"{26A24AE4-039D-4CA4-87B4-2F83218031F0}",
#Java 8 Update 25 - 64-bit
"{26A24AE4-039D-4CA4-87B4-2F83218025F0}",
#Java 8 Update 20 - 32-bit
"{26A24AE4-039D-4CA4-87B4-2F83218020F0}",
#Java 8 Update 20 - 64-bit
"{26A24AE4-039D-4CA4-87B4-2F83218020FF}",
# ARRAY DEFINITION TRUNCATED
#Java 5 Update 22
"{3248F0A8-6813-11D6-A77B-00B0D0150220}",
#Java 5 Update 23
"{3248F0A8-6813-11D6-A77B-00B0D0150230}")
#Show currently installed Java Version(s)
Write-Host "Currently Installed Java Versions:"
gwmi win32_product -filter "name like 'Java%'" | select name,IdentifyingNumber,Version
[string[]] $Installed = (gwmi win32_product -filter "name like 'Java%'" | Select-Object -expand IdentifyingNumber)
foreach($Installed_GUID in $Installed)
{
if ($Java_GUIDS -contains $Installed_GUID)
{
Write-Host "Found $Installed_GUID in Java GUIDS Array. Removing..."
msiexec.exe /x $Installed_GUID /qn /norestart /L*V "C:\Windows\TEMP\Java Removal.log"
Write-Host "Done"
}
else
{
Write-Host "Did NOT find $Installed_GUID in Java GUIDS Array"
}
}
Write-Host "Complete"
Ниже приведены три последовательных пробегов сценария, которые показывают, что только одна версия каждого прогона быть успешно удален.
PS C:\Users\srj3> C:\Users\srj3\Desktop\Java_Removal.ps1
Currently Installed Java Versions:
name IdentifyingNumber Version
---- ----------------- -------
Java 7 Update 75 {26A24AE4-039D-4CA4-87B4-2F03217075FF} 7.0.750
Java 8 Update 31 {26A24AE4-039D-4CA4-87B4-2F83218031F0} 8.0.310
Java 8 Update 25 {26A24AE4-039D-4CA4-87B4-2F83218025F0} 8.0.250
Java 7 Update 75 (64-bit) {26A24AE4-039D-4CA4-87B4-2F06417075FF} 7.0.750
Java 8 Update 31 (64-bit) {26A24AE4-039D-4CA4-87B4-2F86418031F0} 8.0.310
Java Auto Updater {4A03706F-666A-4037-7777-5F2748764D10} 2.8.31.13
Found {26A24AE4-039D-4CA4-87B4-2F03217075FF} in Java GUIDS Array. Removing...
Done
Found {26A24AE4-039D-4CA4-87B4-2F83218031F0} in Java GUIDS Array. Removing...
Done
Found {26A24AE4-039D-4CA4-87B4-2F83218025F0} in Java GUIDS Array. Removing...
Done
Found {26A24AE4-039D-4CA4-87B4-2F06417075FF} in Java GUIDS Array. Removing...
Done
Found {26A24AE4-039D-4CA4-87B4-2F86418031F0} in Java GUIDS Array. Removing...
Done
Found {4A03706F-666A-4037-7777-5F2748764D10} in Java GUIDS Array. Removing...
Done
Complete
PS C:\Users\srj3> C:\Users\srj3\Desktop\Java_Removal.ps1
Currently Installed Java Versions:
name IdentifyingNumber Version
---- ----------------- -------
Java 8 Update 31 {26A24AE4-039D-4CA4-87B4-2F83218031F0} 8.0.310
Java 8 Update 25 {26A24AE4-039D-4CA4-87B4-2F83218025F0} 8.0.250
Java 7 Update 75 (64-bit) {26A24AE4-039D-4CA4-87B4-2F06417075FF} 7.0.750
Java 8 Update 31 (64-bit) {26A24AE4-039D-4CA4-87B4-2F86418031F0} 8.0.310
Java Auto Updater {4A03706F-666A-4037-7777-5F2748764D10} 2.8.31.13
Found {26A24AE4-039D-4CA4-87B4-2F83218031F0} in Java GUIDS Array. Removing...
Done
Found {26A24AE4-039D-4CA4-87B4-2F83218025F0} in Java GUIDS Array. Removing...
Done
Found {26A24AE4-039D-4CA4-87B4-2F06417075FF} in Java GUIDS Array. Removing...
Done
Found {26A24AE4-039D-4CA4-87B4-2F86418031F0} in Java GUIDS Array. Removing...
Done
Found {4A03706F-666A-4037-7777-5F2748764D10} in Java GUIDS Array. Removing...
Done
Complete
PS C:\Users\srj3> C:\Users\srj3\Desktop\Java_Removal.ps1
Currently Installed Java Versions:
name IdentifyingNumber Version
---- ----------------- -------
Java 8 Update 25 {26A24AE4-039D-4CA4-87B4-2F83218025F0} 8.0.250
Java 7 Update 75 (64-bit) {26A24AE4-039D-4CA4-87B4-2F06417075FF} 7.0.750
Java 8 Update 31 (64-bit) {26A24AE4-039D-4CA4-87B4-2F86418031F0} 8.0.310
Java Auto Updater {4A03706F-666A-4037-7777-5F2748764D10} 2.8.31.13
Found {26A24AE4-039D-4CA4-87B4-2F83218025F0} in Java GUIDS Array. Removing...
Done
Found {26A24AE4-039D-4CA4-87B4-2F06417075FF} in Java GUIDS Array. Removing...
Done
Found {26A24AE4-039D-4CA4-87B4-2F86418031F0} in Java GUIDS Array. Removing...
Done
Found {4A03706F-666A-4037-7777-5F2748764D10} in Java GUIDS Array. Removing...
Done
Complete
Благодарим вас за то, что спасли мне головную боль. Это решение отлично работало. –