100

Posted on

100%纯java调用windows的wmi获取监控数据 - 肖国颖的个人页面 - 开源中国社区

开源中国社区

开源项目发现、使用和交流平台

当前访客身份: arctichia [ 我的空间 | 退出 ] 你有0新留言

软件 代码 讨论区 新闻 博客

软件

关注(4) 粉丝(71) 积分(280)

不做鬼中鬼,怎做人上人 .发送留言 .请教问题

博客分类

  1. 1. 在Android中嵌入AdMob广告,赚午饭钱
  2. 2. 解决iOS6看YouTb的心酸,补充可看版(goagent+opendoor)
  3. 3. 当单例(Singleton)爱上多线程——重复初始化问题
  4. 4. Java序列化与JSON序列化大比拼
  5. 5. 在Eclipse中用Scala语言开发Android应用
  6. 6. Ubuntu 12.10下用Empathy(pidgin-lwqq)登录QQ
  7. 7. 解决Ubuntu 12.04下频繁死机-Chrome
  8. 8. 以Jar形式为Web项目提供资源文件(JS、CSS与图片)

最新评论

空间 » 博客 » 工作日志 » 博客正文

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

view sourceprint?

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类

view sourceprint?

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

>

运行结果

view sourceprint?

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

view sourceprint?

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.(JIComServer.java:

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.(SmbFileOutputStream.java:

142

)

22

at jcifs.smb.TransactNamedPipeOutputStream.(TransactNamedPipeOutputStream.java:

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

view sourceprint?

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.(JIComServer.java:

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.(JIComServer.java:

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

收到,谢博主,试下先!

文明上网,理性发言

文明上网,理性发言 回到页首 | 回到评论列表

关闭相关文章阅读

© 开源中国(OsChina.NET) | 关于我们 | 广告联系 | @新浪微博 | 开源中国手机版 | 粤ICP备12009483号-3 开源中国手机客户端: Android iPhone WP7

希望本站内容对您有点用处,有什么疑问或建议请在后面留言评论
转载请注明作者(RobinChia)和出处 It so life ,请勿用于任何商业用途
本文链接: 100