queen_love_911

New Member

Download miễn phí Quản lý các mạng Windows dùng script - Sử dụng Win32 NetworkAdapterConfiguration





Đầu tiên chúng ta dùng thuộc tính IPEnabled của lớp
Win32_NetworkAdapterConfiguration đểtrảvềtập hợp các bộ điều hợp mạng có
giới hạn TCP/IP và được cho phép hoạt động. Sau đó gọi cách
EnableStatic của cùng lớp này đểthay đổi địa chỉIP và subnet mask của các bộ
điều hợp mạng này, dùng các biến mảng arrIPAddress và arrSubnetMask, đã
được định nghĩa trước đó trong script. Chúng ta sẽcần thêm hai biến vào
nhưlà các tham sốcho cách này. Đơn giản là bởi khi kích vào liên kết
EnableStatic trong Hình 3 ởtrên, trang MSDN hiển thịthông tin nhưHình 4,
cung cấp cho chúng ta những điều cần thiết đểcó thểsửdụng được lớp này:



Để tải bản Đầy Đủ của tài liệu, xin Trả lời bài viết này, Mods sẽ gửi Link download cho bạn sớm nhất qua hòm tin nhắn.
Ai cần download tài liệu gì mà không tìm thấy ở đây, thì đăng yêu cầu down tại đây nhé:
Nhận download tài liệu miễn phí

Tóm tắt nội dung tài liệu:

Quản lý các mạng Windows dùng script - Phần 4: Sử dụng
Win32_NetworkAdapterConfiguration
Nguồn : quantrimang.com 
Mitch Tulloch
Sử dụng lớp WMI Win32_NetworkAdapterConfiguration để quản lý các thiết
lập TCP/IP trên các mạng Windows thông qua VBScript.
Trong hai phần đầu của loạt bài này chúng ta đã xem xét một số khái niệm cơ
bản của kỹ thuật Windows scripting trong quản lý các thiết lập mạng TCP/IP. Để
minh hoạ và thực hành, chúng ta đã phát triển một script đơn giản sau với chức
năng thay đổi địa chỉ của một bộ điều hợp mạng:
Option Explicit
On Error Resume Next
Dim objWMIService
Dim objNetAdapter
Dim strComputer ' Can specify IP address or hostname or
FQDN
Dim strAddress 'Contains the new IP address
Dim arrIPAddress
Dim arrSubnetMask
Dim colNetAdapters
Dim errEnableStatic
'Check for missing arguments
If WScript.Arguments.Count = 0 Then
Wscript.Echo "Usage: ChangeIPAddress.vbs
new_IP_address"
WScript.Quit
End If
strComputer = "."
strAddress = Wscript.Arguments.Item(0)
arrIPAddress = Array(strAddress)
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
'Display result or error code
If errEnableStatic=0 Then
Wscript.Echo "Adapter's IP address has been
successfully changed to " & strAddress
Else
Wscript.Echo "Changing the adapter's address was not
successful. Error code " & errEnableStatic
End If
Script trên thay đổi địa chỉ IP của một bộ điều hợp mạng, dùng
Win32_NetworkAdapterConfiguration, một trong những lớp WMI hữu ích nhất để
quản lý cầu hình mạng TCP/IP cho các máy chạy trên nền Windows. Ở phần ba,
chúng ta đã dạo một vòng sơ lược qua WMI với những namespace (không gian
tên), provider (nhà cung cấp) và class (lớp) của nó. Nhờ đó, chúng ta có thể hiểu
kỹ càng hơn những dòng mã nằm ở giữa script:
Set objWMIService = GetObject("winmgmts:\\" & strComputer &
"\root\cimv2")
Nếu bạn nhớ lại ở bài trước, dòng này có tác dụng kết nối tới namespace
root\cimv2 trên máy cục bộ bằng cách định nghĩa một đối tượng có tên
objWMIService và đặt nó bằng với giá trị trả về của cách GetObject. Tất
nhiên, sau khi kết nối tới namespace này, bạn có thể thu thập thông tin từ nó.
Còn trong bài ngày hôm nay, dòng mã lệnh chúng ta sẽ tập trung vào theo sau
dòng trên và sử dụng lớp Win32_NetworkAdapterConfiguration:
Set colNetAdapters = objWMIService.ExecQuery("Select * from
Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")
Nhớ lại bạn sẽ thấy, dòng lệnh thứ hai gọi cách ExecQuery cho đối
tượng objWMIService mà chúng ta đã mô tả ở dòng đầu. Lệnh SELECT được
đưa vào cách này với vai trò như một tham số. Và tập hợp tất cả cấu
hình bộ điều hợp mạng trên hệ thống có giới hạn TCP/IP, được cho phép trên bộ
điều hợp sẽ được trả lại và gán bằng biến colNetAdapters. Sau khi có tập hợp
này, chúng ta có thể lặp vòng nó bằng lệnh For Each… Nhớ rằng, bạn luôn phải
chạy vòng lặp cho các tập hợp dù có tập hợp đó chỉ bao gồm một đối tượng.
Câu hỏi sẽ được đưa ra ở đây là: Chúng ta có thể làm thêm điều gì với lớp
Win32_NetworkAdapterConfiguration?
Sử dụng các thuộc tính và cách của
Win32_NetworkAdapterConfiguration
Bạn đã biết, thuộc tính thể hiện thông tin có thể truy vấn từ một hệ thống dùng
WMI. Một lớp WMI càng có nhiều thuộc tính thì thông tin có thể lấy ra từ nó càng
nhiều. Lớp Win32_NetworkAdapterConfiguration thực tế có 61 thuộc tính khác
nhau. Một trong số chúng là duy nhất, hoàn toàn riêng của
Win32_NetworkAdapterConfiguration, còn một số khác là do kế thừa từ nhiều
lớp khác. Bạn có thể tìm thấy danh sách hoàn chỉnh các thuộc tính của lớp
Win32_NetworkAdapterConfiguration trên MSDN. Khi học về sử dụng Windows
scripting để quản lý các mạng Windows dùng script, một điều hết sức quan trọng
là cần quen với những thông tin WMI trên MSDN như thế này. Hình 1 thể
hiện một số thuộc tính của lớp Win32_NetworkAdapterConfiguration:
Hình 1: Một số thuộc tính của lớp Win32_NetworkAdapterConfiguration
Ở hình trên, phần màu vàng minh hoạ là thể hiện thuộc tính nhị phân IPEnabled
được kích vào, dùng để nhận dạng tất cả các bộ điều hợp mạng trên hệ thống
có giới hạn TCP/IP và được cho phép hoạt động. Thực hiện bằng cách đưa lệnh
SQL sau vào như một tham số cho cách objWMIService.ExecQuery:
Select * from Win32_NetworkAdapterConfiguration where
IPEnabled=TRUE
Lệnh Select * from sẽ mở rộng chức năng cho script bằng cách truy vấn tất cả các
thuộc tính khác của lớp. Ví dụ, nếu muốn chọn tất cả bộ điều hợp mạng trên hệ
thống có DHCP, đơn giản chỉ cần thay đổi lệnh SELECT như sau:
Select * from Win32_NetworkAdapterConfiguration where
DHCPEnabled=TRUE
Thông tin tương tự cũng sẽ được tìm thấy trên một trang MSDN giống như vậy.
Hình 2 cho chúng ta thấy điều này:
Hình 2: Thuộc tính DHCPEnabled của lớp Win32_NetworkAdapterConfiguration
Còn các cách của lớp thì sao? Nhớ lại rằng cách (method) là
các hàm gọi đến để thực hiện một số thao tác khác nhau dùng WMI. Kết quả tìm
kiếm cho thấy Win32_NetworkAdapterConfiguration cũng có rất nhiều phương
thức, tổng cộng là 41. Bạn có thể tìm các cách cho lớp này nằm trên
cùng một trang bên dưới các thuộc tính, như trong Hình 3:
Hình 3: Các cách của lớp Win32_NetworkAdapterConfiguration
Trở lại một chút với phần quan trọng sau trong script:
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
Đầu tiên chúng ta dùng thuộc tính IPEnabled của lớp
Win32_NetworkAdapterConfiguration để trả về tập hợp các bộ điều hợp mạng có
giới hạn TCP/IP và được cho phép hoạt động. Sau đó gọi cách
EnableStatic của cùng lớp này để thay đổi địa chỉ IP và subnet mask của các bộ
điều hợp mạng này, dùng các biến mảng arrIPAddress và arrSubnetMask, đã
được định nghĩa trước đó trong script. Chúng ta sẽ cần thêm hai biến vào
như là các tham số cho cách này. Đơn giản là bởi khi kích vào liên kết
EnableStatic trong Hình 3 ở trên, trang MSDN hiển thị thông tin như Hình 4,
cung cấp cho chúng ta những điều cần thiết để có thể sử dụng được lớp này:
Hình 4: Thông tin chi tiết về cách EnableStatic của lớp
Win32_NetworkAdapterConfiguration
Không chỉ cung cấp cho chúng ta cú pháp về cách gọi lớp, MSDN còn cho chúng
ta biết giá trị trả về và cách biên dịch các điều kiện lỗi khác có thể phát sinh. Đó
là lý do vì sao chúng ta dùng biến lỗi trong dòng sau ở script:
errEnableStatic = objNetAdapter.EnableStatic(arrIPAddress,
arrSubnetMask)
Và đó cũng là lý do vì sao chúng ta sử dụng các dòng sau để ghi nhận mã lỗi
nếu có lỗi nào đó xuất hiện khi script chạy:
If errEnableStatic=0 Then
Wscript.Echo "Adapter's IP address has been
successfully changed to " & strAddress
Else
Wscript.Echo "Changing the adapter's address was not
successful. Error code " & errEnableStatic
End If
Một lần nữa chúng ta có thể mở rộng th...
 
Các chủ đề có liên quan khác
Tạo bởi Tiêu đề Blog Lượt trả lời Ngày
D Quản lý nhà nước đối với các ngành nghề kinh doanh có điều kiện trên cấp huyện Văn hóa, Xã hội 1
D Đánh giá hiện trạng và đề xuất các giải pháp hoàn thiện công tác quản lý chất thải rắn sinh hoạt trên địa bàn Long An Nông Lâm Thủy sản 0
D Quản lý Nhà nước đối với các doanh nghiệp có vốn đầu tư trực tiếp nước ngoài tại tỉnh Bắc Ninh Luận văn Kinh tế 0
D Giải pháp để quản lý cầu dịch vụ ăn uống trong các nhà hàng bình dân trên địa bàn Hà Nội Luận văn Kinh tế 1
D Quản lý các dự án đầu tư xây dựng tại ngân hàng nhà nước Việt Nam Kiến trúc, xây dựng 1
D Điều tra, nghiên cứu hiện trạng quản lý chất thải rắn y tế tại Thanh Hóa và đề xuất các giải pháp cải thiện Khoa học Tự nhiên 0
D Quản lý nhà nước về thu hút vốn đầu tư vào các khu công nghiệp trên địa bàn tỉnh Thái Nguyên Luận văn Kinh tế 0
D quản lý các dòng chảy của hệ thống kênh phân phối cho sản phẩm kem tràng tiền Luận văn Kinh tế 0
D Trình bày các mô hình cơ cấu tổ chức quản lý. Liên hệ phân tích mô hình cơ cấu tổ chức của quản lý Luận văn Kinh tế 0
D Quản lý công tác chủ nhiệm lớp theo tiếp cận hợp tác ở các trường THCS trên địa bàn huyện Phù Ninh - Phú Thọ Luận văn Sư phạm 0

Các chủ đề có liên quan khác

Top