wmi4j是纯Java实现的Windows WMI客户端,它基于j-interop针对WMI重新封装,提供了更便捷的方法,能满足基本的windows管理,包括服务管理,性能查询,执行脚本等等。

wmi4j下载

用Maven的朋友们可以直接引入,groupId=cn.chenlichao, artifactId=wmi4j, version=0.9。 源码地址: Github: https://github.com/chenlichao-cn/wmi4j使用其他构件框架的朋友,可以去maven中央库或者http://maven.oschina.net查询wmi4j,当然要记得下载它的依赖包:org.glassfish.main.external:j-interop-repackaged:4.0

org.slf4j:slf4j-api:1.7.7

org.apache.commons:commons-lang3:3.1

使用wmi4j管理Windows服务

用wmi4j管理很方便,少量代码就可以完成功能,下面我们用一个实际的例子来演示如何获取服务列表,查询服务,获取指定服务状态,启动服务和停止服务几个最常用的功能。

WMI相关的文档,请参考微软官方文档: WMI Referencepublic static void main(String[] args) {

//设定连接参数

String server = "192.168.1.201";

String username = "administrator";

String password = "password";

String namespace = "root\\cimv2";

//构建连接器

SWbemLocator locator = new SWbemLocator(server,username,password,namespace);

try {

//连接远程服务器

SWbemServices wbemServices = locator.connectServer();

//遍历服务列表

SWbemObjectSet services = wbemServices.instancesOf("Win32_Service");

System.out.println("服务数量: " + services.getCount());

Iterator iterator = services.iterator();

while(iterator.hasNext()) {

SWbemObject service = iterator.next();

System.out.println(service.getObjectText());

System.out.println("-----------------------------------------------");

break; //服务很多,就只打一个吧

}

//查询Windows开头的服务

SWbemObjectSet winServices = wbemServices.execQuery(

"select * from Win32_Service where DisplayName like 'Windows%'");

System.out.println("Windows开头的服务数: " + winServices.getCount());

//通过服务名,直接获取服务。

//注意: 服务名不是services.msc列表里显示的名称,显示的名称是DisplayName属性,

//而get方法必须使用主键属性Name. 例如: Application Management服务,

//在services.msc是这样显示的, 但它服务名是AppMgmt, 可以通过属性查看。

SWbemObject dhcpClient = wbemServices.get("Win32_Service.Name='AppMgmt'");

System.out.println("服务名: " + dhcpClient.getPropertyByName("Name")

.getStringValue());

System.out.println("显示名: " + dhcpClient.getPropertyByName("DisplayName")

.getStringValue());

//获取服务状态

System.out.println("状态: " + dhcpClient.getPropertyByName("State").getStringValue());

//启动服务

dhcpClient.execMethod("StartService");

System.out.println("启动后的状态: " + wbemServices.get("Win32_Service.Name='AppMgmt'")

.getPropertyByName("State").getStringValue());

//停止服务

dhcpClient.execMethod("StopService");

System.out.println("再次停止后的状态: "

+ wbemServices.get("Win32_Service.Name='AppMgmt'")

.getPropertyByName("State").getStringValue());

} catch (WMIException e) {

e.printStackTrace();

} catch (UnknownHostException e) {

e.printStackTrace();

}

}

wmi java_Java用wmi4j远程管理Windows服务相关推荐

  1. 运维基本功(十六):远程管理SSH服务

    本文是在课程课件基础上修改的学习笔记 课程原地址:https://www.bilibili.com/video/BV1nW411L7xm 如有侵删 运维基本功(一):Linux系统安装 运维基本功(二 ...

  2. python windows系统管理_利用Python脚本管理Windows服务

    Windows服务常用的功能就是启动服务,关闭服务,重启服务和查询服务运行状态,其中查询服务运行状态是其他三种操作的基础. 本文中提到的使用Python脚本管理Windows服务实际上是调用win32 ...

  3. 使用Powershell远程管理Windows Server(WinRM)

    在Linux中,我们可以使用安全的SSH方便的进行远程管理.但在Windows下,除了不安全的Telnet以外,从Windows Server 2008开始提供了另外一种命令行原创管理方式,那就是基于 ...

  4. PowerShell远程管理Windows Server(2):公网访问【web形式】

    *此文章只适合于windows server 2012版本以上: Powershell Web Access需要两个步骤才能使用: 一.安装powershell web access功能: 二.配置p ...

  5. 如何使用Topshelf管理Windows服务

    一.官方网站及源码下载 1.官方网站:http://topshelf-project.com/ 2.源码下载:https://github.com/Topshelf/Topshelf/download ...

  6. 使用Topshelf管理Windows服务

    目的:以控制台方式开发Windows服务程序,调试部署方便. https://www.cnblogs.com/itjeff/p/8316244.html https://www.cnblogs.com ...

  7. android远程管理Windows,使用Android、IOS设备远程控制Windows系统

    大家都知道,Windows支持远程控制功能,可在同一局域网内连接控制电脑,借助RD网关还可以在互联网里自由连接控制其它内网中的某台电脑.微软其实针对Android.IOS.Mac等系统都推出了RD客户 ...

  8. WINDOWS远程管理下的远程桌面与远程桌面服务

    序言:互联网发展的今天,我们如何管理WINDOWS下的远程计算机?办法有很多,一种就是借助远程管理软件,比如VNC.RemotelyAnywhere等.这类软件是第三方开发的,而且需要安装,另外一种方 ...

  9. Windows远程管理WinRM,Enter-PSSession

    Windows远程管理WinRM,Enter-PSSession 前置条件 启用PowerShell远程管理: 1)在本地计算机(需要管理远程计算机的计算机)上运行Set-item wsman:loc ...

最新文章

  1. MySQL binlog
  2. html标签库jar包,struts2的s标签库jar包
  3. boost::minimum_degree_ordering用法的测试程序
  4. 宏定义对调试代码的作用
  5. 软件工程——认识方法、模型、工具和技术
  6. 【mysql系列】细谈explain执行计划之“谜”
  7. vue中引用swiper轮播插件
  8. 软件技术方案_广东省汕尾市海丰陈氏数字化网络化全县族谱统修工作方案(草案)...
  9. Python 实现最简单的元胞自动机
  10. 斐讯K3官改,安装onmp教程,回馈社区。
  11. SSH与SSM的区别
  12. xjoj挖金矿(二分验证)
  13. vscode html修改默认浏览器,vscode修改默认浏览器的方法
  14. Android新浪微博开发(一)授权认证
  15. 大数据环境搭建 —— VMware Workstation 安装详细教程
  16. 《数据结构(C语言版)》严蔚敏代码实现———顺序表
  17. 利用Python从字幕网上下载自己所需要的字幕(热门电影、美剧等)
  18. 春秋杯CTF2022 WP
  19. 为什么很多聪明的人,却一辈子在社会最底层?
  20. 计算机毕业设计源码分享双鱼林,双鱼林SSM图书信息管理系统毕业课程设计源码 - WEB源码|源代码 - 源码中国...

热门文章

  1. Android - App瘦身
  2. 云计算机上存储的文件能删除吗,用户数据安全存储,华为云空间这些功能大显身手...
  3. Ant Design 圣诞节的踩蛋!
  4. Pytorch总结一之 数据操作、类型转换、数学计算、自动求梯度
  5. codeforce 333B chips
  6. 教师节这天,马云宣布传承计划!六大关键问题首次揭秘
  7. 准备考研都应该做什么
  8. MAAS 模型即服务:人工智能大模型时代已经到来
  9. 数据库:国家人口健康-青少年健康数据库
  10. 网易笔试题(Java部分)