接上回,接下来是关机,这个需要用到权限哦
PS:以下代码都在windows xp上运行通过,windows 7会有什么表现我还不确定,虽然我现在用的是win7,懒得测试了。但有一点可以确定,wsh的regWrite和regDelete在win7上是不会成功的,我估计是win7的安全机制在其作用。
至于vista,啊,vista是什么?
private void shutdownInWindows() {//接上回
ISWbemLocator wbemLocator = ClassFactory.createSWbemLocator();
ISWbemServices wbemServices = wbemLocator.connectServer("localhost",
"Root\\CIMv2", "", "", "", "", 0, null);
ISWbemSecurity security = wbemServices.security_();//调用安全接口
security.privileges().add(WbemPrivilegeEnum.wbemPrivilegeShutdown, true);//打开关机权限,必须,否则windows不予理睬...
security.impersonationLevel(WbemImpersonationLevelEnum.wbemImpersonationLevelImpersonate);
ISWbemObjectSet result = wbemServices.execQuery(
"Select * From Win32_OperatingSystem", "WQL", 16, null);//使用wql获得操作系统对象
for (Com4jObject obj : result) {
ISWbemObject wo = obj.queryInterface(ISWbemObject.class);
wo.execMethod_("Shutdown", null, 0, null);//调用关机命令,OK
}
}
然后呢,是获取系统日志,很强大啊
private void getEventsInWindowsWithCondition(Set<Event> set, int logType, String condition) {
ISWbemLocator wbemLocator = ClassFactory.createSWbemLocator();
ISWbemServices wbemServices = wbemLocator.connectServer("localhost",
"Root\\CIMv2", "", "", "", "", 0, null);
ISWbemObjectSet result = wbemServices.execQuery(//wql,MSDN上可以查到的,不用多少了
"Select EventType,TimeGenerated,SourceName,Message,EventCode From Win32_NTLogEvent Where Logfile = '" + Event.LogType.valueOf(logType) + "'" + condition, "WQL", 16, null);
for (Com4jObject obj : result) {
ISWbemObject wo = obj.queryInterface(ISWbemObject.class);
Event e = new Event();
e.setLogType(logType);
e.setEventType((Short) wo.properties_("EventType", 0).value());//获取字段值
e.setDate(parseDate(wo.properties_("TimeGenerated", 0).value()));
e.setSource((String) wo.properties_("SourceName", 0).value());
e.setMessage((String) wo.properties_("Message", 0).value());
e.setCode((Integer) wo.properties_("EventCode", 0).value());
set.add(e);
}
}
分享到:
相关推荐
本文将深入探讨如何使用j-Interop来连接WMI并获取Windows系统信息。 首先,j-Interop是一个开源项目,它为Java提供了一个全面的COM和ActiveX互操作性解决方案。通过j-Interop,Java开发者可以调用COM对象,例如WMI...
总的来说,通过C#调用WMI获取系统信息是Windows开发中的一个重要技能,它可以帮助开发者或系统管理员获取详细的系统状态,进行故障排查、性能监控和资源管理。了解并熟练运用这一技术对于提升工作效率和解决问题具有...
Python用WMI模块获取Windows系统的硬件信息:硬盘分区、使用情况,内存大小,CPU型号,当前运行的进程,自启动程序及位置,系统的版本等信息。 本文实例讲述了python使用wmi模块获取windows下的系统信息 监控系统 ...
WMI(Windows Management Instrumentation)是微软Windows操作系统提供的一种管理和操作环境,允许应用程序通过标准接口访问和控制操作系统、硬件设备和服务等系统资源的信息。在Java环境中,若要进行WMI调用,通常...
在IT领域,Windows Management Instrumentation(WMI)是Windows操作系统提供的一个核心组件,它允许应用程序通过标准接口访问和管理系统的各种资源,如硬件、软件、网络等。C++调用WMI来遍历进程,是一种常见的系统...
使用wmi4j 连接远程主机获取进程列表,创建文件夹、共享文件夹、执行netstat -ano输出到aa.txt文件,读取文件、撤销文件夹共享、删除文件夹及aa.txt文件;即实现远程执行cmd命令获取命令执行的结果的效果。
WMI(Windows Management Instrumentation)是微软提供的一个核心组件,用于管理系统和网络环境中的各种资源,提供了丰富的接口来获取系统信息。本示例将详细探讨如何使用Delphi操作WMI来获取大量系统信息。 首先,...
在IT领域,Windows Management Instrumentation(WMI)是一个强大的工具,用于管理和监控Windows操作系统以及运行在其上的应用程序。本文将深入探讨如何利用C++通过WMI获取操作系统的补丁(hotfix)信息,同时...
本资源提供了一个用C++编写的库,专门用于处理IP地址的获取和修改功能,它同时兼容Windows和WinCE操作系统。这个库巧妙地结合了`NetworkCfg`接口和`WMI`(Windows Management Instrumentation)技术,以实现高效、...
标题和描述均指向了一个核心议题,即如何使用C/C++结合Windows Management Instrumentation (WMI)和系统API函数来获取系统的硬件配置信息。这不仅包括常见的性能监控指标如CPU使用率、内存使用情况和网络利用率,还...
这是一个Golang 获取wmi windows硬件信息的源代码,包括CPU,网卡,内存,硬盘等信息
本篇文章将详细解释如何使用C#调用WMI获取系统信息,并提供源代码和示例。 首先,理解WMI:它是微软的管理规范,允许应用程序通过标准接口查询和更改Windows系统状态。WMI提供了丰富的类库,这些类库对应于系统中的...
Python 使用 WMI 获取及修改 Windows 系统信息 概述 本文档介绍了使用 Python 语言通过 WMI(Windows ...使用 WMI 获取和修改 Windows 系统信息可以帮助开发者更好地管理和监控系统资源,提高系统的安全性和稳定性。
在IT行业中,Windows Management Instrumentation(WMI)是一种强大的接口,允许开发者获取和管理系统资源的信息。MFC(Microsoft Foundation Classes)是C++编程中的一个框架,它为开发Windows应用程序提供了便利。...
在IT领域,VB(Visual Basic)是一种常用的编程语言,它为开发者提供了强大的工具来...总的来说,通过VB和WMI,你可以轻松地获取和处理Windows系统中的各种信息,这对于系统监控、日志记录、故障排查等任务非常有用。
在IT领域,Windows Management Instrumentation(WMI)是一种强大的系统管理工具,允许开发者通过脚本或编程语言查询和控制Windows操作系统中的各种管理信息。本文将深入探讨如何利用C#编程语言,通过WMI来获取远程...
本篇将深入探讨如何使用Windows Management Instrumentation(WMI)来设置和获取网卡信息,特别是在本地连接中的应用。WMI是Microsoft提供的一种系统管理接口,它允许开发者通过标准的脚本语言或编程语言来访问和...
【标题】"wmi应用(用于获取CPUID和硬盘ID)" 涉及到的是Windows Management Instrumentation(WMI)技术的应用,它主要用于在Windows操作系统中获取计算机硬件和软件的相关信息,例如CPU标识符(CPUID)和硬盘的唯一...
在Windows操作系统中,系统日志记录了各种操作和事件,包括系统的启动、关闭以及其他关键活动。获取系统的开关机时间可以通过解析这些日志来实现。本文将深入探讨如何通过读取系统日志来获取这一信息,并提供一个...
在Windows操作系统中,WMI(Windows Management Instrumentation)是一个核心组件,它提供了对系统硬件、软件和服务等资源的全面管理能力。WMI是基于WBEM(Web-Based Enterprise Management)标准的,允许开发者通过...