- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
使用脚本管理Windows网络第七部分
使用脚本管理Windows网络 第七部分:修复神秘的错误
本章关于使用脚本管理Windows网络,阐述了当使用我们之前开发的ChangeIPAddress.vbs脚本去修改远程计算机IP地址时,如何修复其产生的“远程程序调用失败”的错误。原文发表于WindowsN。
在前面的文章“远程脚本初探”,我们使用之前开发的ChangeIPAddress.vbs脚本,将它修改了后用以修改远程计算机的IP地址。下面就就是我们修改的脚本:
Option?Explicit Dim?objWMIService Dim?objNetAdapter Dim?strComputer????? Dim?strAddress????? Dim?arrIPAddress Dim?arrSubnetMask Dim?colNetAdapters Dim?errEnableStatic
If?WScript.Arguments.Count?=?0?Then ?????Wscript.Echo?Usage:?ChangeIPAddress.vbs?new_IP_address ?????WScript.Quit End?If strComputer?=?xp2 strAddress?=?Wscript.Arguments.Item(0) arrIPAddress?=?Array(strAddress) arrSubnetMask?=?Array() Set?objWMIService?=?GetObject(winmgmts:\\??strComputer??\root\cimv2) Set?colNetAdapters?=?objWMIService.ExecQuery(Select?*?from?Win32_NetworkAdapterConfiguration?where?IPEnabled=TRUE) For?Each?objNetAdapter?in?colNetAdapters ?????errEnableStatic?=?objNetAdapter.EnableStatic(arrIPAddress,?arrSubnetMask) Next 这一行:
strComputer?=?xp2 告诉我们,脚本的目标计算机名是XP2。远程计算机XP2原先的IP地址是3。
现在,当我们从管理工作站XP上输入ChangeIPAddress.vbs 5运行脚本时,出现了下列情况:
1.?脚本起作用了,如XP2的地址将从3 改为5;
2.?脚本需要花费很长的时间才执行完;
3.?脚本返回以下错误:
C:\tools\ChangeIPAddress.vbs(23,?6)?SWbemObjectEx:?The?remote?procedure?call?failed. 我们怎样处理这些结果呢?
简单的解决方法
其实我们可以对自己说,“好了,既然它已经起作用了,那么就让我们忽略这个错误吧。”对于这种说法是可以理解的。毕竟,任何现实的管理员都知道IT不是一个精确的科学工作,当我们无法设计妥善的解决方法时,我们往往最终采用“应急方案”来解决问题。
因此,我们该如何忽略这个错误呢?只需在标头节添加以下这一行:
On?Error?Resume?Next 换句话说,我们脚本的头部将是这样的:
Option?Explicit On?Error?Resume?Next Dim?objWMIService etc. 现在,我们就不会看到错误,而且我们的脚本也可以正常工作了。但是,它仍然需要一段较长的时间来执行,事实上,足足超过一分钟。这又该怎么办呢?
解决错误讯息
错误消息有时是很隐秘的,这是其中的一个。这里是又一个错误消息:
SWbemObjectEx:?The?remote?procedure?call?failed. 这是产生错误的那一行代码:
errEnableStatic?=?objNetAdapter.EnableStatic(arrIPAddress,?arrSubnetMask) 现在这行代码工作了(如,目标计算机IP地址修改了)但它抛出了一个错误,为什么呢?
让我们先设法理解SWebObjectEx的作用。从MSDN上快速搜索到这个网页,上面有这样的说明:
Extends?the?functionality?of?SWbemObject.?This?object?adds?the?Refresh?method?for?SWbemRefresher?objects.? 很好。这样看来SWbemObjectEx只是给SWbemObject增加了更多的功能。那么,SWbemObject又是什么呢?
Contain
文档评论(0)