100
Posted on100%纯java调用windows的wmi获取监控数据 - 肖国颖的个人页面 - 开源中国社区
开源项目发现、使用和交流平台
当前访客身份: arctichia [ 我的空间 | 退出 ] 你有0新留言
软件 代码 讨论区 新闻 博客
软件
博客分类
- 1. 在Android中嵌入AdMob广告,赚午饭钱
- 2. 解决iOS6看YouTb的心酸,补充可看版(goagent+opendoor)
- 3. 当单例(Singleton)爱上多线程——重复初始化问题
- 4. Java序列化与JSON序列化大比拼
- 5. 在Eclipse中用Scala语言开发Android应用
- 6. Ubuntu 12.10下用Empathy(pidgin-lwqq)登录QQ
- 7. 解决Ubuntu 12.04下频繁死机-Chrome
- 8. 以Jar形式为Web项目提供资源文件(JS、CSS与图片)
最新评论
- @wenshao:fastjson缺省是做循环引用检测的,你关掉这个再测... 查看»
- @wenshao:这个测试不对,你直接测试JavaBean而不是Map看看... 查看»
- @rrstpit:Fffff 查看»
- @付学良:引用来自“xautlx”的评论 Servlet3规范好像已经... 查看»
- @yezheng1993:引用来自“肖国颖”的评论 引用来自“yezheng19... 查看»
- @肖国颖:引用来自“yezheng1993”的评论 请问一下怎么在那... 查看»
- @yezheng1993:请问一下怎么在那边创建文件以及文件夹,新手,还... 查看»
- @xautlx:Servlet3规范好像已经有标准支持:https://blogs... 查看»
- @ahnan:www.webjars.org 查看»
今日访问:26
- 昨日访问:148
- 本周访问:389
- 本月访问:1573
- 所有访问:52224
100%纯java调用windows的wmi获取监控数据
23人收藏此文章, 我要收藏 发表于12个月前(2012-08-16 18:17) , 已有2348次阅读 ,共5个评论
纯java主要体现在可以跨平台调用com。所用的是j-Interop,它是100%纯java实现的com的调用
1、环境准备
a、windows要开启Remote Registry与Windows Management Instrumentation服务
b、修改安全策略
我系统是英文的,如果是中文系统,翻译为中文,相对应的查找并修改。
Administrative Tools>Local Security Policy>Local Policy>Security Policy>Network access: Sharing and security model for local accounts
修改为Classic(经典)
c、禁用放火墙
d、window2008系统注册表越狱(高版本的win)
需要修改regedit中HKEY_CLASSES_ROOT\CLSID{76A64158-CB41-11D1-8B02-00600806D9B6}的权限,windows2008不再给Administrators完全控制权。
下载SetACL.exe,下载地址:http://files.helgeklein.com/downloads/SetACL/current/SetACL%20(executable%20version).zip
set_wmi_reg_acl.cmd
1
SetACL.exe -on
"HKEY_CLASSES_ROOT\CLSID{76A64158-CB41-11D1-8B02-00600806D9B6}"
-ot reg -actn setowner -ownr
"n:Administrators"
2
SetACL.exe -on
"HKEY_CLASSES_ROOT\CLSID{76A64158-CB41-11D1-8B02-00600806D9B6}"
-ot reg -actn ace -ace
"n:Administrators;p:full"
以超级管理员身份执行这个cms,就会把owner与完全控制权限授予Administrators组
#
2、程序代码
java类
001
package
org.noah.wmitest;
002
003
import
org.jinterop.dcom.common.JIException;
004
import
org.jinterop.dcom.common.JISystem; 005
import
org.jinterop.dcom.core./*;
006
import
org.jinterop.dcom.impls.JIObjectFactory; 007
import
org.jinterop.dcom.impls.automation.IJIDispatch;
008
import
org.jinterop.dcom.impls.automation.IJIEnumVariant; 009
import
org.slf4j.Logger;
010
import
org.slf4j.LoggerFactory; 011
012
import
java.net.UnknownHostException; 013
import
java.util.logging.Level;
014
015
///
016
/* Created with IntelliJ IDEA. 017
/* User: noah
018
/* Date: 8/16/12 019
/* Time: 8:00 AM
020
/* To change this template use File | Settings | File Templates. 021
/*/
022
public
class
WmiService { 023
024
private
JIComServer m_ComStub =
null
; 025
private
IJIComObject m_ComObject =
null
;
026
private
IJIDispatch m_Dispatch =
null
; 027
private
String m_Address =
null
;
028
private
JISession m_Session =
null
; 029
private
IJIDispatch m_WbemServices =
null
;
030
031
private
static
final
String WMI_CLSID =
"76A6415B-CB41-11d1-8B02-00600806D9B6"
;
032
private
static
final
String WMI_PROGID =
"WbemScripting.SWbemLocator"
; 033
034
private
Logger logger = LoggerFactory.getLogger(
this
.getClass()); 035
036
037
public
WmiService(String address) {
038
JISystem.setAutoRegisteration(
true
); 039
JISystem.getLogger().setLevel(Level.WARNING);
040
m_Address = address; 041
}
042
043
public
void
query(String strQuery) {
044
045
System.out.println(
"query:"
- strQuery);
046
047
JIVariant results[] =
new
JIVariant[
0
];
048
try
{ 049
results = m_WbemServices.callMethodA(
"ExecQuery"
,
new
Object[]{
new
JIString(strQuery), JIVariant.OPTIONAL_PARAM(), JIVariant.OPTIONAL_PARAM(), JIVariant.OPTIONAL_PARAM()});
050
IJIDispatch wOSd = (IJIDispatch) JIObjectFactory.narrowObject((results[
0
]).getObjectAsComObject()); 051
052
int
count = wOSd.get(
"Count"
).getObjectAsInt(); 053
054
IJIComObject enumComObject = wOSd.get(
"_NewEnum"
).getObjectAsComObject(); 055
IJIEnumVariant enumVariant = (IJIEnumVariant) JIObjectFactory.narrowObject(enumComObject.queryInterface(IJIEnumVariant.IID));
056
057
IJIDispatch wbemObject_dispatch =
null
;
058
059
for
(
int
c =
0
; c < count; c++) {
060
061
Object[] values = enumVariant.next(
1
);
062
JIArray array = (JIArray) values[
0
]; 063
Object[] arrayObj = (Object[]) array.getArrayInstance();
064
for
(
int
j =
0
; j < arrayObj.length; j++) { 065
wbemObject_dispatch = (IJIDispatch) JIObjectFactory.narrowObject(((JIVariant) arrayObj[j]).getObjectAsComObject());
066
} 067
068
String str = (wbemObject_dispatch.callMethodA(
"GetObjectText_"
,
new
Object[]{
1
}))[
0
].getObjectAsString2(); 069
System.out.println(
"("
- c +
"):"
);
070
System.out.println(str); 071
System.out.println();
072
} 073
074
075
}
catch
(JIException e) {
076
e.printStackTrace(); 077
}
078
} 079
080
public
void
connect(
final
String domain,
final
String username,
final
String password) { 081
try
{
082
083
m_Session = JISession.createSession(domain, username, password);
084
m_Session.useSessionSecurity(
true
); 085
m_Session.setGlobalSocketTimeout(
5000
);
086
087
m_ComStub =
new
JIComServer(JIProgId.valueOf(WMI_PROGID), m_Address, m_Session);
088
089
IJIComObject unknown = m_ComStub.createInstance();
090
m_ComObject = unknown.queryInterface(WMI_CLSID); 091
092
m_Dispatch = (IJIDispatch) JIObjectFactory.narrowObject(m_ComObject.queryInterface(IJIDispatch.IID)); 093
JIVariant results[] = m_Dispatch.callMethodA(
094
"ConnectServer"
, 095
new
Object[]{
096
new
JIString(m_Address), 097
JIVariant.OPTIONAL_PARAM(),
098
JIVariant.OPTIONAL_PARAM(), 099
JIVariant.OPTIONAL_PARAM(),
100
JIVariant.OPTIONAL_PARAM(), 101
JIVariant.OPTIONAL_PARAM(),
102
0
, 103
JIVariant.OPTIONAL_PARAM()
104
} 105
);
106
107
m_WbemServices = (IJIDispatch) JIObjectFactory.narrowObject((results[
0
]).getObjectAsComObject());
108
109
}
catch
(JIException e) {
110
e.printStackTrace(); 111
if
(m_Session !=
null
) {
112
try
{ 113
JISession.destroySession(m_Session);
114
}
catch
(JIException e1) { 115
logger.error(e.getMessage(), e);
116
} 117
}
118
}
catch
(UnknownHostException e) { 119
if
(m_Session !=
null
) {
120
try
{ 121
JISession.destroySession(m_Session);
122
}
catch
(JIException e1) { 123
logger.error(e.getMessage(), e);
124
} 125
}
126
} 127
}
128
129
public
void
disconnect() {
130
try
{ 131
JISession.destroySession(m_Session);
132
}
catch
(JIException e) { 133
logger.error(e.getMessage(), e);
134
} 135
}
136
137
138
public
static
void
main(String[] args) { 139
140
WmiService wmiService =
new
WmiService(
"172.16.158.129"
); 141
142
//域(一般为空字符),用户名,密码 143
wmiService.connect(
""
,
"username"
,
"password"
);
144
145
//系统信息
146
wmiService.query(
"SELECT /* FROM Win32_ComputerSystem"
); 147
148
//CPU信息 149
wmiService.query(
"SELECT /* FROM Win32_PerfFormattedData_PerfOS_Processor WHERE Name != '_Total'"
);
150
151
//内存信息
152
wmiService.query(
"SELECT /* FROM Win32_PerfFormattedData_PerfOS_Memory"
); 153
154
//磁盘信息 155
wmiService.query(
"SELECT /* FROM Win32_PerfRawData_PerfDisk_PhysicalDisk Where Name != '_Total'"
);
156
157
wmiService.disconnect();
158
} 159
}
mavne配置(pom.xml) view sourceprint?
01
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
?>
02
<
project
xmlns
=
"http://maven.apache.org/POM/4.0.0" 03
xmlns:xsi
=
"http://www.w3.org/2001/XMLSchema-instance"
04
xsi:schemaLocation
=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
> 05
<
modelVersion
4.0.0</
modelVersion
>
06
07
<
groupId
org.noahx</
groupId
>
08
<
artifactId
wmi-test</
artifactId
> 09
<
version
1.0</
version
>
10
11
12
<
dependencies
> 13
14
<
dependency
> 15
<
groupId
org.kohsuke.jinterop</
groupId
>
16
<
artifactId
j-interop</
artifactId
> 17
<
version
2.0.8-kohsuke-1</
version
>
18
</
dependency
> 19
20
<
dependency
> 21
<
groupId
org.slf4j</
groupId
>
22
<
artifactId
slf4j-log4j12</
artifactId
> 23
<
version
1.6.4</
version
>
24
</
dependency
> 25
26
</
dependencies
> 27
28
</
project
>
运行结果
001
query:SELECT /* FROM Win32_ComputerSystem
002
(0): 003
004
instance of Win32_ComputerSystem 005
{
006
AdminPasswordStatus = 1; 007
AutomaticResetBootOption = FALSE;
008
AutomaticResetCapability = TRUE; 009
BootOptionOnLimit = 3;
010
BootOptionOnWatchDog = 3; 011
BootROMSupported = TRUE;
012
BootupState =
"Normal boot"
; 013
Caption =
"NAK-E1A7C21EA3C"
;
014
ChassisBootupState = 3; 015
CreationClassName =
"Win32_ComputerSystem"
;
016
CurrentTimeZone = 480; 017
Description =
"AT/AT COMPATIBLE"
;
018
Domain =
"WORKGROUP"
; 019
DomainRole = 0;
020
EnableDaylightSavingsTime = TRUE; 021
FrontPanelResetStatus = 3;
022
InfraredSupported = FALSE; 023
KeyboardPasswordStatus = 3;
024
Manufacturer =
"VMware, Inc."
; 025
Model =
"VMware Virtual Platform"
;
026
Name =
"NAK-E1A7C21EA3C"
; 027
NetworkServerModeEnabled = TRUE;
028
NumberOfLogicalProcessors = 2; 029
NumberOfProcessors = 1;
030
OEMStringArray = {
"[MS_VM_CERT/SHA1/27d66596a61c48dd3dc7216fd715126e33f59ae7]"
,
"Welcome to the Virtual Machine"
}; 031
PartOfDomain = FALSE;
032
PauseAfterReset =
"3932100000"
; 033
PowerOnPasswordStatus = 0;
034
PowerState = 0; 035
PowerSupplyState = 3;
036
PrimaryOwnerName =
"nak"
; 037
ResetCapability = 1;
038
ResetCount = -1; 039
ResetLimit = -1;
040
Roles = {
"LM_Workstation"
,
"LM_Server"
,
"NT"
,
"Potential_Browser"
,
"Master_Browser"
}; 041
Status =
"OK"
;
042
SystemStartupDelay = 0; 043
SystemStartupOptions = {
"\"Microsoft Windows XP Professional\" /noexecute=optin /fastdetect"
};
044
SystemStartupSetting = 0; 045
SystemType =
"X86-based PC"
;
046
ThermalState = 3; 047
TotalPhysicalMemory =
"1610063872"
;
048
UserName =
"NAK-E1A7C21EA3C\a"
; 049
WakeUpType = 6;
050
}; 051
052
053
query:SELECT /* FROM Win32_PerfFormattedData_PerfOS_Processor WHERE Name !=
'_Total'
054
(0): 055
056
instance of Win32_PerfFormattedData_PerfOS_Processor 057
{
058
C1TransitionsPersec =
"77"
; 059
C2TransitionsPersec =
"0"
;
060
C3TransitionsPersec =
"0"
; 061
DPCRate = 0;
062
DPCsQueuedPersec = 4; 063
InterruptsPersec = 71;
064
Name =
"0"
; 065
PercentC1Time =
"96"
;
066
PercentC2Time =
"0"
; 067
PercentC3Time =
"0"
;
068
PercentDPCTime =
"0"
; 069
PercentIdleTime =
"100"
;
070
PercentInterruptTime =
"0"
; 071
PercentPrivilegedTime =
"0"
;
072
PercentProcessorTime =
"0"
; 073
PercentUserTime =
"0"
;
074
}; 075
076
077
(1):
078
079
instance of Win32_PerfFormattedData_PerfOS_Processor
080
{ 081
C1TransitionsPersec =
"83"
;
082
C2TransitionsPersec =
"0"
; 083
C3TransitionsPersec =
"0"
;
084
DPCRate = 0; 085
DPCsQueuedPersec = 10;
086
InterruptsPersec = 67; 087
Name =
"1"
;
088
PercentC1Time =
"96"
; 089
PercentC2Time =
"0"
;
090
PercentC3Time =
"0"
; 091
PercentDPCTime =
"0"
;
092
PercentIdleTime =
"100"
; 093
PercentInterruptTime =
"0"
;
094
PercentPrivilegedTime =
"0"
; 095
PercentProcessorTime =
"0"
;
096
PercentUserTime =
"0"
; 097
};
098
099
100
query:SELECT /* FROM Win32_PerfFormattedData_PerfOS_Memory 101
(0):
102
103
instance of Win32_PerfFormattedData_PerfOS_Memory
104
{ 105
AvailableBytes =
"1142099968"
;
106
AvailableKBytes =
"1115332"
; 107
AvailableMBytes =
"1089"
;
108
CacheBytes =
"70725632"
; 109
CacheBytesPeak =
"72904704"
;
110
CacheFaultsPersec = 634; 111
CommitLimit =
"3063078912"
;
112
CommittedBytes =
"326488064"
; 113
DemandZeroFaultsPersec = 13965;
114
FreeSystemPageTableEntries = 159743; 115
PageFaultsPersec = 13965;
116
PageReadsPersec = 0; 117
PagesInputPersec = 0;
118
PagesOutputPersec = 0; 119
PagesPersec = 0;
120
PageWritesPersec = 0; 121
PercentCommittedBytesInUse = 10;
122
PoolNonpagedAllocs = 38040; 123
PoolNonpagedBytes =
"7585792"
;
124
PoolPagedAllocs = 57820; 125
PoolPagedBytes =
"29380608"
;
126
PoolPagedResidentBytes =
"28622848"
; 127
SystemCacheResidentBytes =
"40235008"
;
128
SystemCodeResidentBytes =
"1867776"
; 129
SystemCodeTotalBytes =
"1167360"
;
130
SystemDriverResidentBytes =
"0"
; 131
SystemDriverTotalBytes =
"4071424"
;
132
TransitionFaultsPersec = 0; 133
WriteCopiesPersec = 0;
134
}; 135
136
137
query:SELECT /* FROM Win32_PerfRawData_PerfDisk_PhysicalDisk Where Name !=
'_Total'
138
(0): 139
140
instance of Win32_PerfRawData_PerfDisk_PhysicalDisk 141
{
142
AvgDiskBytesPerRead =
"138920448"
; 143
AvgDiskBytesPerRead_Base = 8000;
144
AvgDiskBytesPerTransfer =
"208285696"
; 145
AvgDiskBytesPerTransfer_Base = 13701;
146
AvgDiskBytesPerWrite =
"69365248"
; 147
AvgDiskBytesPerWrite_Base = 5701;
148
AvgDiskQueueLength =
"581460650"
; 149
AvgDiskReadQueueLength =
"405581626"
;
150
AvgDisksecPerRead = 2794786622; 151
AvgDisksecPerRead_Base = 8000;
152
AvgDisksecPerTransfer = 322083534; 153
AvgDisksecPerTransfer_Base = 13701;
154
AvgDisksecPerWrite = 1822264208; 155
AvgDisksecPerWrite_Base = 5701;
156
AvgDiskWriteQueueLength =
"175879024"
; 157
CurrentDiskQueueLength = 0;
158
DiskBytesPersec =
"208285696"
; 159
DiskReadBytesPersec =
"138920448"
;
160
DiskReadsPersec = 8000; 161
DiskTransfersPersec = 13701;
162
DiskWriteBytesPersec =
"69365248"
; 163
DiskWritesPersec = 5701;
164
Frequency_Object =
"0"
; 165
Frequency_PerfTime =
"3034010000"
;
166
Frequency_Sys100NS =
"10000000"
; 167
Name =
"0 C:"
;
168
PercentDiskReadTime =
"405581626"
; 169
PercentDiskReadTime_Base =
"129895856572522792"
;
170
PercentDiskTime =
"581460650"
; 171
PercentDiskTime_Base =
"129895856572522792"
;
172
PercentDiskWriteTime =
"175879024"
; 173
PercentDiskWriteTime_Base =
"129895856572522792"
;
174
PercentIdleTime =
"18446744072967667781"
; 175
PercentIdleTime_Base =
"129895856572522792"
;
176
SplitIOPerSec = 1074; 177
Timestamp_Object =
"0"
;
178
Timestamp_PerfTime =
"3635534093651"
; 179
Timestamp_Sys100NS =
"129895856572522792"
;
180
};<span style=
"font-family:'sans serif, tahoma, verdana, helvetica';font-size:x-small;"
<span style=
"line-height:18.18181800842285px;white-space:normal;"
#
3、有可能出现的问题
报错a
01
org.jinterop.dcom.common.JIException: Message not found
for
errorCode:
0xC0000034
02
at org.jinterop.winreg.smb.JIWinRegStub.winreg_OpenHKLM(JIWinRegStub.java:
115
) 03
at org.jinterop.dcom.core.JIProgId.getIdFromWinReg(JIProgId.java:
130
)
04
at org.jinterop.dcom.core.JIProgId.getCorrespondingCLSID(JIProgId.java:
162
) 05
at org.jinterop.dcom.core.JIComServer.
413
)
06
at org.noah.wmitest.WmiService.connect(WmiService.java:
122
) 07
at org.noah.wmitest.WmiService.main(WmiService.java:
177
)
08
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 09
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
39
)
10
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
25
) 11
at java.lang.reflect.Method.invoke(Method.java:
597
)
12
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:
120
) 13
Caused by: jcifs.smb.SmbException: The system cannot find the file specified.
14
at jcifs.smb.SmbTransport.checkStatus(SmbTransport.java:
522
) 15
at jcifs.smb.SmbTransport.send(SmbTransport.java:
622
)
16
at jcifs.smb.SmbSession.send(SmbSession.java:
239
) 17
at jcifs.smb.SmbTree.send(SmbTree.java:
109
)
18
at jcifs.smb.SmbFile.send(SmbFile.java:
718
) 19
at jcifs.smb.SmbFile.open0(SmbFile.java:
923
)
20
at jcifs.smb.SmbFile.open(SmbFile.java:
940
) 21
at jcifs.smb.SmbFileOutputStream.
142
)
22
at jcifs.smb.TransactNamedPipeOutputStream.
32
) 23
at jcifs.smb.SmbNamedPipe.getNamedPipeOutputStream(SmbNamedPipe.java:
187
)
24
at rpc.ncacn_np.RpcTransport.attach(RpcTransport.java:
92
) 25
at rpc.Stub.attach(Stub.java:
105
)
26
at rpc.Stub.call(Stub.java:
110
) 27
at org.jinterop.winreg.smb.JIWinRegStub.winreg_OpenHKLM(JIWinRegStub.java:
113
)
28
...
10
more
需要开启Remote Registry服务 报错b
01
org.jinterop.dcom.common.JIException: Message not found
for
errorCode:
0xC0000001
02
at org.jinterop.winreg.smb.JIWinRegStub.winreg_OpenHKLM(JIWinRegStub.java:
115
) 03
at org.jinterop.dcom.core.JIProgId.getIdFromWinReg(JIProgId.java:
130
)
04
at org.jinterop.dcom.core.JIProgId.getCorrespondingCLSID(JIProgId.java:
162
) 05
at org.jinterop.dcom.core.JIComServer.
413
)
06
at org.noah.wmitest.WmiService.connect(WmiService.java:
87
) 07
at org.noah.wmitest.WmiService.main(WmiService.java:
142
)
08
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 09
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
39
)
10
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
25
) 11
at java.lang.reflect.Method.invoke(Method.java:
597
)
12
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:
120
) 13
Caused by: jcifs.smb.SmbException: Connection timeout
14
jcifs.util.transport.TransportException: Connection timeout 15
16
或 17
18
org.jinterop.dcom.common.JIException: Message not found
for
errorCode:
0x8001FFFF 19
at org.jinterop.dcom.core.JIComServer.init(JIComServer.java:
576
)
20
at org.jinterop.dcom.core.JIComServer.initialise(JIComServer.java:
481
) 21
at org.jinterop.dcom.core.JIComServer.
414
)
22
at org.noah.wmitest.WmiService.connect(WmiService.java:
87
) 23
at org.noah.wmitest.WmiService.main(WmiService.java:
142
)
24
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 25
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
39
)
26
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
25
) 27
at java.lang.reflect.Method.invoke(Method.java:
597
)
28
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:
120
) 29
Caused by: java.net.ConnectException: Connection timed out
需要禁用放火墙
4、总结
j-Interop纯java跨平台,我就是linux系统。
用j-Interop就可以很方便的调用windows系统com,虽然这里只演示了WMI。 如果关心WMI与监控的话,建议去opennms-wmi看一看,他们有更好api封装(底层也是j-Interop)。 关键字: wmi windows j-interop
声明:OSCHINA 博客文章版权属于作者,受法律保护。未经作者同意不得转载。
开源中国-程序员在线工具:API文档大全(120+) JS在线编辑演示 二维码 更多>> 分享到: 顶已有 0人顶
共有 5 条网友评论
能通过代码禁止防火墙么?是都要管理员权限?
WMI里应该就有控制防火墙的。这种操作肯定需要管理员权限了。
不知道远程调用行不行呢?请博主明确一下。
引用来自“黄金比”的评论
不知道远程调用行不行呢?请博主明确一下。 你指的是非本机吗?我测试的方式就是一台linux运行程序指定ip调用另一台win服务器的wmi
引用来自“肖国颖”的评论
引用来自“黄金比”的评论
不知道远程调用行不行呢?请博主明确一下。 你指的是非本机吗?我测试的方式就是一台linux运行程序指定ip调用另一台win服务器的wmi
收到,谢博主,试下先!
关闭相关文章阅读
- 2012/08/16 100%纯java调用windows的wmi获取监控...
- 2011/07/06 使用WMI修改文件文件夹的NTFS权限...
- 2013/04/24 利用WMI实现ring3进程监控 - vc...
- 2012/03/22 py2exe打包包含wmi模块的脚本后,运...
- 2011/09/02 在windows下使用OpenSSH(上)...
© 开源中国(OsChina.NET) | 关于我们 | 广告联系 | @新浪微博 | 开源中国手机版 | 粤ICP备12009483号-3 开源中国手机客户端: Android iPhone WP7