C# 启动windows 服务(通过cmd管理员方式和winform 方式)
{
public static void StartServicesByServiceName(string servicesName)
{
using (ServiceController sc = new ServiceController(servicesName))
{
if (sc.CanStop)//判断是否可以关闭
{
try
{
sc.Stop();
sc.WaitForStatus(ServiceControllerStatus.Stopped);//服务停止了才继续下一步
}
catch (Exception ex)
{
Console.WriteLine("停止服务失败:" + ex);
}
}
if (!sc.CanStop)//判断是否可以开启
{
try
{
sc.Start();
sc.WaitForStatus(ServiceControllerStatus.Running);//服务运行了才继续下一步
}
catch (Exception ex)
{
Console.WriteLine("启动服务失败:" + ex);
}
}
sc.Close();
sc.Dispose();
}
}
private static string CmdPath = @"C:\Windows\System32\cmd.exe";
/// <summary>
/// 通过管理员命令运行CMD启动服务
/// </summary>
/// <param name="serverName"></param>
public static void RunCmdServicesByServerName(string serverName)
{
System.Security.Principal.WindowsIdentity identity = System.Security.Principal.WindowsIdentity.GetCurrent();
System.Security.Principal.WindowsPrincipal principal = new System.Security.Principal.WindowsPrincipal(identity);
//判断当前登录用户是否为管理员
if (principal.IsInRole(System.Security.Principal.WindowsBuiltInRole.Administrator))
{
StartServicesByServiceName(serverName);
System.Diagnostics.Process.Start(CmdPath, "/c sc Start " + serverName);
}
else
{
//创建启动对象
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.UseShellExecute = true;
startInfo.WorkingDirectory = @"C:\Windows\System32\";
startInfo.FileName = CmdPath;
startInfo.Arguments = $"/c sc Start " + serverName;
//设置启动动作,确保以管理员身份运行
startInfo.Verb = "RunAs";
try
{
System.Diagnostics.Process.Start(startInfo);
}
catch
{
}
}
}
}
C# 启动windows 服务(通过cmd管理员方式和winform 方式)的更多相关文章
- 使用.NET Core中创建Windows服务(一) - 使用官方推荐方式
原文:Creating Windows Services In .NET Core – Part 1 – The "Microsoft" Way 作者:Dotnet Core Tu ...
- 使用.NET Core创建Windows服务(一) - 使用官方推荐方式
原文:使用.NET Core创建Windows服务(一) - 使用官方推荐方式 原文:Creating Windows Services In .NET Core – Part 1 – The &qu ...
- 网页启动Windows服务
如何在网页启动Windows服务 由于公司有许多windows服务进行业务的处理,所谓对服务的维护也是一个比较头痛的问题,因为自己也不知道服务什么时候自动停了,而且更主要的原因是服务都是由运维部门 ...
- c#启动windows服务问题总结
程序以管理员权限运行的原因 在Vista 和 Windows 7 及更新版本的操作系统,增加了 UAC(用户账户控制) 的安全机制,如果 UAC 被打开,用户即使以管理员权限登录,其应用程序默认情况下 ...
- 如何在网页启动Windows服务
由于公司有许多windows服务进行业务的处理,所以对服务的维护也是一个比较头痛的问题,因为自己也不知道服务什么时候自动停了,而且更主要的原因是服务都是由运维部门在维护管理,开发这边没有直接操作服务的 ...
- Windows服务中用Timer和线程两种方式来执行定时任务
在Service服务文件夹下新建Windows服务 - TestService
- 启动windows服务的bat文件编写格式
1.bat文件需要和bin文件内容放在一起 启动服务的bat文件如下: sc create 邮件服务 binPath= "%~dp0可执行文件名称.exe" start= auto ...
- 启动Windows服务
实现效果: 知识运用: ServiceController类的ServiceName Status属性 public string ServiceName {get; set;} //对此Servic ...
- Windows Service 学习系列(二):C# windows服务:安装、卸载、启动和停止Windows Service几种方式
一.通过InstallUtil.exe安装.卸载.启动.停止Windows Service 方法一 1.以管理员身份运行cmd 2.安装windows服务 切换cd C:\Windows\Micros ...
- 无法从命令行或调试器启动服务,必须首先安装Windows服务(使用installutil.exe),然后用ServerExplorer、Windows服务器管理工具或NET START命令启动它
无法从命令行或调试器启动服务,必须首先安装Windows服务(使用installutil.exe),然后用ServerExplorer.Windows服务器管理工具或NET START命令启动它 1. ...
随机推荐
- 【Python】导出docx格式Word文档中的文本、图片和附件等
[Python]导出docx格式Word文档中的文本.图片和附件等 零.需求 为批量批改学生在机房提交的实验报告,我需要对所有的实验文档内容进行处理.需要批量提取Word文档中的图片和附件以便进一步检 ...
- Win10隐藏托盘图标-注册表
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer NoTrayItemsDisplay(类型: ...
- public boolean add(E e)的源码分析
public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess ...
- VScode前端代码编辑器:修改默认打开的浏览器和代码提示设置
一.修改默认打开的浏览器 二.代码提示设置
- C#之值类型与引用类型--out参数--ref参数-"=="、Equals和ReferenceEquals之间的区别
一.值类型和引用类型 1.值类型 (1)值类型的大小是固定的 (2)值类型都派生自ValueType (3)值类型不能继承,只能实现接口 2.值类型:int.char.double.float.lon ...
- .NET周刊【3月第4期 2025-03-23】
国内文章 C# 中比较实用的关键字,基础高频面试题! https://www.cnblogs.com/Can-daydayup/p/18784074 文章探讨了C#编程中的关键字,尤其是访问修饰符的种 ...
- Python 潮流周刊第3季总结,附电子书下载
我订阅了很多的周刊/Newsletter,但是发现它们都有一个共同的毛病:就是缺乏对往期内容的整理,它们很少会对内容数据作统计分析,更没有将内容整理成合集的习惯. 在自己开始连载周刊后,我就想别开生面 ...
- [flask]自定义请求日志
前言 flask默认会在控制台输出非结构化的请求日志,如果要输出json格式的日志,并且要把请求日志写到单独的文件中,可以通过先禁用默认请求日志,然后在钩子函数中自行记录请求的方式来实现. 定义日志器 ...
- Spring纯注解的事务管理
Spring纯注解的事务管理 源码 代码测试 pom.xml <?xml version="1.0" encoding="UTF-8"?> < ...
- SpringMVC返回值
字符串 /** * 测试返回字符串 * @param model model * @return 返回的字符串,通过视图解析器调整到jsp页面 */ @RequestMapping("/te ...