Danh mục

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    
Thư viện của tui

Phí tải xuống: 1,000 VND Tải xuống file đầy đủ (9 trang) 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ạ ...

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