Index: src/org/openstreetmap/josm/tools/PlatformHookWindows.java
===================================================================
--- src/org/openstreetmap/josm/tools/PlatformHookWindows.java	(revision 14430)
+++ src/org/openstreetmap/josm/tools/PlatformHookWindows.java	(working copy)
@@ -172,7 +172,9 @@
     private static final String CURRENT_VERSION = "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion";
 
     private String oSBuildNumber;
+    private Integer powerShellVersion;
 
+
     @Override
     public Platform getPlatform() {
         return Platform.WINDOWS;
@@ -747,18 +749,20 @@
      * @return the major version number of PowerShell. -1 in case of error
      * @since 13465
      */
-    public static int getPowerShellVersion() {
-        try {
-            return Integer.parseInt(Utils.execOutput(Arrays.asList(
-                    "powershell", "-Command", "$PSVersionTable.PSVersion.Major"), 2, TimeUnit.SECONDS));
-        } catch (ExecutionException e) {
-            // PowerShell 2.0 (included in Windows 7) does not even support this
-            Logging.debug(e);
-            return -1;
-        } catch (NumberFormatException | IOException | InterruptedException e) {
-            Logging.error(e);
-            return -1;
-        }
+    public int getPowerShellVersion() {
+    		if (powerShellVersion == null) {
+            powerShellVersion = -1;
+		        try {
+		            powerShellVersion = Integer.parseInt(Utils.execOutput(Arrays.asList(
+		                    "powershell", "-Command", "$PSVersionTable.PSVersion.Major"), 2, TimeUnit.SECONDS));
+		        } catch (ExecutionException e) {
+		            // PowerShell 2.0 (included in Windows 7) does not even support this
+		            Logging.debug(e);
+		        } catch (NumberFormatException | IOException | InterruptedException e) {
+		            Logging.error(e);
+		        }
+ 		    }
+        return powerShellVersion;
     }
 
     /**
@@ -769,7 +773,7 @@
      * @throws IOException if any I/O error occurs
      * @since 13458
      */
-    public static String webRequest(String uri) throws IOException {
+    public String webRequest(String uri) throws IOException {
         // With PS 6.0 (not yet released in Windows) we could simply use:
         // Invoke-WebRequest -SSlProtocol Tsl12 $uri
         // .NET framework < 4.5 does not support TLS 1.2 (https://stackoverflow.com/a/43240673/2257172)
