Quản lý các mạng Windows dùng script - Phần 2: Hoàn chỉnh script
Số trang: 9
Loại file: pdf
Dung lượng: 141.84 KB
Lượt xem: 11
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Quản lý các mạng Windows dùng script - Phần 2: Hoàn chỉnh script Ở phần trước chúng ta đã biết đến một số khái niệm cơ bản về kỹ thuật scripting như đối tượng (object), phương thức (method), thuộc tính (property) và viết ra một scritp đơn giản thay đổi địa chỉ IP gán cho bộ điều hợp mạng. Sau đó, chúng ta đã sử dụng bốn script đầu tiên, được gọi là ChangeIPAddress.vbs: strComputer = "." arrIPAddress = Array("172.16.11.99") arrSubnetMask = Array("255.255.255.0") Set objWMIService = GetObject("winmgmts:\" & strComputer & "
ootcimv2") Set colNetAdapters = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration") For Each...
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 2: Hoàn chỉnh script Quản lý các mạng Windows dùng script - Phần 2: Hoàn chỉnh scriptỞ phần trước chúng ta đã biết đến một số khái niệm cơ bản về kỹ thuật scriptingnhư đối tượng (object), phương thức (method), thuộc tính (property) và viết ra mộtscritp đơn giản thay đổi địa chỉ IP gán cho bộ điều hợp mạng. Sau đó, chúng ta đãsử dụng bốn script đầu tiên, được gọi là ChangeIPAddress.vbs:strComputer = .arrIPAddress = Array(172.16.11.99)arrSubnetMask = Array(255.255.255.0)Set objWMIService = GetObject(winmgmts:\ & strComputer & ootcimv2)Set colNetAdapters = objWMIService.ExecQuery(Select * fromWin32_NetworkAdapterConfiguration)For Each objNetAdapter in colNetAdapters errEnableStatic = objNetAdapter.EnableStatic(arrIPAddress, arrSubnetMask)NextKhi chạy script này trên server Windows, nó thay đổi thành công địa chỉ IP củamáy từ .45 sang .99. (Kiểm tra bằng lệnh ipconfig trước và sau khi chạy script).Kết quả hoàn toàn tốt.Nhưng script chúng ta đã xây dựng mới từng lại ở mức khá đơn giản. Còn thiếunhiều yếu tố quan trọng khác như các định nghĩa biến, điều khiển lỗi, dùng dữ liệuđầu vào và xác nhận dữ liệu đầu ra cần phải bổ sung vào để có được một scripttương đối hoàn chỉnh. Chúng ta sẽ thực hiện điều đó trong phần hai này.Các định nghĩa biếnViệc đầu tiên chúng ta cần làm để sắp xếp gọn gàng script là định nghĩa các biến sẽdùng. VBScript cho phép định nghĩa ngầm các biến đơn giản bằng cách dùng nótrong một câu lệnh, nhưng sẽ tốt hơn nếu bạn khai báo tường minh chúng ngay khibắt đầu script. Khai báo một biến sẽ nói cho VBScript biết về sự tồn tại của nó đểcấp phát bộ nhớ lưu trữ. Vì sao khai báo biến tường minh lại hay hơn? Ví dụ nhưtrong một script dài, bạn thường phạm phải một hay một số lỗi gõ phím nhầm. Vàkhi gõ nhầm tên của một biến, script của bạn sẽ không chạy được. Nếu khai báobiến tường mình ở đầu script thì bất kỳ biến nào được khai báo ngầm về sau trongscript (có thể là nguyên nhân gây ra lỗi gõ nhầm) sẽ tạo ra một lỗi runtime. Cácthông báo lỗi có thể sẽ giúp bạn xác định được vị trí nhầm lẫn và gỡ lỗi cho scriptcủa bạn.Để VBScript biết bạn khai báo tường minh tất cả các biến trong script, thêm lệnhsau vào đầu script:Option ExplicitNếu thêm lệnh này vào đầu script ChangeIPAddress.vbs và chạy nó từ CommandPrompt, kết quả là:C:Documents and SettingsAdministrator.DC-1Desktop>ChangeIPAddress.vbsMicrosoft (R) Windows Script Host Version 5.6Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.C:Documents and SettingsAdministrator.DC-1DesktopChangeIPAddress.vbs(2,1) Microsoft VBScript runtime error: Variable is undefined: strComputerĐiều mà VBScript (hay cơ chế script đã đăng ký của Windows Script Host để chạycác script VBScript) muốn nói ở đây là có một lỗi trong dòng 2 của script:strComputer = .Vì sao lại xuất hiện lỗi này? Đó là do chúng ta đang gán giá trị cho một biến xâu(strComputer) chưa được khai báo. Vì thế, bây giờ chúng ta cần thêm các khai báocho biến dùng trong script:Option ExplicitDim objWMIServiceDim objNetAdapterDim strComputerDim arrIPAddressDim arrSubnetMaskDim colNetAdaptersDim errEnableStaticstrComputer = .arrIPAddress = Array(172.16.11.93)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)NextChú ý là khi dùng Option Explicit (tuỳ chọn khai báo tường minh), bạn phải khaibáo tất cả biến trong script của mình, gồm cả đối tượng, xâu, mảng, tập hợp, biếncho đoạn mã lỗi… Nghe có vẻ rất rắc rối phức tạp nhưng thực tế chỉ cần chạy mộtsố trang dài, ngay cả khi chạy chương trình gỡ lỗi rungning time, bạn sẽ biết nóhữu ích như thế nào. Cũng chú ý là không cần khai báo biến theo trình tự, chỉ cầnnhớ khai báo cho từng biến trước khi dùng là được. Thông thường người ta đặt tấtcả khai báo biến vào một phần riêng trên đầu script như chúng ta đã làm ở trên.Điều khiển lỗiBây giờ, chúng ta đã loại bỏ được các lỗi gõ nhầm khi chạy script đã được soát lại,script hoạt động. Nhưng nếu nó không hoạt động thì sao? Ví dụ, chuyện gì sẽ xảyra nếu chúng ta thay đổi script đi một chút để chạy trên một máy từ xa thay vì máycục bộ mà trong đó máy từ xa không nằm trên mạng? Một lần nữa lỗi thời gianchạy (tức lỗi xảy ra khi script đang được thực thi, ngược lại với lỗi cú pháp màVBScript có thể nhận ra khi biên dịch script trước khi chạy nó) sẽ xuất hiện vàscript sẽ bị ngừng lại, hiển thị một thông báo lỗi tương tự như thông báo chúng tađã thấy ở trên. Chuyện gì sẽ xảy ra nếu chúng ta viết ra một script để thực hiện mộtsố thao tác? Trong trường hợp này tất nhiên chúng ta không muốn có một lỗi thờigian chạy khiến script phải dừng lạ ...
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 2: Hoàn chỉnh script Quản lý các mạng Windows dùng script - Phần 2: Hoàn chỉnh scriptỞ phần trước chúng ta đã biết đến một số khái niệm cơ bản về kỹ thuật scriptingnhư đối tượng (object), phương thức (method), thuộc tính (property) và viết ra mộtscritp đơn giản thay đổi địa chỉ IP gán cho bộ điều hợp mạng. Sau đó, chúng ta đãsử dụng bốn script đầu tiên, được gọi là ChangeIPAddress.vbs:strComputer = .arrIPAddress = Array(172.16.11.99)arrSubnetMask = Array(255.255.255.0)Set objWMIService = GetObject(winmgmts:\ & strComputer & ootcimv2)Set colNetAdapters = objWMIService.ExecQuery(Select * fromWin32_NetworkAdapterConfiguration)For Each objNetAdapter in colNetAdapters errEnableStatic = objNetAdapter.EnableStatic(arrIPAddress, arrSubnetMask)NextKhi chạy script này trên server Windows, nó thay đổi thành công địa chỉ IP củamáy từ .45 sang .99. (Kiểm tra bằng lệnh ipconfig trước và sau khi chạy script).Kết quả hoàn toàn tốt.Nhưng script chúng ta đã xây dựng mới từng lại ở mức khá đơn giản. Còn thiếunhiều yếu tố quan trọng khác như các định nghĩa biến, điều khiển lỗi, dùng dữ liệuđầu vào và xác nhận dữ liệu đầu ra cần phải bổ sung vào để có được một scripttương đối hoàn chỉnh. Chúng ta sẽ thực hiện điều đó trong phần hai này.Các định nghĩa biếnViệc đầu tiên chúng ta cần làm để sắp xếp gọn gàng script là định nghĩa các biến sẽdùng. VBScript cho phép định nghĩa ngầm các biến đơn giản bằng cách dùng nótrong một câu lệnh, nhưng sẽ tốt hơn nếu bạn khai báo tường minh chúng ngay khibắt đầu script. Khai báo một biến sẽ nói cho VBScript biết về sự tồn tại của nó đểcấp phát bộ nhớ lưu trữ. Vì sao khai báo biến tường minh lại hay hơn? Ví dụ nhưtrong một script dài, bạn thường phạm phải một hay một số lỗi gõ phím nhầm. Vàkhi gõ nhầm tên của một biến, script của bạn sẽ không chạy được. Nếu khai báobiến tường mình ở đầu script thì bất kỳ biến nào được khai báo ngầm về sau trongscript (có thể là nguyên nhân gây ra lỗi gõ nhầm) sẽ tạo ra một lỗi runtime. Cácthông báo lỗi có thể sẽ giúp bạn xác định được vị trí nhầm lẫn và gỡ lỗi cho scriptcủa bạn.Để VBScript biết bạn khai báo tường minh tất cả các biến trong script, thêm lệnhsau vào đầu script:Option ExplicitNếu thêm lệnh này vào đầu script ChangeIPAddress.vbs và chạy nó từ CommandPrompt, kết quả là:C:Documents and SettingsAdministrator.DC-1Desktop>ChangeIPAddress.vbsMicrosoft (R) Windows Script Host Version 5.6Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.C:Documents and SettingsAdministrator.DC-1DesktopChangeIPAddress.vbs(2,1) Microsoft VBScript runtime error: Variable is undefined: strComputerĐiều mà VBScript (hay cơ chế script đã đăng ký của Windows Script Host để chạycác script VBScript) muốn nói ở đây là có một lỗi trong dòng 2 của script:strComputer = .Vì sao lại xuất hiện lỗi này? Đó là do chúng ta đang gán giá trị cho một biến xâu(strComputer) chưa được khai báo. Vì thế, bây giờ chúng ta cần thêm các khai báocho biến dùng trong script:Option ExplicitDim objWMIServiceDim objNetAdapterDim strComputerDim arrIPAddressDim arrSubnetMaskDim colNetAdaptersDim errEnableStaticstrComputer = .arrIPAddress = Array(172.16.11.93)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)NextChú ý là khi dùng Option Explicit (tuỳ chọn khai báo tường minh), bạn phải khaibáo tất cả biến trong script của mình, gồm cả đối tượng, xâu, mảng, tập hợp, biếncho đoạn mã lỗi… Nghe có vẻ rất rắc rối phức tạp nhưng thực tế chỉ cần chạy mộtsố trang dài, ngay cả khi chạy chương trình gỡ lỗi rungning time, bạn sẽ biết nóhữu ích như thế nào. Cũng chú ý là không cần khai báo biến theo trình tự, chỉ cầnnhớ khai báo cho từng biến trước khi dùng là được. Thông thường người ta đặt tấtcả khai báo biến vào một phần riêng trên đầu script như chúng ta đã làm ở trên.Điều khiển lỗiBây giờ, chúng ta đã loại bỏ được các lỗi gõ nhầm khi chạy script đã được soát lại,script hoạt động. Nhưng nếu nó không hoạt động thì sao? Ví dụ, chuyện gì sẽ xảyra nếu chúng ta thay đổi script đi một chút để chạy trên một máy từ xa thay vì máycục bộ mà trong đó máy từ xa không nằm trên mạng? Một lần nữa lỗi thời gianchạy (tức lỗi xảy ra khi script đang được thực thi, ngược lại với lỗi cú pháp màVBScript có thể nhận ra khi biên dịch script trước khi chạy nó) sẽ xuất hiện vàscript sẽ bị ngừng lại, hiển thị một thông báo lỗi tương tự như thông báo chúng tađã thấy ở trên. Chuyện gì sẽ xảy ra nếu chúng ta viết ra một script để thực hiện mộtsố thao tác? Trong trường hợp này tất nhiên chúng ta không muốn có một lỗi thờigian chạy khiến script phải dừng lạ ...
Tìm kiếm theo từ khóa liên quan:
mạng máy tính tài liệu mạng máy tính chuyên ngành mạng máy tính giáo trình mạng máy tính câu hỏi về mạng máy tínhGợi ý tài liệu liên quan:
-
Giáo án Tin học lớp 9 (Trọn bộ cả năm)
149 trang 266 0 0 -
Ngân hàng câu hỏi trắc nghiệm môn mạng máy tính
99 trang 252 1 0 -
Giáo trình Hệ thống mạng máy tính CCNA (Tập 4): Phần 2
102 trang 247 0 0 -
47 trang 240 3 0
-
Đề cương chi tiết học phần Thiết kế và cài đặt mạng
3 trang 235 0 0 -
80 trang 221 0 0
-
122 trang 214 0 0
-
Giáo trình Hệ thống mạng máy tính CCNA (Tập 4): Phần 1
122 trang 214 0 0 -
Giáo trình môn học/mô đun: Mạng máy tính (Ngành/nghề: Quản trị mạng máy tính) - Phần 1
68 trang 203 0 0 -
Giáo trình căn bản về mạng máy tính -Lê Đình Danh 2
23 trang 191 0 0