Danh mục

Quản lý các mạng Windows dùng script - Phần 2: Hoàn chỉnh script

Số trang: 15      Loại file: pdf      Dung lượng: 349.90 KB      Lượt xem: 12      Lượt tải: 0    
10.10.2023

Hỗ trợ phí lưu trữ khi tải xuống: 1,000 VND Tải xuống file đầy đủ (15 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 objNetAdapter...
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ậtscripting 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ềuhợ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ỉ IPcủa máy từ .45 sang .99. (Kiểm tra bằng lệnh ipconfig trước và sau khi chạyscript). 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ònthiếu nhiề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 script tương đối hoàn chỉnh. Chúng ta sẽ thực hiện điều đó trongphầ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ácbiến sẽ dùng. VBScript cho phép định nghĩa ngầm các biến đơn giản bằngcá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ườngminh chúng ngay khi bắt đầu script. Khai báo một biến sẽ nói cho VBScriptbiế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ếntường minh lại hay hơn? Ví dụ như trong một script dài, bạn thường phạmphả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áo biến tường mình ở đầuscript thì bất kỳ biến nào được khai báo ngầm về sau trong script (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ác thông báo lỗicó thể sẽ giúp bạn xác định được vị trí nhầm lẫn và gỡ lỗi cho script của bạn.Để VBScript biết bạn khai báo tường minh tất cả các biến trong script, thêmlệnh sau vào đầu script:Option ExplicitNếu thêm lệnh này vào đầu script ChangeIPAddress.vbs và chạy nó từCommand Prompt, kết quả là:C:Documents and SettingsAdministrator.DC-1Desktop>ChangeIPAddress.vbsMicrosoft (R) Windows Script Host Version 5.6Copyright (C) Microsoft Corporation 1996-2001. Allrights reserved.C:Documents and SettingsAdministrator.DC-1DesktopChangeIPAddress.vbs(2, 1) MicrosoftVBScript runtime error: Variable is undefined:strComputerĐiều mà VBScript (hay cơ chế script đã đăng ký của Windows Script Hostđể chạy các script VBScript) muốn nói ở đây là có một lỗi trong dòng 2 củascript: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ếnxâu (strComputer) chưa được khai báo. Vì thế, bây giờ chúng ta cần thêmcác khai báo cho 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 whereIPEnabled=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ảikhai báo tất cả biến trong script của mình, gồm cả đối tượng, xâu, mảng, tậphợp, biến cho đ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ột số trang dài, ngay cả khi chạy chương trình gỡ lỗi rungningtime, bạn sẽ biết nó hữu ích như thế nào. Cũng chú ý là không cần khai báobiến theo trình tự, chỉ cần nhớ khai báo cho từng biến trước khi dùng làđược. Thông thường người ta đặt tất cả khai báo biến vào một phần riêngtrê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 đã đượcsoá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ảy ra nếu chúng ta thay đổi script đi một chút để chạy trên mộtmáy từ xa thay vì máy cụ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 gian chạ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 scripttrước khi chạy nó) sẽ xuất hiện và script sẽ bị ngừng lại, hiển thị một thôngbáo lỗi tương tự như thông báo chúng ta đã thấy ở trên. Chuyện gì sẽ xảy ranếu chúng ta viết ra một script để thực hiện một số thao tác? Trong trườnghợp này tất nhiên chúng ta không muốn có một lỗi thời gian chạy khiếnscrip ...

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