/// <summary> /// Checks that MSMQ is installed, configured correctly, and started, and if not takes the necessary corrective actions to make it so. /// </summary> public bool StartMsmqIfNecessary() { var processUtil = new ProcessUtil(Host); if (!InstallMsmqIfNecessary()) { return false; } try { using (var controller = new ServiceController("MSMQ")) { if (IsStopped(controller)) { processUtil.ChangeServiceStatus(controller, ServiceControllerStatus.Running, controller.Start); } } } catch (InvalidOperationException) { WriteWarning("MSMQ windows service not found! You may need to reboot after MSMQ has been installed."); return false; } return true; }
protected override void BeginProcessing() { var processUtil = new ProcessUtil(Host); if (!processUtil.IsRunningWithElevatedPrivileges()) { var exception = new SecurityException("This command requires elevated privileges"); ThrowTerminatingError(new ErrorRecord(exception, null, ErrorCategory.PermissionDenied, null)); } }
/// <summary> /// Checks that the MSDTC service is running and configured correctly, and if not /// takes the necessary corrective actions to make it so. /// </summary> public void StartDtcIfNecessary() { var processUtil = new ProcessUtil(Host); if (DoesSecurityConfigurationRequireRestart(true)) { processUtil.ChangeServiceStatus(Controller, ServiceControllerStatus.Stopped, Controller.Stop); } processUtil.ChangeServiceStatus(Controller, ServiceControllerStatus.Running, Controller.Start); }