我在使用VB腳本抓取AD域上的用戶的資料的時候,出現下面的錯誤該怎么解決呢?
錯誤1:行:212 字符:2 錯誤:無效的程序呼叫或引數 代碼:800A0005 源:Microsoft VBScript 運行時錯誤

錯誤2:行:18 字符:3 錯誤:出現了一個操作錯誤 代碼:80040E37 源:Active Directory

請問,這兩種錯誤的原因一般在哪兒呢?
謝謝O(∩_∩)O謝謝
uj5u.com熱心網友回復:
這個問題值得研究uj5u.com熱心網友回復:
Visual Basic Scripting EditionOn 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. 保留所有權利。
uj5u.com熱心網友回復:
在百度搜對應的錯誤代碼。uj5u.com熱心網友回復:
不過在我的代碼中使用的On Error Resume Next On Error GoTo 0,在運行的時候都注釋掉了,并沒有使用啊在我運行的時候如果添加了條件,獲取某一個具體部門或者某一天內創建的賬號的時候并沒有錯誤。而在獲取全部的資料的時候剛開始并沒有錯誤,運行了一半的時候出錯了,這也是因為您說的那個原因嗎?
uj5u.com熱心網友回復:
objCommand.CommandTimeout = 60uj5u.com熱心網友回復:
請問 objCommand.CommandTimeout = 60 這句話的作用是什么呢?uj5u.com熱心網友回復:
https://www.baidu.com/s?wd=800A0005
https://www.baidu.com/s?wd=80040E37
uj5u.com熱心網友回復:
這些操作,是需要“權限”的吧?如果沒有權限的“賬號”去域控上獲取資料,是很可能造成操作失敗或獲取不到相關資料的。
uj5u.com熱心網友回復:
你的那個腳本陳述句是不是寫法有問題?看你的第一張圖片,那個“選定”的那一段,字串連接運算子&的前面和后面都象沒空格的。
你自己仔細看看代碼,如果沒有空格,全部給它添加上空格再試試。
注意,&的兩邊都要有1個以上的空格。
另外就是“換行”的問題,如果你的那個換行不是編輯器“自動產生的”,
那么要按 VB/VBS的語法進行換行(或“續行”):在“行末尾”用“西文空格+下劃線”進行代碼換行。
還要注意,這個“行斷開”的地方,不能是識別符號中間、字串中間之類的地方,
要從陳述句行內的“分隔處”斷開,比如某運算子兩邊、“逗號分隔”處、等號、括號前后等等這些“自然分隔”的地方斷開。
uj5u.com熱心網友回復:
我是有賬號的,也開了相關的讀取用戶資訊的權限uj5u.com熱心網友回復:
我在9樓說的那些“代碼問題”呢?
uj5u.com熱心網友回復:
嗯,這個和加不加空格關系不大吧,我進行某一個范圍內的讀取是就沒有出錯,在整個AD上取資料時運行一半就會出錯我再加上空格再試試
uj5u.com熱心網友回復:
關系不大???

那個是“語法問題”,你居然還認為關系不大!
不符合語法,根本就不能被“正確解釋”,何以談正確執行???
uj5u.com熱心網友回復:
難道你覺得“代碼”是否符合語法都沒關系,隨便“胡亂寫”都是一回事么!只要“人能猜測出代碼意思來”,那個“腳本解釋器就應該能理解代碼含義”?
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/65406.html
標籤:網絡編程
上一篇:VB報錯462,請大神幫忙解決
