diff --git a/src/Microsoft.WSMan.Management/ConfigProvider.cs b/src/Microsoft.WSMan.Management/ConfigProvider.cs index 3a60621f5fb..576184f83a4 100644 --- a/src/Microsoft.WSMan.Management/ConfigProvider.cs +++ b/src/Microsoft.WSMan.Management/ConfigProvider.cs @@ -30,6 +30,8 @@ public sealed partial class WSManConfigProvider : NavigationCmdletProvider, ICmd //Plugin Name Storage private PSObject objPluginNames = null; + private ServiceController winrmServiceController; + /// /// Determines if Set-Item user input type validation is required or not. /// It is True by default, Clear-Item will set it to false so that it can @@ -4436,15 +4438,16 @@ private void AssertError(string ErrorMessage, bool IsWSManError) /// private bool IsWSManServiceRunning() { - ServiceController svc = new ServiceController("WinRM"); - if (svc != null) + if (winrmServiceController == null) { - if (svc.Status.Equals(ServiceControllerStatus.Running)) - { - return true; - } + winrmServiceController = new ServiceController("WinRM"); } - return false; + else + { + winrmServiceController.Refresh(); + } + + return (winrmServiceController.Status.Equals(ServiceControllerStatus.Running)); } ///