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

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

Nguồn : quantrimang.com 
Mitch Tulloch
Ở 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 &
"\root\cimv2")
Set colNetAdapters = objWMIService.ExecQuery("Select * from
Win32_NetworkAdapterConfiguration")
For Each objNetAdapter in colNetAdapters
errEnableStatic =
objNetAdapter.EnableStatic(arrIPAddress, arrSubnetMask)
Next
Khi chạy script này trên server Windows, nó thay đổi thành công địa chỉ IP của
má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ế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 đó trong phần hai này.

Các định nghĩa biến

chạy cá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áo cho biến dùng trong script:
Option Explicit
Dim objWMIService
Dim objNetAdapter
Dim strComputer
Dim arrIPAddress
Dim arrSubnetMask
Dim colNetAdapters
Dim errEnableStatic
strComputer = "."
arrIPAddress = Array("172.16.11.93")
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
Chú ý là khi dùng Option Explicit (tuỳ chọn khai báo tường minh), bạn phải khai
bá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ế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 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

nào đấy trong script (như ngay sau khi kết nối tới dịch vụ WMI trên một máy từ
xa) để xác định xem liệu một hoạt động nào đó script được quy định để thực
hiện có thành công hay không. Sau đó, dựa trên kết quả kiểm tra điều kiện lỗi,
bạn có thể quyết định script các hoạt động tiếp theo của script. Ví dụ, nếu một lỗi
xuất hiện, bạn có thể nhận được thông báo nói rằng: “Computer X not found”
(không tìm thấy máy tính X) và sau đó script tiếp tục chạy. Chúng ta sẽ tìm hiểu
sâu hơ
n về kiểm soát lỗi trong một số bài khác, còn bây giờ bạn chỉ cần thêm
lệnh trên vào để bỏ qua bất kỳ lỗi thời gian chạy nào xuất hiện.

Dữ liệu đầu vào của người dùng

Sẽ phải làm gì nếu chúng ta muốn mô tả địa chỉ IP mới cho máy khi chạy script
thay vì viết mã cho nó vào script dưới dạng 172.16.11.99? Trong trường hợp này
chúng ta cần chỉnh sửa script để cho phép cung cấp dữ liệu vào của ngườ
i dùng
khi chạy nó. Thực hiện bằng cách thêm vào các tham số khi chạy script từ dòng
lệnh. Ví dụ gõ ChangeIPAddress.vbs 172.16.11.188 sẽ thay đổi địa chỉ IP của
bộ điều hợp mạng thành 172.16.11.188… Chúng ta có thể thực hiện như sau:
Option Explicit
On Error Resume Next
Dim objWMIService
Dim objNetAdapter
Dim strComputer
Dim strAddress
Dim arrIPAddress
Dim arrSubnetMask
Dim colNetAdapters
Dim errEnableStatic
If WScript.Arguments.Count = 0 Then

không. Nếu có, nó sẽ báo hiệu (hoặc hiển thị) một thông báo nói cho bạn biết
cách sử dụng script phù hợp như thế nào và chương trình chạy của script bị
ngừng lại hoàn toàn.

Cuối cùng, dòng cũ:
arrIPAddress = Array("172.16.11.93")
nơi chúng ta viết mã cho địa chỉ IP mới theo kiểu gán mảng bây giờ
đã được
thay thế bằng hai dòng bên dưới:
strAddress = Wscript.Arguments.Item(0)
arrIPAddress = Array(strAddress)
Dòng đầu tiên lấy ra phần tử đầu tiên (phần tử 0) của tập hợp
WScript.Arguments và gán nó trở thành biến xâu strAddress. Dòng thứ hai sau
đó lấy biến xâu strAddress này và gán nó trở thành phần tử đầu tiên của mảng
arrIPAddress.

Hãy xem chuyện gì xảy ra khi chạy script mới này, đầu tiên không mô tả tham
số, sau đó là chạy với một tham số:


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status