关于VB脚本获取AD上用户数据的问题?

zhuimengmm 2016-12-02 02:31:17
我在使用VB脚本抓取AD域上的用户的数据的时候,出现下面的错误该怎么解决呢?
错误1:行:212 字符:2 错误:无效的过程调用或参数 代码:800A0005 源:Microsoft VBScript 运行时错误

错误2:行:18 字符:3 错误:出现了一个操作错误 代码:80040E37 源:Active Directory

请问,这两种错误的原因一般在哪儿呢?

谢谢O(∩_∩)O谢谢
...全文
1243 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
舉杯邀明月 2016-12-02
  • 打赏
  • 举报
回复
难道你觉得“代码”是否符合语法都没关系,随便“胡乱写”都是一回事么! 只要“人能猜测出代码意思来”,那个“脚本解释器就应该能理解代码含义”?
舉杯邀明月 2016-12-02
  • 打赏
  • 举报
回复
引用 12 楼 zhuimengmm 的回复:
嗯,这个和加不加空格关系不大吧,我进行某一个范围内的读取是就没有出错,在整个AD上取数据时运行一半就会出错 我再加上空格再试试
关系不大??? 那个是“语法问题”,你居然还认为关系不大! 不符合语法,根本就不能被“正确解释”,何以谈正确执行???
zhuimengmm 2016-12-02
  • 打赏
  • 举报
回复
嗯,这个和加不加空格关系不大吧,我进行某一个范围内的读取是就没有出错,在整个AD上取数据时运行一半就会出错 我再加上空格再试试
舉杯邀明月 2016-12-02
  • 打赏
  • 举报
回复
引用 10 楼 zhuimengmm 的回复:
我是有账号的,也开了相关的读取用户信息的权限
我在9楼说的那些“代码问题”呢?
zhuimengmm 2016-12-02
  • 打赏
  • 举报
回复
我是有账号的,也开了相关的读取用户信息的权限
舉杯邀明月 2016-12-02
  • 打赏
  • 举报
回复
你的那个脚本语句是不是写法有问题? 看你的第一张图片,那个“选定”的那一段,字符串连接运算符&的前面和后面都象没空格的。 你自己仔细看看代码,如果没有空格,全部给它添加上空格再试试。 注意,&的两边都要有1个以上的空格。 另外就是“换行”的问题,如果你的那个换行不是编辑器“自动产生的”, 那么要按 VB/VBS的语法进行换行(或“续行”):在“行末尾”用“西文空格+下划线”进行代码换行。 还要注意,这个“行断开”的地方,不能是标识符中间、字符串中间之类的地方,   要从语句行内的“分隔处”断开,比如某运算符两边、“逗号分隔”处、等号、括号前后等等这些“自然分隔”的地方断开。
舉杯邀明月 2016-12-02
  • 打赏
  • 举报
回复
这些操作,是需要“权限”的吧? 如果没有权限的“账号”去域控上获取数据,是很可能造成操作失败或获取不到相关数据的。
赵4老师 2016-12-02
  • 打赏
  • 举报
回复
引用 3 楼 zhao4zhong1 的回复:
在百度搜对应的错误代码。
https://www.baidu.com/s?wd=800A0005 https://www.baidu.com/s?wd=80040E37
zhuimengmm 2016-12-02
  • 打赏
  • 举报
回复
请问 objCommand.CommandTimeout = 60 这句话的作用是什么呢?
赵4老师 2016-12-02
  • 打赏
  • 举报
回复
objCommand.CommandTimeout = 60
zhuimengmm 2016-12-02
  • 打赏
  • 举报
回复
不过在我的代码中使用的On Error Resume Next On Error GoTo 0,在运行的时候都注释掉了,并没有使用啊 在我运行的时候如果添加了条件,获取某一个具体部门或者某一天内创建的账号的时候并没有错误。而在获取全部的数据的时候刚开始并没有错误,运行了一半的时候出错了,这也是因为您说的那个原因吗?
赵4老师 2016-12-02
  • 打赏
  • 举报
回复
在百度搜对应的错误代码。
赵4老师 2016-12-02
  • 打赏
  • 举报
回复
Visual Basic Scripting Edition On Error 语句 请参阅 Err 对象 | Exit 语句 要求 版本 1 启用或禁用错误处理程序。 On Error Resume Next On Error GoTo 0 说明 如果在您的代码中未使用 On Error Resume Next 语句, 所发生的运行时错误将显示错误信息,同时,代码的执行也随之终止。但是运行代码的主机决定了具体操作。主机有时可有选择地处理各类错误。在有些情况下,它可以在出错的地方激活脚本调试器。而在另一些情况下,由于主机无法通知用户,因此对所发生的错误没有明确说明。至于如何处理错误则完全取决于主机的功能。 在任意一个特殊过程中,只要在调用堆栈的地方启用错误处理程序,所发生的错误一般不会是致命性的。如果在一个过程中没有启用局部错误处理程序,当发生错误时,控制可通过堆栈调用转移,直到找到一个具有错误处理程序的过程,并在出错的地方处理错误。如果在调用堆栈的过程中没有找到错误处理程序,则在出错的地方显示错误信息,同时终止代码执行,或者通过主机来正确处理错误。 On Error Resume Next 会使程序按照产生错误的语句之后的语句继续执行,或是按照最近一次所调用的过程(该过程含有 On Error Resume Next 语句)中的语句继续运行。这个语句可以不顾运行时错误,继续执行程序,之后您可以在过程内部建立错误处理例程。在调用另一个过程时,On Error Resume Next 语句变为非活动的。所以,如果希望在例程中进行内部错误处理,则应在每一个调用的例程中执行 On Error Resume Next 语句。 当调用另一过程时,禁止使用On Error Resume Next 语句,因此如果您想在例程中嵌入错误处理程序,则需要在每次调用例程时都应执行 On Error Resume Next 语句。当退出一个过程时,错误处理程序可恢复到它在进入所退出过程之前的状态。 如果您已启用 On Error Resume Next 错误处理程序,则可使用 On Error GoTo 0禁用错误处理程序。 下面例子举例说明如何使用 On Error Resume Next 语句: On Error Resume Next Err.Raise 6 ' 引发溢出错误。 MsgBox ("Error # " & CStr(Err.Number) & " " & Err.Description) Err.Clear '清除该错误。 要求 版本 1 请参阅 Err 对象 | Exit 语句 -------------------------------------------------------------------------------- © 2001 Microsoft Corporation. 保留所有权利。
lh007 2016-12-02
  • 打赏
  • 举报
回复
这个问题值得研究

1,502

社区成员

发帖
与我相关
我的任务
社区描述
VB 网络编程
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧