一个需求要求每天定时开关一项服务。假如这项服务是Redis。那么用什么指令呢?

其实很简单,用下方两个指令就可以开关某个服务:

net start 服务名
net stop  服务名

我们用管理员方式打开cmd(比较重要,后面会说)。假如我们要关闭的服务是Redis。那么就输入 net stop Redis。如下所示:

这样就可以启动或者关闭一项服务了。

但是客户要求定时开关,这个时候就想到了windows的计划任务+bat批处理文件的形式。

我们新创建两个批处理文件,里面的内容就是我们刚才启动和关闭一项服务的命令。

然后我们编写完bat批处理文件,双击运行后,发现并不能停止或打开服务,原因很简单,我们编写的批处理文件没有管理员权限,我们必须以管理员权限运行才可以。但是我们运用windows 计划任务又不能自动给批处理文件赋权限,

看了很多文章说,如何在bat文件前加一段代码,先获得管理员权限再运行程序,但是这样基本都是弹出一个对话框让用户确定,这肯定不行。后来找到了下面的方法:

我们输入win+r,然后输入secpol.msc,我们找到 “本地策略”—> “安全选项”

“以管理员批准模式运行所有管理员”

然后将这个选项禁用,重启电脑后生效。

PS:如果你当前登陆的windows账号就是管理员权限,那么不用进行这个操作,你运行bat的时候就是管理员权限。

分类: 其他