1. Trang chủ
  2. » Công Nghệ Thông Tin

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

9 11 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 9
Dung lượng 227,46 KB

Nội dung

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:

Quản lý mạng Windows dùng script - Phần 7: Xử lý cố lỗi Nguồn : quantrimang.com  Mitch Tulloch Trong viết trước dùng đến kịch ChangeIPAddress.vbs phát triển trước sử dụng để thay đổi địa IP máy tính từ xa Đây mà thay đổi kịch bản: Option Explicit Dim objWMIService Dim objNetAdapter Dim strComputer Dim strAddress Dim arrIPAddress Dim arrSubnetMask Dim colNetAdapters Dim errEnableStatic If WScript.Arguments.Count = 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("255.255.255.0") 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 Dòng: strComputer = "xp2" cho biết máy tính tích hợp kịch có tên XP2 Máy tính điều khiển xa XP2 ban đầu có địa IP 172.16.11.43 Bây chạy kịch cách đánh ChangeIPAddress.vbs 172.16.11.65 từ máy trạm quản lý có tên XP, thứ xảy đưa đây: Kịch hoạt động Ví dụ địa XP2 thay đổi từ 172.16.11.43 thành 172.16.11.65 Kịch cần đến nhiều thời gian để thực thi Kịch trả lại lỗi đây: C:\tools\ChangeIPAddress.vbs(23, 6) SWbemObjectEx: The remote procedure call failed Làm giải kết đó? Giải pháp dễ dàng Một thứ thực nói “Hãy bỏ qua lỗi” Đó nói với phương pháp Sau tất cả, quản trị viên giới thực biết CNTT khoa học chi tiết chúng thường kết thúc việc áp dụng “cách giải khác” vấn đề nảy sinh khơng có giải pháp cho chúng Vì làm bỏ qua lỗi? Hãy thêm dịng vào gần vị trí bắt đầu phần đầu (header): On Error Resume Next Hay nói cách khác, phần đầu (header) sau: Option Explicit On Error Resume Next Dim objWMIService Bây không xem lỗi, kịch làm việc Tuy nhiên cần đến nhiều thời gian để thực thi, thực tế cần đến vài phút Vậy tiếp diễn? Xử lý cố thông báo lỗi Các thông báo lỗi đơi khó hiểu điều vấn đề đáng quan tâm Đây thông báo lỗi: SWbemObjectEx: The remote procedure call failed Và dịng mã tạo nó: errEnableStatic = objNetAdapter.EnableStatic(arrIPAddress, arrSubnetMask) Dịng mã làm việc (ví dụ địa IP bị thay đổi máy tính mục tiêu) sau đưa thơng báo lỗi Tại lại vậy? Chúng ta bắt đầu cách tìm hiểu SwebObjectEx có ý nghĩa Tìm kiếm nhanh MSDN cho thấy (http://msdn2.microsoft.com/en-us/library/aa393259.aspx): Extends the functionality of SWbemObject This object adds the Refresh method for SWbemRefresher objects (Mở rộng chức SWbemObject Đối tượng bổ sung phương pháp Refresh cho đối tượng SwbemRefresher) Vì SwbemObjectEx bổ sung thêm chức cho SWbemObject Vậy SwbemObject gì? Contains and manipulates a single WMI object class or instance (Gồm đối tượng WMI kiện) Điều có nghĩa gì? Trang cho nhiều thơng tin khơng thích hợp Mặc dù trường hợp, SwbemObject (SWbemObjectEx) tất bạn quản lý hay truy vấn WMI Trong kịch chúng ta, truy vấn lớp Win32_NetworkAdapterConfiguration trả sưu tập đối tượng gọi colNetAdapter thể adapter mạng máy tính Vì SWbemObjectEx (hoặc SWbemObject) đề cập đến thơng báo lỗi làm đơn giản hóa đối tượng thể thân adapter mạng, ví dụ objNetAdapter Vậy objNetAdapter tạo lỗi Dẫu dường trở thành vấn đề Theo chun gia có uy tín, thành phần có hotfix cho Windows XP bị thay đổi cách mà lệnh gọi trả tạo đệ trình câu lệnh gây lỗi thực thi Thông thường gọi phương pháp EnableStatic đối tượng thuyết minh ví dụ lớp Win32_NetworkAdapterConfiguration hồn tồn thành cơng trả 0, có nghĩa khơng có lỗi Cịn trả điều có nghĩa cần phải khởi động lại Rõ ràng với Windows XP không cần phải khởi động lại bạn thay đổi địa IP adapter mạng Nếu với vài lý do, hotfix thay đổi WMI thành phần khác để Windows không khởi động lại trước địa thay máy mục tiêu, điều tạo lỗi cấu hình adapter mạng máy rơi vào trạng thái không rõ ràng máy tính khởi động lại Tuy nhiên kịch chạy máy trạm quản trị, cấu hình adapter mạng máy tính mục tiêu trạng thái không xác rõ ràng kết nối RPC hai máy tính tồi trước kịch kết thúc Chính xuất lỗi Chí câu trả lời tốt mà có cho vấn đề này, chúng tơi tiếp tục nghiên cứu tỉ mỉ Tuy nhiên xem xác nhận lý mà vấn đề giải quyết, ví dụ lỗi liên quan với phương pháp EnableStatic Win32_NetworkAdapterConfiguration Việc xảy cố gắng viết kịch khác để thực việc khác với adapter mạng máy tính mục tiêu thay thay đổi địa IP nó? Ví dụ, làm cách để thay đổi cổng mặc định thay địa IP máy tính mục tiêu? Nếu điều thực kết nối thành công từ máy trạm quản trị đến máy tính từ xa gọi phương pháp WMI để thay đổi thiết lập mạng Thay đổi cổng mặc định Ở phần chung khuyên bạn nên quay lại đọc chút phần loạt này, chúng tơi giới thiệu cho bạn cách sử dụng MSDN để học cách sử dụng thuộc tính phương pháp Win32_NetworkAdapterConfiguration Chúng tơi cho cách làm bạn tự viết kịch Hãy thử nó! TẠM NGƯNG Khi bạn cố gắng viết kịch cho riêng mình, đơi làm việc, đơi khơng làm việc Nếu khơng làm việc, thực bước đây: Đầu tiên vào trang MSDN Win32_NetworkAdapterConfiguration class Tìm trang phương pháp phải thực để thay đổi cổng adapter mạng Kiểm tra nhanh trang cho bạn điều này: SetGateways - Specifies a list of gateways for routing packets destined for a different subnet than the one this adapter is connected to (SetGateways – danh sách cổng dành cho việc định tuyến gói trù định trước subnet khác so với subnet mà adapter kết nối đến) Đó muốn, kích chuột vào SetGateways để mở trang SetGateways Method Win32_NetworkAdapterConfiguration Class Trên trang SetGateways Method bạn thấy giải thích này: The SetGateways WMI class method specifies a list of gateways for routing packets to a subnet that is different from the subnet that the network adapter is connected to This method only works when the Network Interface Card (NIC) is in the static IP mode (Phương pháp lớp SetGateways WMI định danh sách cổng dành cho việc định tuyến gói cho mạng khác mạng mà adapter mạng kết nối đến Phương pháp làm việc Network Interface Card (NIC) chế độ IP tĩnh) Chính bạn học máy tính mục tiêu phải có địa tĩnh trước bạn gọi phương pháp Đọc kỹ bạn tìm thấy cú pháp cho việc gọi phương pháp đây: SetGateways(A,B) Ở A biến chuỗi gồm địa IP cho cổng, B giá trị nguyên từ đến 9999 định tham số Bây bạn phải có đủ thơng tin để viết kịch Cách đơn giản bắt đầu với kịch ChangeIPAddress.vbs gốc có phần thay đổi chút có kịch đây: '========================= ' NAME: ChangeGateway.vbs ' 'AUTHOR: Mitch Tulloch 'DATE: February 2007 ' 'ARGUMENTS: '1 gateway_address '2 metric '=========================Option Explicit Dim Dim Dim Dim Dim objWMIService objNetAdapter strComputer strGateway arrGateway Dim Dim Dim Dim intMetric arrMetric colNetAdapters errGateway 'Check for missing arguments If WScript.Arguments.Count = Then Wscript.Echo "Usage: ChangeGateway.vbs gateway_address metric" WScript.Quit End If strComputer = "xp2" strGateway = Wscript.Arguments.Item(0) arrGateway = Array(strGateway) intMetric = Wscript.Arguments.Item(1) arrMetric = Array(intMetric) Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colNetAdapters = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE") For Each objNetAdapter in colNetAdapters errGateway = objNetAdapter.SetGateways(arrGateway, arrMetric) Next 'Display result or error code If errGateway=0 Then Wscript.Echo "Adapter's gateway has been successfully changed to " & strGateway Else Wscript.Echo "Changing the adapter's gateway was not successful Error code " & errGateway End If Copy đoạn kịch vào Notepad (trong chế độ Word Wrap bị bỏ) lưu lại với tên ChangeGateway.vbs Giờ kiểm tra Truy cập vào máy từ xa XP2, mở cửa sổ lệnh nhập vào lệnh ipconfig /all kết sau: C:\>ipconfig /all Windows IP Configuration Host Name Primary Dns Suffix Node Type IP Routing Enabled WINS Proxy Enabled : : : : : XP2 contoso.com Unknown No No Ethernet adapter Local Area Connection: Connection-specific Description Based PCI Fast Ethernet Adapter (Generic) Physical Address 8C Dhcp Enabled IP Address Subnet Mask Default Gateway DNS Suffix : : Intel 21140- : 00-03-FF-21-88 : : : : No 172.16.11.80 255.255.255.0 172.16.11.1 C:\> Bây máy trạm quản trị XP, bạn mở cửa sổ lệnh chạy kịch đây: C:\tools>ChangeGateway.vbs 172.16.11.2 Microsoft (R) Windows Script Host Version 5.6 Copyright (C) Microsoft Corporation 1996-2001 All rights reserved Adapter's gateway has been successfully changed to 172.16.11.2 C:\tools> Kịch cần đến khoảng giây để kết thúc, lỗi xuất (Lưu ý bỏ qua On Error Resume Next từ header kịch đưa chúng tơi muốn quan sát lỗi chúng xuất hiện) Hãy quay trở lại máy tính từ xa XP2 chạy ipconfig /all lần nữa: C:\>ipconfig /all Windows IP Configuration Host Name Primary Dns Suffix Node Type IP Routing Enabled WINS Proxy Enabled : : : : : XP2 contoso.com Unknown No No Ethernet adapter Local Area Connection: Connection-specific Description Based PCI Fast Ethernet Adapter (Generic) Physical Address 8C Dhcp Enabled IP Address Subnet Mask Default Gateway DNS Suffix : : Intel 21140- : 00-03-FF-21-88 : : : : No 172.16.11.80 255.255.255.0 172.16.11.2 C:\> Nó làm việc Khơng có lỗi xuất – chạy kịch từ xa máy tính khác thay đổi cổng mặc định máy tính mục tiêu Chúng ta kiểm tra xem tham số đo có bị thay đổi hay khơng? Lệnh ipconfig khơng hiển thị thơng tin sử dụng netsh để có điều đây: C:\>netsh interface ip show address Configuration for interface "Local Area Connection" DHCP enabled: No IP Address: 172.16.11.80 SubnetMask: 255.255.255.0 Default Gateway: 172.16.11.2 GatewayMetric: InterfaceMetric: C:\> Đây kết cần thấy!   ... thực thi, thực tế cần đến vài phút Vậy tiếp diễn? Xử lý cố thơng báo lỗi Các thơng báo lỗi đơi khó hiểu điều vấn đề đáng quan tâm Đây thông báo lỗi: SWbemObjectEx: The remote procedure call failed... thông báo lỗi làm đơn giản hóa đối tượng thể thân adapter mạng, ví dụ objNetAdapter Vậy objNetAdapter tạo lỗi Dẫu dường trở thành vấn đề Theo chuyên gia có uy tín, thành phần có hotfix cho Windows. .. khơng có lỗi Cịn trả điều có nghĩa cần phải khởi động lại Rõ ràng với Windows XP không cần phải khởi động lại bạn thay đổi địa IP adapter mạng Nếu với vài lý do, hotfix thay đổi WMI thành phần khác

Ngày đăng: 11/05/2021, 03:19

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN