How to remove all oracle java using powershell












1















I wanted to start by saying i did read some other topics on this but at this point i still have to do it none the less (decision been made above my pay grade).



We are in the process of moving and testing out Azul java to see how well that works for us. Meantime I need to figure out how to script the uninstall of the all Oracle java (preferably I would have a script for JRE and another for JDK).



Currently how I have been removing java versions is by having a list of all jre versions doing msiexec /x "GUID of the java version" /qn but it is incredibly time consuming so I wanted to get those strings pragmatically.



Right now I run the following command:



Get-WmiObject -Class Win32_Product | Where-Object {$_.Name -like 'Java*'}


enter image description here



However, I am trying to find out how to automatically get the IdentifyNumber for every result as long as Vendor = Oracle Corporation and pipe it to the msiexec command to problematically remove them. Azul is installed on the same system as the command is being ran but is not showing up (which is good but just in case I wanted to have the vendor qualifier).



My question is: Can someone help me pipe the IdentifyNumber of the product into msiexec command assuming Vendor is Oracle Corporation



Thank you in advance.



Update 1:
Following feedback from Drew and Ansgar



$Source = Get-ItemProperty HKLM:SoftwareWow6432NodeMicrosoftWindowsCurrentVersionUninstall*
$Uninstall = $Source | Where-Object {($_.Publisher -like '*Oracle*')-and ($_.DisplayName -like 'Java*')} | select UninstallString
$UninstallString = $Uninstall.UninstallString
$UninstallSting | ForEach-Object{Invoke-Expression -ScriptBlock ($UninstallString)}


However, I cant seem to pipe the strings correctly as I keep getting:



Invoke-Command : Cannot convert 'System.Object' to the type 'System.Management.Automation.ScriptBlock' required by parameter 'ScriptBlock'. Specified method 
is not supported.
At C:KonstantinJavaUninstallAllJava.ps1:8 char:62
+ ... ting | ForEach-Object{Invoke-Command -ScriptBlock ($UninstallString)}
+ ~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Invoke-Command], ParameterBindingException
+ FullyQualifiedErrorId : CannotConvertArgument,Microsoft.PowerShell.Commands.InvokeCommandCommand









share|improve this question




















  • 1





    Win32_Product is evil. Do not use it.

    – Ansgar Wiechers
    Nov 26 '18 at 22:42
















1















I wanted to start by saying i did read some other topics on this but at this point i still have to do it none the less (decision been made above my pay grade).



We are in the process of moving and testing out Azul java to see how well that works for us. Meantime I need to figure out how to script the uninstall of the all Oracle java (preferably I would have a script for JRE and another for JDK).



Currently how I have been removing java versions is by having a list of all jre versions doing msiexec /x "GUID of the java version" /qn but it is incredibly time consuming so I wanted to get those strings pragmatically.



Right now I run the following command:



Get-WmiObject -Class Win32_Product | Where-Object {$_.Name -like 'Java*'}


enter image description here



However, I am trying to find out how to automatically get the IdentifyNumber for every result as long as Vendor = Oracle Corporation and pipe it to the msiexec command to problematically remove them. Azul is installed on the same system as the command is being ran but is not showing up (which is good but just in case I wanted to have the vendor qualifier).



My question is: Can someone help me pipe the IdentifyNumber of the product into msiexec command assuming Vendor is Oracle Corporation



Thank you in advance.



Update 1:
Following feedback from Drew and Ansgar



$Source = Get-ItemProperty HKLM:SoftwareWow6432NodeMicrosoftWindowsCurrentVersionUninstall*
$Uninstall = $Source | Where-Object {($_.Publisher -like '*Oracle*')-and ($_.DisplayName -like 'Java*')} | select UninstallString
$UninstallString = $Uninstall.UninstallString
$UninstallSting | ForEach-Object{Invoke-Expression -ScriptBlock ($UninstallString)}


However, I cant seem to pipe the strings correctly as I keep getting:



Invoke-Command : Cannot convert 'System.Object' to the type 'System.Management.Automation.ScriptBlock' required by parameter 'ScriptBlock'. Specified method 
is not supported.
At C:KonstantinJavaUninstallAllJava.ps1:8 char:62
+ ... ting | ForEach-Object{Invoke-Command -ScriptBlock ($UninstallString)}
+ ~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Invoke-Command], ParameterBindingException
+ FullyQualifiedErrorId : CannotConvertArgument,Microsoft.PowerShell.Commands.InvokeCommandCommand









share|improve this question




















  • 1





    Win32_Product is evil. Do not use it.

    – Ansgar Wiechers
    Nov 26 '18 at 22:42














1












1








1








I wanted to start by saying i did read some other topics on this but at this point i still have to do it none the less (decision been made above my pay grade).



We are in the process of moving and testing out Azul java to see how well that works for us. Meantime I need to figure out how to script the uninstall of the all Oracle java (preferably I would have a script for JRE and another for JDK).



Currently how I have been removing java versions is by having a list of all jre versions doing msiexec /x "GUID of the java version" /qn but it is incredibly time consuming so I wanted to get those strings pragmatically.



Right now I run the following command:



Get-WmiObject -Class Win32_Product | Where-Object {$_.Name -like 'Java*'}


enter image description here



However, I am trying to find out how to automatically get the IdentifyNumber for every result as long as Vendor = Oracle Corporation and pipe it to the msiexec command to problematically remove them. Azul is installed on the same system as the command is being ran but is not showing up (which is good but just in case I wanted to have the vendor qualifier).



My question is: Can someone help me pipe the IdentifyNumber of the product into msiexec command assuming Vendor is Oracle Corporation



Thank you in advance.



Update 1:
Following feedback from Drew and Ansgar



$Source = Get-ItemProperty HKLM:SoftwareWow6432NodeMicrosoftWindowsCurrentVersionUninstall*
$Uninstall = $Source | Where-Object {($_.Publisher -like '*Oracle*')-and ($_.DisplayName -like 'Java*')} | select UninstallString
$UninstallString = $Uninstall.UninstallString
$UninstallSting | ForEach-Object{Invoke-Expression -ScriptBlock ($UninstallString)}


However, I cant seem to pipe the strings correctly as I keep getting:



Invoke-Command : Cannot convert 'System.Object' to the type 'System.Management.Automation.ScriptBlock' required by parameter 'ScriptBlock'. Specified method 
is not supported.
At C:KonstantinJavaUninstallAllJava.ps1:8 char:62
+ ... ting | ForEach-Object{Invoke-Command -ScriptBlock ($UninstallString)}
+ ~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Invoke-Command], ParameterBindingException
+ FullyQualifiedErrorId : CannotConvertArgument,Microsoft.PowerShell.Commands.InvokeCommandCommand









share|improve this question
















I wanted to start by saying i did read some other topics on this but at this point i still have to do it none the less (decision been made above my pay grade).



We are in the process of moving and testing out Azul java to see how well that works for us. Meantime I need to figure out how to script the uninstall of the all Oracle java (preferably I would have a script for JRE and another for JDK).



Currently how I have been removing java versions is by having a list of all jre versions doing msiexec /x "GUID of the java version" /qn but it is incredibly time consuming so I wanted to get those strings pragmatically.



Right now I run the following command:



Get-WmiObject -Class Win32_Product | Where-Object {$_.Name -like 'Java*'}


enter image description here



However, I am trying to find out how to automatically get the IdentifyNumber for every result as long as Vendor = Oracle Corporation and pipe it to the msiexec command to problematically remove them. Azul is installed on the same system as the command is being ran but is not showing up (which is good but just in case I wanted to have the vendor qualifier).



My question is: Can someone help me pipe the IdentifyNumber of the product into msiexec command assuming Vendor is Oracle Corporation



Thank you in advance.



Update 1:
Following feedback from Drew and Ansgar



$Source = Get-ItemProperty HKLM:SoftwareWow6432NodeMicrosoftWindowsCurrentVersionUninstall*
$Uninstall = $Source | Where-Object {($_.Publisher -like '*Oracle*')-and ($_.DisplayName -like 'Java*')} | select UninstallString
$UninstallString = $Uninstall.UninstallString
$UninstallSting | ForEach-Object{Invoke-Expression -ScriptBlock ($UninstallString)}


However, I cant seem to pipe the strings correctly as I keep getting:



Invoke-Command : Cannot convert 'System.Object' to the type 'System.Management.Automation.ScriptBlock' required by parameter 'ScriptBlock'. Specified method 
is not supported.
At C:KonstantinJavaUninstallAllJava.ps1:8 char:62
+ ... ting | ForEach-Object{Invoke-Command -ScriptBlock ($UninstallString)}
+ ~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Invoke-Command], ParameterBindingException
+ FullyQualifiedErrorId : CannotConvertArgument,Microsoft.PowerShell.Commands.InvokeCommandCommand






powershell






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 28 '18 at 0:16







Konstantin V

















asked Nov 26 '18 at 22:36









Konstantin VKonstantin V

118118




118118








  • 1





    Win32_Product is evil. Do not use it.

    – Ansgar Wiechers
    Nov 26 '18 at 22:42














  • 1





    Win32_Product is evil. Do not use it.

    – Ansgar Wiechers
    Nov 26 '18 at 22:42








1




1





Win32_Product is evil. Do not use it.

– Ansgar Wiechers
Nov 26 '18 at 22:42





Win32_Product is evil. Do not use it.

– Ansgar Wiechers
Nov 26 '18 at 22:42












2 Answers
2






active

oldest

votes


















1














I would recommend the Registry method.



Get-ItemProperty HKLM:SoftwareWow6432NodeMicrosoftWindowsCurrentVersionUninstall* | 
Where-Object {$_.Publisher -like '*oracle*'} | select UninstallString


This will give you your MsiExec.exe link. E.G. MsiExec.exe /X{26A24AE4-039D-4CA4-87B4-2F32180181F0}






share|improve this answer
























  • Following your example I have the following: <blink>$Source = Get-ItemProperty HKLM:SoftwareWow6432NodeMicrosoftWindowsCurrentVersionUninstall* $Uninstall = $Source | Where-Object {($_.Publisher -like 'Oracle')-and ($_.DisplayName -like 'Java*')} | select UninstallString $UninstallString = $Uninstall.UninstallString $UninstallSting | ForEach-Object{Invoke-Expression -ScriptBlock ($UninstallString)} <blink> but the last part where i try to run each string keeps failing and i cant figure out why

    – Konstantin V
    Nov 27 '18 at 23:59





















0














So i was able to figure it out so here is what I came up with which seem to work




Set "Source" variable to registry location




$Source = Get-ItemProperty HKLM:SoftwareWow6432NodeMicrosoftWindowsCurrentVersionUninstall*



Set "Uninstall" variable to inherit from source and reduce the scope to Oracle and Java




$Uninstall = $Source | Where-Object {($_.Publisher -like '*Oracle*')-and ($_.DisplayName -like 'Java*')} | select UninstallString



Set "UninstallString" variable to get only the uninstall string from "Uninstall" variable




$UninstallStrings = $Uninstall.UninstallString -replace "MsiExec.exe ","MsiExec.exe /qn " -replace "/I","/X"



Run all the uninstall strings




ForEach($UninstallString in $UninstallStrings){& cmd /c "$UninstallString"}


I am sure it can be a lot cleaner but this is the best i can do for now. For some versions of java the uninstall strings would give /i variable instead of /x (JDK 6) which is why i had to do the second replace statement.



Example:



UninstallString                                     
---------------
MsiExec.exe /X{26A24AE4-039D-4CA4-87B4-2F03217079FF}
MsiExec.exe /X{26A24AE4-039D-4CA4-87B4-2F83216045FF}
MsiExec.exe /I{32A3A4F4-B792-11D6-A78A-00B0D0160450}





share|improve this answer























    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53490170%2fhow-to-remove-all-oracle-java-using-powershell%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    2 Answers
    2






    active

    oldest

    votes








    2 Answers
    2






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    1














    I would recommend the Registry method.



    Get-ItemProperty HKLM:SoftwareWow6432NodeMicrosoftWindowsCurrentVersionUninstall* | 
    Where-Object {$_.Publisher -like '*oracle*'} | select UninstallString


    This will give you your MsiExec.exe link. E.G. MsiExec.exe /X{26A24AE4-039D-4CA4-87B4-2F32180181F0}






    share|improve this answer
























    • Following your example I have the following: <blink>$Source = Get-ItemProperty HKLM:SoftwareWow6432NodeMicrosoftWindowsCurrentVersionUninstall* $Uninstall = $Source | Where-Object {($_.Publisher -like 'Oracle')-and ($_.DisplayName -like 'Java*')} | select UninstallString $UninstallString = $Uninstall.UninstallString $UninstallSting | ForEach-Object{Invoke-Expression -ScriptBlock ($UninstallString)} <blink> but the last part where i try to run each string keeps failing and i cant figure out why

      – Konstantin V
      Nov 27 '18 at 23:59


















    1














    I would recommend the Registry method.



    Get-ItemProperty HKLM:SoftwareWow6432NodeMicrosoftWindowsCurrentVersionUninstall* | 
    Where-Object {$_.Publisher -like '*oracle*'} | select UninstallString


    This will give you your MsiExec.exe link. E.G. MsiExec.exe /X{26A24AE4-039D-4CA4-87B4-2F32180181F0}






    share|improve this answer
























    • Following your example I have the following: <blink>$Source = Get-ItemProperty HKLM:SoftwareWow6432NodeMicrosoftWindowsCurrentVersionUninstall* $Uninstall = $Source | Where-Object {($_.Publisher -like 'Oracle')-and ($_.DisplayName -like 'Java*')} | select UninstallString $UninstallString = $Uninstall.UninstallString $UninstallSting | ForEach-Object{Invoke-Expression -ScriptBlock ($UninstallString)} <blink> but the last part where i try to run each string keeps failing and i cant figure out why

      – Konstantin V
      Nov 27 '18 at 23:59
















    1












    1








    1







    I would recommend the Registry method.



    Get-ItemProperty HKLM:SoftwareWow6432NodeMicrosoftWindowsCurrentVersionUninstall* | 
    Where-Object {$_.Publisher -like '*oracle*'} | select UninstallString


    This will give you your MsiExec.exe link. E.G. MsiExec.exe /X{26A24AE4-039D-4CA4-87B4-2F32180181F0}






    share|improve this answer













    I would recommend the Registry method.



    Get-ItemProperty HKLM:SoftwareWow6432NodeMicrosoftWindowsCurrentVersionUninstall* | 
    Where-Object {$_.Publisher -like '*oracle*'} | select UninstallString


    This will give you your MsiExec.exe link. E.G. MsiExec.exe /X{26A24AE4-039D-4CA4-87B4-2F32180181F0}







    share|improve this answer












    share|improve this answer



    share|improve this answer










    answered Nov 26 '18 at 23:10









    DrewDrew

    1,367416




    1,367416













    • Following your example I have the following: <blink>$Source = Get-ItemProperty HKLM:SoftwareWow6432NodeMicrosoftWindowsCurrentVersionUninstall* $Uninstall = $Source | Where-Object {($_.Publisher -like 'Oracle')-and ($_.DisplayName -like 'Java*')} | select UninstallString $UninstallString = $Uninstall.UninstallString $UninstallSting | ForEach-Object{Invoke-Expression -ScriptBlock ($UninstallString)} <blink> but the last part where i try to run each string keeps failing and i cant figure out why

      – Konstantin V
      Nov 27 '18 at 23:59





















    • Following your example I have the following: <blink>$Source = Get-ItemProperty HKLM:SoftwareWow6432NodeMicrosoftWindowsCurrentVersionUninstall* $Uninstall = $Source | Where-Object {($_.Publisher -like 'Oracle')-and ($_.DisplayName -like 'Java*')} | select UninstallString $UninstallString = $Uninstall.UninstallString $UninstallSting | ForEach-Object{Invoke-Expression -ScriptBlock ($UninstallString)} <blink> but the last part where i try to run each string keeps failing and i cant figure out why

      – Konstantin V
      Nov 27 '18 at 23:59



















    Following your example I have the following: <blink>$Source = Get-ItemProperty HKLM:SoftwareWow6432NodeMicrosoftWindowsCurrentVersionUninstall* $Uninstall = $Source | Where-Object {($_.Publisher -like 'Oracle')-and ($_.DisplayName -like 'Java*')} | select UninstallString $UninstallString = $Uninstall.UninstallString $UninstallSting | ForEach-Object{Invoke-Expression -ScriptBlock ($UninstallString)} <blink> but the last part where i try to run each string keeps failing and i cant figure out why

    – Konstantin V
    Nov 27 '18 at 23:59







    Following your example I have the following: <blink>$Source = Get-ItemProperty HKLM:SoftwareWow6432NodeMicrosoftWindowsCurrentVersionUninstall* $Uninstall = $Source | Where-Object {($_.Publisher -like 'Oracle')-and ($_.DisplayName -like 'Java*')} | select UninstallString $UninstallString = $Uninstall.UninstallString $UninstallSting | ForEach-Object{Invoke-Expression -ScriptBlock ($UninstallString)} <blink> but the last part where i try to run each string keeps failing and i cant figure out why

    – Konstantin V
    Nov 27 '18 at 23:59















    0














    So i was able to figure it out so here is what I came up with which seem to work




    Set "Source" variable to registry location




    $Source = Get-ItemProperty HKLM:SoftwareWow6432NodeMicrosoftWindowsCurrentVersionUninstall*



    Set "Uninstall" variable to inherit from source and reduce the scope to Oracle and Java




    $Uninstall = $Source | Where-Object {($_.Publisher -like '*Oracle*')-and ($_.DisplayName -like 'Java*')} | select UninstallString



    Set "UninstallString" variable to get only the uninstall string from "Uninstall" variable




    $UninstallStrings = $Uninstall.UninstallString -replace "MsiExec.exe ","MsiExec.exe /qn " -replace "/I","/X"



    Run all the uninstall strings




    ForEach($UninstallString in $UninstallStrings){& cmd /c "$UninstallString"}


    I am sure it can be a lot cleaner but this is the best i can do for now. For some versions of java the uninstall strings would give /i variable instead of /x (JDK 6) which is why i had to do the second replace statement.



    Example:



    UninstallString                                     
    ---------------
    MsiExec.exe /X{26A24AE4-039D-4CA4-87B4-2F03217079FF}
    MsiExec.exe /X{26A24AE4-039D-4CA4-87B4-2F83216045FF}
    MsiExec.exe /I{32A3A4F4-B792-11D6-A78A-00B0D0160450}





    share|improve this answer




























      0














      So i was able to figure it out so here is what I came up with which seem to work




      Set "Source" variable to registry location




      $Source = Get-ItemProperty HKLM:SoftwareWow6432NodeMicrosoftWindowsCurrentVersionUninstall*



      Set "Uninstall" variable to inherit from source and reduce the scope to Oracle and Java




      $Uninstall = $Source | Where-Object {($_.Publisher -like '*Oracle*')-and ($_.DisplayName -like 'Java*')} | select UninstallString



      Set "UninstallString" variable to get only the uninstall string from "Uninstall" variable




      $UninstallStrings = $Uninstall.UninstallString -replace "MsiExec.exe ","MsiExec.exe /qn " -replace "/I","/X"



      Run all the uninstall strings




      ForEach($UninstallString in $UninstallStrings){& cmd /c "$UninstallString"}


      I am sure it can be a lot cleaner but this is the best i can do for now. For some versions of java the uninstall strings would give /i variable instead of /x (JDK 6) which is why i had to do the second replace statement.



      Example:



      UninstallString                                     
      ---------------
      MsiExec.exe /X{26A24AE4-039D-4CA4-87B4-2F03217079FF}
      MsiExec.exe /X{26A24AE4-039D-4CA4-87B4-2F83216045FF}
      MsiExec.exe /I{32A3A4F4-B792-11D6-A78A-00B0D0160450}





      share|improve this answer


























        0












        0








        0







        So i was able to figure it out so here is what I came up with which seem to work




        Set "Source" variable to registry location




        $Source = Get-ItemProperty HKLM:SoftwareWow6432NodeMicrosoftWindowsCurrentVersionUninstall*



        Set "Uninstall" variable to inherit from source and reduce the scope to Oracle and Java




        $Uninstall = $Source | Where-Object {($_.Publisher -like '*Oracle*')-and ($_.DisplayName -like 'Java*')} | select UninstallString



        Set "UninstallString" variable to get only the uninstall string from "Uninstall" variable




        $UninstallStrings = $Uninstall.UninstallString -replace "MsiExec.exe ","MsiExec.exe /qn " -replace "/I","/X"



        Run all the uninstall strings




        ForEach($UninstallString in $UninstallStrings){& cmd /c "$UninstallString"}


        I am sure it can be a lot cleaner but this is the best i can do for now. For some versions of java the uninstall strings would give /i variable instead of /x (JDK 6) which is why i had to do the second replace statement.



        Example:



        UninstallString                                     
        ---------------
        MsiExec.exe /X{26A24AE4-039D-4CA4-87B4-2F03217079FF}
        MsiExec.exe /X{26A24AE4-039D-4CA4-87B4-2F83216045FF}
        MsiExec.exe /I{32A3A4F4-B792-11D6-A78A-00B0D0160450}





        share|improve this answer













        So i was able to figure it out so here is what I came up with which seem to work




        Set "Source" variable to registry location




        $Source = Get-ItemProperty HKLM:SoftwareWow6432NodeMicrosoftWindowsCurrentVersionUninstall*



        Set "Uninstall" variable to inherit from source and reduce the scope to Oracle and Java




        $Uninstall = $Source | Where-Object {($_.Publisher -like '*Oracle*')-and ($_.DisplayName -like 'Java*')} | select UninstallString



        Set "UninstallString" variable to get only the uninstall string from "Uninstall" variable




        $UninstallStrings = $Uninstall.UninstallString -replace "MsiExec.exe ","MsiExec.exe /qn " -replace "/I","/X"



        Run all the uninstall strings




        ForEach($UninstallString in $UninstallStrings){& cmd /c "$UninstallString"}


        I am sure it can be a lot cleaner but this is the best i can do for now. For some versions of java the uninstall strings would give /i variable instead of /x (JDK 6) which is why i had to do the second replace statement.



        Example:



        UninstallString                                     
        ---------------
        MsiExec.exe /X{26A24AE4-039D-4CA4-87B4-2F03217079FF}
        MsiExec.exe /X{26A24AE4-039D-4CA4-87B4-2F83216045FF}
        MsiExec.exe /I{32A3A4F4-B792-11D6-A78A-00B0D0160450}






        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 29 '18 at 22:45









        Konstantin VKonstantin V

        118118




        118118






























            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53490170%2fhow-to-remove-all-oracle-java-using-powershell%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Contact image not getting when fetch all contact list from iPhone by CNContact

            count number of partitions of a set with n elements into k subsets

            A CLEAN and SIMPLE way to add appendices to Table of Contents and bookmarks