bat脚本获取电脑上所有windows服务的信息?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了bat脚本获取电脑上所有windows服务的信息?相关的知识,希望对你有一定的参考价值。

包括服务名称,显示名称、状态、启动类型以及可执行文件的路径. 用这个为什么乱码不好使呀

显示乱码的话,应该是您保存脚本文件时的编码未设为ANSI。在Win10系统上脚本/文本默认的保存编码是UTF8,而这个编码对有中文字符的脚本不是很友好。所以会出现乱码现象。因此只需存为ANSI编码的脚本即可解决此问题。来自:求助得到的回答 参考技术A 那就是使用的不合适 选其他的方式的吧 参考技术B



    bat文件中写 net start “服务名” 例如启动打印机服务  net start spooler

    2  每次启动服务器执行,一种办法是将此BAT文件放在启动文件夹中  开始-程序-启动, 另外一种办法就是新建一个计划任务,设置开机时运行这个BAT

    我出现“711错误”的原因是:把“C:\\Windows\\System32”右键取得管理员权限导致的!

在这里做一个调查,毕竟最近出现这个问题的朋友很多,大家说一下


自己都是因为什么原因才出现的这个问题的?(新装的系统就这样?还是改了哪里之后?)


有彻底解决的方案了么???(除了重装系统和系统还原)


希望通过本帖在软媒能够为正在为这个问题烦恼的朋友们彻底地解决这个问题!


采取的解决方法已经有以下几种,这也是到目前为止我能找到的所有方法:


第一种方法:


请看你的以下服务:


服务名称:eventlog 显示名称: Windows Event Log 启动类型:自动


服务名称:TapiSrv 显示名称: Telephony 启动类型:手动


服务名称:SstpSvc 显示名称: Secure Socket Tunneling Protocol Service 启动类型:手动


服务名称:Netman 显示名称: Network Connections 启动类型:手动


服务名称:nsi 显示名称: Network Store Inte***ce Service 启动类型: 自动


服务名称:RasMan 显示名称: Remote Access Connection Manager 启动类型:手动


出现错误:711 的朋友, 我想大家的服务设置应该是出在了 我列出的第一个服务上 


第一个服务描述:此服务管理事件和事件日志。它支持日志记录事件、查询事件、订阅事件、归档事件日志以及管理事件元数据。它可以用 XML 和纯文本两种格式显示事件。停止该服务可能危及系统的安全性和可靠性。


由于禁用第一个服务, 将导致 服务名称:SstpSvc 显示名称: Secure Socket Tunneling Protocol Service 这个启动后自动停止


而 服务名称:RasMan 显示名称: Remote Access Connection Manager 这个服务需要依赖它,


第二种方法:


这个问题很好解决!在命令符以管理员运行。。输入netsh winsock reset  回车,重启即可 


第三种方法:


找到 C:\\Windows\\System32\\LogFiles\\WMI 这个文件夹,只要将这个文件夹管理员取得所有权然后重启就行了!  使用魔方在系统设置右键菜单管理里面新增“获得管理员权限”的功能,然后就可以在上面这个文件夹上点击鼠标右键,管理员取得所有权即可解决。


第四种:(这个方法没试,肯定管用,但不想每次关机都执行,感觉想掩耳盗铃啊~呵呵)


看到由会员问-------把 C:\\Windows\\System32\\LogFiles\\WMI 这个文件夹取得管理权。

之后重启,可以正常宽带连接。然后重启却又是这样的问题,只好又去取得那个文件的管理员权限,这样重启后又可以上了


老这样重启确实很烦人,告诉大家个土办法,虽然土,但是确实方便,遇到问题不用老是取权限,重启了。其实道理一样,只不过写一个脚本并让他关机时自动运行一下就好了。方法如下:

1,将下面的代码保存成.bat格式(名字自己娶一个就好,我设为711.bat) 放到不易删除的地方,代码为 @ECHO OFF

takeown /f "C:\\Windows\\System32\\LogFiles\\WMI" /r /d y && icacls "C:\\Windows\\System32\\LogFiles\\WMI" /grant administrators:F /t


鼓励大家自己动手,丰衣足食。懒点的或不会保存的可以直接花点钱 下载下面的附件 已经写好了


2,单击“开始” “运行”,在运行命令框中输入“Gpedit.msc”,打开组策略窗口 在左侧的控制台树窗格中,依次展开“计算机配置” “Windows设置” “脚本 启动/关机 ”节点 如图 ,双击右侧详细资料窗格中的“关机”项目,在弹出的“关机属性”对话框中点击“添加”按钮,将711.bat添加为新的计算机关机脚本 设置完成后,退出组策略窗口,重新启动计算机即可


第五种:


安装完成Windows7之后,发现设置拨号连接后发现不能拨号上网,不是711错误,就是1068依赖服务不能启动,或者691错误,等等,可谓出错信息五花八门!


没法子,只好装回WindowsXP,然后上网搜索原因,这时才发现也有不少朋友出现同样的错误,经过对网上资料的查找及分析,以及下载备好所需要用到的软件之后,再次装回Windows7。


试着用网上得到的资料来解决问题,搞到深更半夜,发现仍然出错,没法,重启再看看先,不行就睡觉,准备第二天再装回WindowsXp,一重启,惊喜来了,能够连接上网了,网页能够正常打开,成功!


已是深夜2点,睡觉去了,zzzzzzz~~~~~~~


通过几个小时的摸索,成功拨号上网!

现在把可能的解决办法,写出来共享,不一定能解决所有朋友的问题,但可以一试!


一、

安装好Windows7,然后打开“控制面板”——》打开“网络和Internet”——》打开“查看网络状态和任务”,选择“设置新的连接或网络”,根据你的网络类型设置好连接,设置方法基本和WindowsXp一样。


二、

①“计算机--管理--服务和应用程序--服务”,找到“Remote Access Connection Manager”,看看“启动类型”里是否是“自动”,如果不是,就改为“自动”。再同理找到“Internet Connection Sharing(ICS)”,并设置“自动”。高比下载


三、

找到“ c:\\windows\\system32\\logfiles”这个文件夹并打开。


选中并右键单击“WMI”文件夹。选择“获取管理员权限”。


四、

重启电脑!


五、

单击右下角“”,


点击“宽带连接”及“”按钮。图标“”变成“ ”,OK!

打开网络和共享中心,用网通宽带转换工具转换用户名复制粘贴,输入密码就可以了。改下计算机名就ok了.右击计算机.点属性.点高级系统设置.再点计算机名.点击更改.把最上面计算机名用英文或字母重设一下.重启电脑.登录后重新设个连接就搞定了.

bat 服务启动脚本

  当电脑上有多个数据库(特别是Oracle,占用内存大,所以我都是设置为手动启动的,或者想在电脑上运行一下其他UI类软件或玩些游戏的时候也需要暂时关掉,奈何我这渣机(V_V))需要启动或停止的时候,就用不着每次都启动服务管理器,再去找需要关闭的服务再点击操作了。使用bat语言的net start 或 net stop 即可操作服务的启动或停止,我的脚本如下:

  


  

@echo off
::以管理员的身份开始执行文件
cd /d %~dp0
%1 start "" mshta vbscript:createobject("shell.application").shellexecute("""%~0""","::",,"runas",1)(window.close)&exit 

::如果判断为真goto跳转到这里继续执行操作。
:r

::set 的/p参数可以使变量var接收输入数据
set /p var=请选择需要的操作(启动服务(y)/停止服务(n))
set /p no=请选择需要操作的服务(erp1(e)/Orcl1(o)/监听(j)/所有服务(a))

::bat里我没找到与运算符,就用if的嵌套实现吧
if %var%==y  if %no%==o net start OracleServiceOrcl1

if %var%==n  if %no%==o net stop OracleServiceOrcl1

if %var%==y  if %no%==e net start OracleServiceERP1

if %var%==n  if %no%==e net stop OracleServiceERP1

if %var%==y  if %no%==j net start OracleOraDb11g_home1TNSListener

if %var%==n  if %no%==j net stop OracleOraDb11g_home1TNSListener

if %var%==y  if %no%==a (net start OracleServiceERP1
 net start OracleServiceOrcl1
 net start OracleOraDb11g_home1TNSListener)

if %var%==n  if %no%==a (net stop OracleServiceERP1
net stop OracleServiceOrcl1
net stop OracleOraDb11g_home1TNSListener)

::choice 的/c 参数允许用户从选择列表选择一个项目并返回所选项目的索引,默认为"YN",所以实际我这里YN是可以不要的,当然也可以自己定义,/M 参数可以指定提示信息。
%errorlevel%为errorlevel环境变量的引用,在choice中该变量列出的第一个选 择返回 1,第二个选择返回 2,等等。 choice /c YN /M "继续请按 Y,退出请按 N" if %errorlevel%==1 (goto r) else (exit)

:: 后面的内容为注释部分,不会被执行。在脚本中我已经对一些内容进行了注解,实际上cmd的帮助文档是很好了的,比如在cmd窗口中输入 if /? 、 choice /?就可以看到对应命令的比较详细的讲解了。

代码让生活更简单,在此作个学习记录和分享。。。

以上是关于bat脚本获取电脑上所有windows服务的信息?的主要内容,如果未能解决你的问题,请参考以下文章

bat批处理脚本获取window系统所有用户名并设置密码

bat批处理脚本获取window系统所有用户名并设置密码,禁用Guest账户

bat 服务启动脚本

bat脚本之启动MySQL服务

windows如何开机自动运行定时关机脚本

Window系统上自制快速关机脚本