Danh mục

Quản lý các mạng Windows dùng script - Phần 7: Xử lý sự cố lỗi

Số trang: 9      Loại file: pdf      Dung lượng: 0.00 B      Lượt xem: 9      Lượt tải: 0    
Jamona

Hỗ trợ phí lưu trữ khi tải xuống: 1,000 VND Tải xuống file đầy đủ (9 trang) 0

Báo xấu

Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Trong bài viết trước chúng ta đã dùng đến kịch bản ChangeIPAddress.vbs được phát triển trước đó và đã sử dụng nó để thay đổi địa chỉ IP trên máy tính từ xa. Đây là những gì mà chúng ta đã thay đổi kịch bản:
Nội dung trích xuất từ tài liệu:
Quản lý các mạng Windows dùng script - Phần 7: Xử lý sự cố lỗiQuản lý các mạng Windows dùng script - Phần 7: Xử lý sự cố lỗiNguồn:quantrimang.com Mitch TullochTrong bài viết trước chúng ta đã dùng đến kịch bản ChangeIPAddress.vbsđược phát triển trước đó và đã sử dụng nó để thay đổi địa chỉ IP trên máytính từ xa. Đây là những gì mà chúng ta đã thay đổi kịch bản:Option ExplicitDim objWMIServiceDim objNetAdapterDim strComputerDim strAddressDim arrIPAddressDim arrSubnetMaskDim colNetAdaptersDim errEnableStaticIf WScript.Arguments.Count = 0 Then Wscript.Echo Usage: ChangeIPAddress.vbsnew_IP_address WScript.QuitEnd IfstrComputer = xp2strAddress = Wscript.Arguments.Item(0)arrIPAddress = Array(strAddress)arrSubnetMask = Array(255.255.255.0)Set objWMIService = GetObject(winmgmts:\ & strComputer & ootcimv2)Set colNetAdapters = objWMIService.ExecQuery(Select * fromWin32_NetworkAdapterConfiguration where IPEnabled=TRUE)For Each objNetAdapter in colNetAdapters errEnableStatic =objNetAdapter.EnableStatic(arrIPAddress, arrSubnetMask)NextDòng:strComputer = xp2cho chúng ta biết rằng máy tính được tích hợp bởi kịch bản có tên XP2. Máy tínhđiều khiển xa XP2 ban đầu có địa chỉ IP là 172.16.11.43.Bây giờ khi chúng ta chạy kịch bản này bằng cách đánh ChangeIPAddress.vbs172.16.11.65 từ một máy trạm quản lý có tên là XP, những thứ xảy ra được đưara dưới đây:1. Kịch bản đã hoạt động. Ví dụ địa chỉ của XP2 đã thay đổi từ 172.16.11.43thành 172.16.11.65.2. Kịch bản cần đến nhiều thời gian để thực thi3. Kịch bản trả lại lỗi dưới đây: C: oolsChangeIPAddress.vbs(23, 6)SWbemObjectEx: The remote procedure call failed.Làm thế nào chúng ta có thể giải quyết được các kết quả đó?Giải pháp dễ dàngMột thứ chúng ta có thể thực hiện là nói rằng “Hãy bỏ qua lỗi”. Đó là những gìđược nói với phương pháp này. Sau tất cả, bất kỳ quản trị viên trong thế giớithực nào cũng biết rằng CNTT không phải là một khoa học đúng về mọi chi tiếtvà chúng thường kết thúc bằng việc áp dụng “cách giải quyết khác” đối với cácvấn đề nảy sinh khi không có những giải pháp đúng cho chúng.Vì vậy làm thế nào chúng ta có thể bỏ qua lỗi? Hãy thêm dòng dưới đây vào gầnvị trí bắt đầu của phần đầu (header):On Error Resume NextHay nói cách khác, phần đầu (header) của chúng ta sẽ như sau:Option ExplicitOn Error Resume NextDim objWMIService...Bây giờ chúng ta không xem lỗi, và kịch bản của chúng ta làm việc. Tuy nhiên nóvẫn cần đến nhiều thời gian để thực thi, thực tế có thể cần đến vài phút. Vậy cáigì sẽ tiếp diễn?Xử lý sự cố thông báo lỗiCác thông báo lỗi đôi khi khá khó hiểu và điều này là một trong những vấn đềđáng quan tâm. Đây là một thông báo lỗi:SWbemObjectEx: The remote procedure call failed.Và đây là dòng mã tạo ra nó:errEnableStatic = objNetAdapter.EnableStatic(arrIPAddress,arrSubnetMask)Dòng mã này làm việc (ví dụ địa chỉ IP bị thay đổi trên máy tính mục tiêu) nhưngsau đó nó đưa ra một thông báo lỗi. Tại sao lại như vậy? Chúng ta hãy bắt đầubằng cách tìm hiểu SwebObjectEx có ý nghĩa gì. Tìm kiếm nhanh trong MSDNcó thể cho thấy (http://msdn2.microsoft.com/en-us/library/aa393259.aspx):Extends the functionality of SWbemObject. This object adds the Refreshmethod for SWbemRefresher objects.(Mở rộng chức năng của SWbemObject. Đối tượng này bổ sung phương phápRefresh cho các đối tượng SwbemRefresher)Vì vậy SwbemObjectEx cơ bản chỉ bổ sung thêm chức năng cho SWbemObject.Vậy SwbemObject là gì?Contains and manipulates a single WMI object class or instance.(Gồm một đối tượng WMI hoặc một sự kiện)Điều đó có nghĩa gì? Trang này cho chúng ta nhiều thông tin nhưng nó khôngthích hợp. Mặc dù vậy trong các trường hợp, SwbemObject (SWbemObjectEx)là tất cả những gì bạn quản lý hay truy vấn trong WMI. Trong kịch bản của chúngta, chúng ta đang truy vấn lớp Win32_NetworkAdapterConfiguration và trả vềmột bộ sưu tập các đối tượng gọi là colNetAdapter thể hiện các adapter mạngtrên máy tính. Vì vậy SWbemObjectEx (hoặc SWbemObject) đã đề cập đếntrong thông báo lỗi này làm đơn giản hóa đối tượng đang thể hiện bản thânadapter mạng, ví dụ như objNetAdapter. Vậy tại sao objNetAdapter tạo ra lỗi.Dẫu sao đây cũng dường như trở thành vấn đề. Theo một trong những chuyêngia có uy tín, có thể một thành phần nào đó có trong hotfix cho Windows XP bịthay đổi cách mà lệnh gọi trả về được tạo và được đệ trình khi câu lệnh gây ralỗi được thực thi. Thông thường nếu gọi phương pháp EnableStatic của một đốitượng được thuyết minh bằng một ví dụ của lớpWin32_NetworkAdapterConfiguration hoàn toàn thành công nó sẽ trả về 0, cónghĩa là không có lỗi. Còn nếu nó trả về 1 thì điều đó có nghĩa cần phải khởiđộng lại. Rõ ràng với Windows XP sẽ không cần phải khởi động lại khi bạn thayđổi địa chỉ IP trên adapter mạng. Nếu với một vài lý do, một hotfix có thể thay đổigì đó trong WMI ...

Tài liệu được xem nhiều: