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
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 ...
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ìm kiếm theo từ khóa liên quan:
thủ thuật máy tính công nghệ thông tin tin học hệ điều hành quản trị mạng computer networkTài liệu liên quan:
-
Giáo trình Lý thuyết hệ điều hành: Phần 1 - Nguyễn Kim Tuấn
110 trang 458 0 0 -
52 trang 434 1 0
-
24 trang 359 1 0
-
Top 10 mẹo 'đơn giản nhưng hữu ích' trong nhiếp ảnh
11 trang 320 0 0 -
Làm việc với Read Only Domain Controllers
20 trang 311 0 0 -
74 trang 304 0 0
-
96 trang 299 0 0
-
Báo cáo thực tập thực tế: Nghiên cứu và xây dựng website bằng Wordpress
24 trang 291 0 0 -
Đồ án tốt nghiệp: Xây dựng ứng dụng di động android quản lý khách hàng cắt tóc
81 trang 286 0 0 -
173 trang 278 2 0