Giáo trình nghề Quản trị mạng máy tính - Quản trị hệ thống Webserver và Mailserver

MỤC LỤC  
CHƢƠNG 1. NHỮNG KHÁI NIỆM CƠ BẢN ...............................................1  
CHƢƠNG TRÌNH MÔN HỌC  
Tên môn học: Quản trị hệ thống Webserver, Mail server  
Mã môn học: MĐCC13030131  
Thời gian thực hiện môn học: 75 giờ; (Lý thuyết: 15 giờ; Thực hành, thí nghiệm,  
thảo luận, bài tập: 57 giờ; Kiểm tra: 3 giờ)  
I. Vị trí, tính chất của môn học:  
- Vị trí của môn học: Môn học đƣợc bố trí sau khi sinh viên học xong các môn học  
chung, các môn học cơ sở chuyên ngành, sau một số mô đun chuyên môn nghề nhƣ:  
Mạng máy tính căn bản, Hệ điều hành, Quản trị Windows server cơ bản, Quản trị  
Windows Server nâng cao.  
- Tính chất của môn học: Là môn học môn học, mô đun chuyên môn ngành, nghề.  
II. Mục tiêu môn học:  
Môn học này cung cấp cho ngƣời học các kiến thức cơ bản về kịch bản quản lý,  
điều hành mạng, kịch bản tấn công mạng, kỹ thuật xây dựng kịch bản mạng  
- Về kiến thức:  
+ Trình bày đƣợc các kiến thức cơ bản về kịch bản mạng và kỹ thuật xây dựng  
kịch bản, các bƣớc xây dựng và triển khai kịch bản quản lý, kiểm soát Windows  
và điều khiển từ xa trên nền VB Scripts  
- Về kỹ năng:  
+ Xây dựng đƣợc kịch bản triển khai quản lý máy tính và hệ thống mạng.  
+ Tự động hóa việc quản lý, phát hiện lỗi, báo cáo và xử lý lỗi bằng Scripts.  
+ Sử dụng các lớp, các đối tƣợng và thành phần của đối tƣợng để xây dựng các  
kỹ thuật kịch bản hỗ trợ tự động hóa quá trình kiểm soát và điều khiển.  
- Về thái độ: Có đạo đức và lƣơng tâm nghề nghiệp, ý thức kỷ luật tốt, tích cực tiếp  
thu kiến thức mới.  
III. Nội dung môn học:  
1. Nội dung tổng quát và phân phối thời gian:  
Thời gian (giờ)  
TT  
Nội dung môn học  
Tổng  
số  
Lý  
Thự Kiể  
thuyế  
c
m
1
t
hành tra  
Chƣơng 1. Những khái niệm cơ bản  
1
2
5
5
0
Chƣơng 2. Kiểm soát quản lý Windows  
bằng Script (Windows Management  
Instrumentation WMI Scripts)  
23  
3
2
19  
19  
1
1
Chƣơng 3. Viết kịch bản chạy trên các máy  
từ xa (scripting remote)  
3
4
22  
Chƣơng 4. Một số thủ thuật Scripts khác  
25  
5
19  
1
Tổng cộng  
75  
15  
57  
3
2. Nội dung chi tiết:  
Chƣơng 1. Những khái niệm cơ bản  
Mục tiêu:  
- Kiến thức: Trình bày kịch bản và kịch bản mạng máy tính trên nền tảng hệ  
điều hành Windows, liệt kê đƣợc các bƣớc xây dựng và triển khai đƣợc một  
kịch bản và mô tả đƣợc các thành phần của một Scripts.  
- Kỹ năng:  
+ Viết đƣợc 1 Script sử dụng mã lệnh có sẵn  
+ Triển khai đƣợc 1 Script đã xây dựng  
- Thái độ: Tích cực tìm hiểu về kịch bản mạng.  
Nội dung chƣơng:  
Thời gian: 5 giờ (LT: 5; TH: 0)  
1.1. Scripts và Network Scripting  
1.2. Các thành phần của Script  
1.3. Điều khiển lỗi, định nghĩa biến và dữ liệu ngƣời dùng  
1.4. Ví dụ về xây dựng và thi hành một Scripts  
Chƣơng 2. Kiểm soát quản lý Windows bằng Script (Windows Management  
Instrumentation WMI Scripts)  
Mục tiêu:  
- Kiến thức: Trình bày đƣợc ý nghĩa và nguyên tắc hoạt động của VMI, các lớp  
WMI và cách sử dụng WMI.  
- Kỹ năng:  
+ Xây dựng đƣợc WMI để quản lý kiểm soát Windows và hệ thống máy tính  
trên hệ thống mạng  
+ Triển khai Script để tự động hóa quá trình kiểm soát hệ thống mạng  
- Thái độ: Tích cực tìm hiểu về các thành phần phần của WMI Scripts.  
Nội dung chƣơng:  
Thời gian: 23 giờ (LT: 3; TH: 20)  
2
2.1. Giới thiệu WMI  
2.2. Nguyên tắc hoạt động của WMI  
2.3. Các lớp WMI  
2.4. Sử dụng WMI  
2.6. Các thuộc tín của WMI  
Chƣơng 3. Viết kịch bản chạy trên các máy từ xa (scripting remote)  
Mục tiêu:  
- Kiến thức: Trình bày đƣợc ý nghĩa và nguyên tắc hoạt động của kịch bản trên  
các máy từ xa, các lớp scripting remote và cách sử dụng scripting remote.  
- Kỹ năng:  
+ Xây dựng đƣợc scripting remote để quản lý kiểm soát điều khiển từ xa các  
máy tính trên hệ thống mạng  
+ Triển khai Script để tự động hóa quá trình điều khiển từ xa trong hệ thống  
mạng  
- Thái độ: Tích cực tìm hiểu về các thành phần phần của Remote Scripting.  
Nội dung chƣơng:  
Thời gian: 22 giờ (LT: 2; TH: 20)  
3.1. Giới thiệu về Scripting Romote và xây dựng Scripting Romote  
3.2. Xử lý sự cố lỗi với Scripting Romote  
Chƣơng 4. Một số thủ thuật Scripts khác  
Mục tiêu:  
- Kiến thức: Sinh viên trình bày đƣợc các thủ thuật runas, truy vấn cục bộ để lấy  
thông tin, tƣơng tác và xử lý theo lô.  
- Kỹ năng:  
+ Triển khai đƣợc các thủ thuật mã hóa, truy vấn, tƣơng tác và xử lý theo lô với  
thủ thuật runas và các WMIC tƣơng ứng  
Thái độ: Tích cực tìm hiểu về các kỹ thuật Script bổ sung  
Nội dung chƣơng:  
Thời gian: 25 giờ (LT: 5; TH: 20)  
4.1. Thủ thuật “runas” nhƣng với sự mã hóa  
4.2. Truy vấn cho quản trị viên cục bộ bằng WMIC  
4.3. Sử dụng WMIC tƣơng tác  
4.4. Sử dụng WMIC trong các file Batch  
IV. Điều kiện thực hiện chƣơng trình:  
3
Đầy đủ tài liệu học tập nhƣ: Giáo án, giáo trình về môn học Kỹ thuật kịch bản  
mạng  
V. Phƣơng pháp và nội dung đánh giá:  
1. Nội dung  
- Về kiến thức:  
+ Trình bày đƣợc các kiến thức nền tảng về kịch bản mạng  
+ Trình bày đƣợc các đặc điểm kỹ thuật của một số kịch bản thông dụng  
+ Trình bày đƣợc các kỹ thuật xây dựng và triển khai kịch bản mạng.  
- Về kỹ năng:  
+ Xây dựng và lập trình đƣợc các script để quản lý và tự động hóa quá trình kiểm  
soát và điều khiển từ xa.  
+ Triển khai một số kỹ thuật kịch bản mạng phổ biến.  
- Về thái độ: Có đạo đức và lƣơng tâm nghề nghiệp, ý thức kỷ luật tốt, tích cực tiếp  
thu kiến thức mới.  
2. Phƣơng pháp  
- Học sinh tham gia học ít nhất 80% tổng số tiết môn học, tham gia kiểm tra và thi  
kết thúc môn học theo quy chế hiện hành.  
- Điểm đánh giá quá trình gồm có:  
+ Kiểm tra thƣờng xuyên: 01 bài kiểm tra (Điểm hệ số 1)  
+ Kiểm tra định kỳ: 03 bài kiểm tra (Điểm hệ số 2)  
+ Thi kết thúc môn học:  
- Thang điểm: thang điểm 10.  
VI. Hƣớng dẫn sử dụng chƣơng trình:  
1. Phạm vi áp dụng chƣơng trình:  
Chƣơng trình môn học Network Scripting đƣợc sử dụng để giảng dạy cho trình  
độ cao đẳng khóa tuyển sinh năm 2017.  
2. Hƣớng dẫn một số điểm chính về phƣơng pháp giảng dạy môn học:  
- Tuỳ theo nội dung của mỗi bài mà giáo viên có thể sử dụng những phƣơng  
pháp mang tính chất vừa truyền thống vừa hiện đại nhƣ: thuyết trình, trực quan, hoạt  
động nhóm..  
- Để đảm bảo và nâng cao chất lƣợng đào tạo của môn học rất cần có sự đầu tƣ  
cơ sở vật chất, trang thiết bị, đồ dùng dạy học nhƣ: phòng học thực hành máy tính,  
máy chiếu đa năng, giáo trình, các Video trực quan, Các thiết bị phần cứng và thiết bị  
mạng máy tính  
3. Những trọng tâm chƣơng trình cần chú ý:  
4
CHƢƠNG 1. NHỮNG KHÁI NIỆM CƠ BẢN  
1.1. Scripts và Network Scripting  
Có một câu nói nhƣ thế này, không rõ của vĩ nhân hay thƣờng dân nào nhƣng  
tôi thấy quả rất chí lý: “Đưa cho một anh chàng sắp chết đói một con cá, bạn nuôi  
được anh ta một ngày; nhưng nếu dạy cho anh ta cách câu cá, bạn nuôi anh ta cả  
đời”.  
Còn gì đúng hơn thế, và càng đúng hơn trong thế giới bận rộn của các chuyên gia công  
nghệ thông tin (mà chúng ta vẫn quen miệng gọi là dân IT) khi làm việc với kỹ thuật  
scripting: “Đưa cho một admin một script, bạn giúp anh ta giải quyết một vấn đề;  
nhưng nếu dạy anh ta cách viết script như thế nào, bạn giúp anh ta làm được công  
việc gắn liền với cả đời anh ta”.  
Giá mà tự động hoá đƣợc công việc quản trị hàng ngày bằng các script, cuộc sống của  
những admin sẽ thoải mái và nhẹ nhàng hơn nhiều. Tại sao cần phải biết và dùng  
script? Không phải đã có hàng trăm script đƣợc viết sẵn trôi nổi trên thế giới mạng mà  
bạn có thể tải về dùng một cách dễ dàng, nhƣ lấy từ nguồn trung tâm Script Center  
Script Repository của Microsoft chẳng hạn. Vậy tại sao? Hàng trăm kịch bản (script)  
viết sẵn, xin thƣa rằng đúng. Tải về dùng dễ dàng, xin thƣa rằng lại càng đúng. Ấy vậy  
mà đúng nhƣng chƣa đủ. Chúng hữu ích và giúp đỡ bạn rất nhiều, nhƣng nhiều khi đòi  
hỏi riêng theo cấu hình cụ thể trong môi trƣờng của bạn lại làm khó chúng. Có khi  
trong hàng trăm hàng nghìn script tải về bạn chỉ chọn lọc đƣợc một script phù hợp mà  
vẫn phải điều chỉnh đôi chút. Đơn giản vì tác giả viết ra nó không nằm trong tổ chức  
của bạn, không thực hiện theo cấu hình của bạn và mối quan tâm của họ lại hƣớng đến  
một cái gì khác cơ. Khi đó các admin phải trở thành những ông thợ sửa chữa lành  
nghề, thay đổi chỗ này một chút, thay đổi chỗ kia một tý, ghép ghép nối nối để biến  
vài scrip nhỏ lẻ thành một script hợp nhất lớn hơn hay dùng dữ liệu đầu ra của script  
này làm thành dữ liệu đầu vào cho script khác, hay biến nó thành công cụ hoạt động  
cho một máy từ xa… Quả là rất nhiều việc!  
Anh thợ máy muốn sửa chữa đƣợc máy móc thì phải hiểu cấu trúc của nó, đó là điều  
không ai phản bác. Bởi vậy mà anh “thợ” admin muốn biến đổi, điều chỉnh script thì  
phải hiểu về nó, phải biết cách xây dựng và viết ra nó, biến những cái mới hay cái có  
sẵn thành cái của riêng mình, phù hợp nhất với mình. Và lúc đó ngƣời ta gọi anh là  
“thợ lành nghề”. Muốn đƣợc nhƣ vậy, ai cũng phải bắt đầu với những điều cơ bản  
nhất, ở đây là Windows scripting. Nói đến script, nhiều ngƣời tƣởng chừng rất khó,  
thực sự khó vì trƣớc hết… script rất khó dịch sang tiếng Việt! Script nghĩa là “kịch  
bản”, nhƣng dân công nghệ chúng ta đâu phải là ngƣời làm phim nên kịch bản của thế  
1
 
giới IT chỉ toàn những đoạn mã loằng ngoằng mà chỉ có các chuyên gia mới hiểu, còn  
nhiều ngƣời “thƣờng thƣờng bậc trung” nhƣ… sinh viên công nghệ thì chịu! Chính bởi  
vậy mà hôm nay chúng ta sẽ bắt đầu từ những cái cơ bản nhất, sau đó nâng cao dần  
khả năng hiểu những khía cạnh sâu xa hơn trong viết và dùng script ở các mạng  
Windows. Mục đích cuối cùng mà chúng ta hƣớng tới là kể cả những ngƣời mới bắt  
đầu tìm hiểu nhƣ bạn, nhƣ tôi đều có thể script hoá tự động công việc, để cuộc sống  
của các admin an nhàn hơn. Chúng ta sẽ thực hiện điều này trên cả script do chính bạn  
viết ra hoặc download về từ nhiều nguồn khác nhau. Chúng ta cũng sẽ đƣợc biết một  
số tài nguyên liên quan đáng tìm hiểu để có cái nhìn sâu sắc hơn về Windows  
scripting, cũng nhƣ một số công cụ trợ giúp có thể sẽ rất hữu ích trong tƣơng lai.  
1.2. Các thành phần của Script  
Các thiết lập TCP/IP scripting  
Hầu nhƣ admin nào cũng dùng Visual Basic Script (VBScript) để viết kịch bản  
quản trị Windows (Windows admin script). VBScript không chỉ là một ngôn ngữ mạnh  
mà cú pháp của nó còn khá đơn giản để học và làm. VBScript có thể dùng chung với  
Windows Management Instrumentation (WMI) và Active Directory Services Interfaces  
(ADSI) để viết kịch bản cho bất kỳ khía cạnh nào của một hệ thống chạy hệ điều hành  
Windows hay một mạng dùng Active Directory. Chúng ta sẽ bắt đầu học về Windows  
scripting bằng cách dùng VBScript với WMI để thực hiện một điều sẽ rất hữu ích: thay  
đổi địa chỉ IP của một network adapter.  
Tại sao lại cần thực hiện điều này? Đó là do chúng ta sẽ phải sử dụng nhiều đến một  
máy chủ ảo và một PC ảo để thiết lập môi trƣờng kiểm tra. Chúng ta sẽ cần phải chuyển  
một máy ảo (VM) chạy hệ điều hành Windows Server 2003 từ mạng ảo này sang mạng  
ảo khác để sử dụng lại server (máy chủ) cho một số mục đích khác. Nhƣ thế có nghĩa là  
chúng ta sẽ cần thay đổi địa chỉ IP trên server (cũng có thể là cổng vào mặc định nữa).  
Bạn có thể thực hiện điều này bằng cách mở Network Connections trong Control  
Panel và kích phải chuột lên Local Area Connections, chọn Properties >  
Internet Protocol (TCP/IP) trên tab General và bấm chọn Properties, nhập địa chỉ IP  
mới rồi ấn OK hai lần. Đây là cách thực hiện phổ biến nhƣng nghe qua bạn đã thấy khá  
dài dòng và mệt mỏi. Với những chuyên gia, họ thích sử dụng Command Promt hơn,  
lệnh dùng ở đây là Netsh. Song, khi sử dụng lệnh này bạn cần cẩn trọng vì nó có nhiều  
ngữ cảnh, lệnh và tham số khác nhau rất khó nhớ. Thực hiện sai một thao tác cũng có  
thể dẫn đến hậu quả nghiêm trọng. Nếu chƣa thực sự chắc chắn, hãy nhờ sự giúp đỡ của  
phần trợ giúp Help hoặc quay trở lại cách thứ nhất  
2
 
Nhƣng mục đích của chúng ta ở đây là học về script. Do đó, chúng ta sẽ xem xét cách  
thay đổi địa chỉ IP của máy dùng VBScript và WMI nhƣ thế nào mà trƣớc hết là phải  
biết đến một số khái niệm cơ bản nhƣ đối tƣợng (object), phƣơng thức (method), thuộc  
tính (property), namespace…  
Để bắt đầu, hãy chạy script trên một máy cục bộ:  
strComputer  
=
"."  
Ở đây, tiền tố str- đƣợc đặt đầu đối tƣợng là để chỉ strComputer là một biến có chứa  
xâu, còn dấu chấm là ký hiệu tham chiếu tới máy cục bộ và đƣợc dùng nhƣ một điểm  
bắt đầu của namespace WMI. Vậy không gian tên WMI là gì? Thực ra, đó là một tập  
hợp phân cấp các lớp đối tƣợng khác nhau, có thể đƣợc dùng để quản lý nhiều mặt khác  
nhau của máy tính Windows. Ví dụ, có một namespace gốc và bên dƣới nó là hàng tá  
namespace con khác nhƣ SECURITY, CIMV2, perfmon… Hầu hết các lớp WMI hữu  
ích nằm trong không gian tên root\cimv2 và trƣớc khi làm việc với bất kỳ lớp nào trong  
số đó, chúng ta cần diễn giải chúng thành các đối tƣợng. Sau đó là xem xét thuộc tính  
của các đối tƣợng này và gọi phƣơng thức để thao tác chúng.  
Lớp, đối tƣợng, thuộc tính, phƣơng thức - chúng là những gì? Dƣới đây là một phân  
tích đơn giản có thể giúp bạn hiểu về chúng: xem xét lớp MicrowaveOven, tức tập hợp  
trừu tƣợng của tất cả các lò vi sóng (không có một lò thực nào đƣợc đƣa vào trong đó  
cả). Lớp này có thể có các thuộc tính: màu sắc (Color), kích thƣớc theo khối lập phƣơng  
(CubicInches), mặt quay tròn (HasTurntable)… Có lẽ bạn hiểu thuộc tính chính là các  
đặc điểm, tính chất đặc trƣng cho một lớp. Nói cách khác, các lò vi sóng này sẽ có một  
màu nào đó, có một kích thƣớc bên trong nào đó và chúng có thể quay tròn hoặc không.  
Lớp MicrowaveOven cũng có các phƣơng thức. Phƣơng thức, tức là một hàm tính toán  
hoặc đƣợc định nghĩa theo một quy luật nhất định để lớp có thể thao tác hoặc bạn có thể  
thao tác với lớp. Với lớp cụ thể này, một số phƣơng thức có thể dùng  
SetCookingTime (thiết lập thời gian nấu), SetPowerLevel (thiết lập mức điện sử  
dụng), Reset (nấu lại)… Thông thƣờng, để gọi một phƣơng thức bạn phải đƣa tham số  
vào cho nó. Ví dụ, để gọi phƣơng thức SetCookingTime (thiết lập thời gian nấu), chúng  
ta có thể định nghĩa biến CookingTime (thời gian nấu) trong một số giây nhất định và  
sau đó đƣa biến này vào phƣơng thức SetCookingTime thiết lập cho một trƣờng hợp cụ  
thể của lớp này (một trƣờng hợp thực, không phải là lò vi sóng trong lớp trừu tƣợng).  
Với WMI VBScript, chúng ta có thể thực hiện nhƣ sau:  
intCookingTime = 120  
errSetCookingTime = objMicrowave.SetCookingTime(intCookingTime)  
3
Nhƣng đối tƣợng lò vi sóng (objMicrowave) ở đâu ra? Chúng ta vẫn chƣa tạo nó, vì vậy  
hãy tạo bằng cách dùng lệnh Set và phƣơng thức CreateObject:  
Set objMicrowave = CreateObject("MicrowaveOven")  
Thực ra, nếu xét kỹ hơn thì objMicrowave không phải là đối tƣợng của  
lớp MicrowaveOven. Chính xác hơn nó là một đối tƣợng tham chiếu tới một thể hiện  
của lớp MicrowaveOven. Nhƣng hiện tại chúng ta mới chỉ bắt đầu với những gì cơ bản  
nhất nên các khía cạnh sâu hơn này sẽ đƣợc tìm hiểu ở sau.  
Tiếp theo, tạo thêm biến strColor để thiết lập thuộc tính màu sắc cho lò vi sóng của  
chúng ta. Đặt giá trị biến là Green (màu xanh là cây), script sẽ có dạng nhƣ bên dƣới  
(với một số chú thích bên cạnh):  
strColor = "Green" 'gán màu cho lò vi sóng  
intCookingTime  
=
120 'quy định thời gian nấu (tính theo giây)  
Set objMicrowave = CreateObject("MicrowaveOven") 'tạo một thể hiện của đối tượng  
errSetCookingTime = objMicrowave.SetCookingTime(intCookingTime) 'gọi một  
phƣơng thức để„thiết lập thời gian nấu và ghi lại đoạn lỗi kết quả  
objMicrowave.Color = strColor 'thiết lập giá trị thuộc tính Color (màu sắc)  
1.3. Điều khiển lỗi, định nghĩa biến và dữ liệu ngƣời dùng  
Trở lại với script  
Muốn truy cập các thiết lập cấu hình TCP/IP của máy dùng WMI, bạn cần viết mã:  
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")  
Lệnh này sẽ kết nối bạn 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à thiết lập nó bằng với giá trị trả về của  
phƣơng thức GetObject. Sau khi kết nối tới namespace này, bạn có thể thu thập thông  
tin nhƣ bên dƣới:  
Set colNetAdapters = objWMIService.ExecQuery("Select * from  
Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")  
Dòng lệnh này chạy nhƣ thế nào? Đầu tiên, bạn có thể thấy đối tƣợng có  
tên objWMIService mà chúng ta vừa mô tả một phút trƣớc ở dòng bên trên. Sau đối  
tƣợng này là ExecQuery, có thể là thuộc tính mà cũng có thể là phƣơng thức (cấu trúc  
của lệnh luôn luôn là doituong.thuoctinh hoặc doituong.phuongthuc). Chúng ta có  
thể dễ dàng đoán ra đó là một phƣơng thức vì đằng sau nó là một câu truy vấn. Phƣơng  
thức ExecQuery đƣợc gọi bằng cách thêm một tham số vào nó. Tham số ở đây là một  
lệnh SQL (SELECT), trả ra tập hợp (đƣợc đánh dấu bởi tiền tố “col-”) của tất cả (dấu  
hoa thị) cấu hình bộ điều hợp mạng trên máy có đƣờng bao TCP/IP và đƣợc cho phép  
trên bộ điều hợp. Tập hợp trả về sau khi thực hiện phƣơng thức này sẽ đƣợc gán với  
4
 
biến colNetAdapters.  
Chúng ta có thể làm gì với tập hợp này? Khi có một tập hợp trong tay, bạn phải lặp  
vòng nó, dùng một lệnh lặp nhƣ For Each. Vòng lặp tiếp theo sẽ nhƣ thế này:  
For Each objNetAdapter in colNetAdapters  
' do something to each network adapter's configuration  
Next  
Bạn luôn phải lặp vòng các tập hợp cho dù tập hợp đó chỉ có một đối tƣợng.  
Bây giờ, điều chúng ta thực sự muốn là thay đổi địa chỉ IP cho adapter của mình. Vì  
thế, hãy định nghĩa thêm một số biến:  
arrIPAddress = Array("172.16.11.99")  
arrSubnetMask = Array("255.255.255.0")  
Chú ý là các biến định nghĩa địa chỉ IP và subnet mask mới phải là các biến mảng. Tại  
sao lại nhƣ thế? Lý do đầu tiên là các máy tính Windows nhiều khi không phải chỉ có  
một địa chỉ IP, một cổng vào mặc định… Vậy thì tại sao không dùng biến mảng cho  
tất cả các thiết lập IP đƣợc nhất quán. Và lý do thứ hai, nếu tìm kiếm  
lớp Win32_NetworkAdapterConfiguration trong WMI Reference trên MSDN, bạn sẽ  
thấy đƣợc phải dùng đến biến mảng. Chúng ta sẽ nghiên cứu sâu hơn về WMI  
Reference trong tƣơng lai, còn bây giờ thì tạm thời chấp nhận ở mức độ chƣa rõ ràng  
một chút.  
Cuối cùng, cần gọi phƣơng thức EnableStatic của  
lớp Win32_NetworkAdapterConfiguration để thay đổi địa chỉ IP và cổng vào mặc định  
của bộ điều hợp mạng sang thiết lập mới chúng ta đã định nghĩa trong các biến mảng.  
Thực hiện nhƣ sau:  
errEnableStatic = objNetAdapter.EnableStatic(arrIPAddress, arrSubnetMask)  
Ở đây, biến err- là cần thiết, giống nhƣ một nơi lƣu trữ đoạn mã lỗi trả về khi phƣơng  
thức chạy.  
1.4. Ví dụ về xây dựng và thi hành một Scripts  
Bây giờ, ghép tất cả các phần lại với nhau và hãy xem chúng ta có những gì:  
strComputer = "."  
arrIPAddress = Array("172.16.11.99")  
arrSubnetMask = Array("255.255.255.0")  
5
 
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  
Bạn biết đấy, đoạn mã này đƣa ra các định nghĩa biến, điều khiển lỗi, dùng dữ liệu đầu  
vào và kiểm chứng kết quả trả về. Chúng ta sẽ sử dụng lại đoạn mã này trong những  
phần sau của loạt bài, nhƣng đầu tiên hãy xem liệu nó có làm việc hay không. Ghi script  
lại với tên ChangeIPAddress.vbs (nhớ là phải tắt Word Wrap trong Notepad) và copy  
nó lên desktop của máy chủ có địa chỉ tĩnh 172.16.11.45. Sau đó, mở cửa sổ dòng lệnh  
Command Promp với vai trò ngƣời dùng Administrator, chuyển tới thƣ mục Desktop và  
chạy script, dùng Cscript.exe. Kết quả trả về:  
C:\Documents and Settings\Administrator\Desktop>ipconfig  
Windows IP Configuration  
Ethernet adapter Local Area Connection:  
Connection-specific DNS Suffix . :  
IP Address. . . . . . . . . . . . : 172.16.11.45  
Subnet Mask . . . . . . . . . . . : 255.255.255.0  
Default Gateway . . . . . . . . . : 172.16.11.1  
C:\Documents and Settings\Administrator.DC-1\Desktop>cscript  
ChangeIPAddress.vbs  
Microsoft (R) Windows Script Host Version 5.6  
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.  
C:\Documents and Settings\Administrator\Desktop>ipconfig  
Windows IP Configuration  
Ethernet adapter Local Area Connection:  
Connection-specific DNS Suffix . :  
IP Address. . . . . . . . . . . . : 172.16.11.99  
Subnet Mask . . . . . . . . . . . : 255.255.255.0  
Default Gateway . . . . . . . . . : 172.16.11.1  
6
CHƢƠNG 2. KIỂM SOÁT QUẢN LÝ WINDOWS BẰNG SCRIPT  
(WINDOWS MANAGEMENT INSTRUMENTATION WMI SCRIPTS)  
2.1. Giới thiệu WMI  
WMI là viết tắt của Windows Management Instrumentation. Đƣợc thiết kế bởi  
Microsoft, đây là một cơ sở hạ tầng để quản lý dữ liệu và thông tin đƣợc chuẩn hóa  
độc lập với thiết bị. Kể từ Windows 2000, WMI đƣợc cài đặt sẵn với hệ điều hành  
Windows.  
- WMI là sự triển khai của Microsoft về Quản lý Doanh nghiệp Dựa trên  
Web, WBEM (Web-Based Enterprise Management), đƣợc quản lý bởi DMTF  
(DMTF - Distributed Management Task Force). WBEM đặt ra các tiêu chuẩn để cho  
phép truy cập dữ liệu từ các công nghệ và thiết bị không đồng nhất trên một kiến trúc  
tiêu chuẩn hóa. WBEM sử dụng Mô hình Thông tin Chung CIM (CIM - Common  
Information Model) làm giản đồ để xác định thông tin về các đối tƣợng. Cả hai đều lƣu  
trữ tệp và chấp nhận lệnh in từ máy khách (Client) và sau đó gửi chúng đến một máy  
in trong mạng.  
WMI ra đời từ thời kỳ của Windows 98 hoặc sớm hơn. Trƣớc đây nó đƣợc gọi  
với cái tên khác Web-Based Enterprise Management (WBEM), tức Công cụ quản lý  
doanh nghiệp dựa trên nền tảng Web. WBEM là công nghệ hợp tác phát triển bởi  
Microsoft, Cisco, Intel, Compaq và BMC Software nhằm hỗ trợ quản lý các hệ thống  
máy chủ và máy để bàn trong môi trƣờng doanh nghiệp. WMI cung cấp mô hình thể  
hiện, lƣu trữ và truy vấn cấu hình, thông tin trạng thái hay nhiều khía cạnh hoạt động  
khác của các máy Windows. Các nhà phát triển có thể dùng WMI để viết script hoặc  
quản lý mã nguồn để xem hay chỉnh sửa các thiết lập cấu hình trên máy Windows,  
xem trạng thái của các ứng dụng, dịch vụ Windows và thực hiện toàn bộ nhiều công  
việc hữu ích khác của một quản trị viên nhƣ triển khai, bảo trì, gỡ lỗi các mạng  
Windows.  
Nói cách khác, nói tới WMI tức là nói tới:  
Hệ điều hành Windows: làm việc trên môi trƣờng Windows và cho các máy chạy  
Microsoft Windows.  
Management: có thể đƣợc dùng để quản lý các máy tính này.  
Instrumentation: cung cấp nhiều công cụ để xem và chỉnh sửa những thứ chạy bên  
trong các máy tính này.  
7
   
Bạn có thể ví máy tính Windows giống nhƣ một chiếc xe ô tô và WMI giống nhƣ  
nguồn điện hay các thiết bị điện cho phép bảng đo đồng hồ hiển thị tốc độ, nhiệt độ  
động cơ, RPM… của ô tô. Bản thân các điều khiển bảng đo đồng hồ này không phải là  
WMI. Bạn cần phải đƣa ra cách lấy thông tin từ bảng điện và thể hiện nó ở dạng có thể  
đọc đƣợc. Viết VBScript sử dụng WMI cũng giống nhƣ tạo các bảng đo đồng hồ trung  
gian, liên hệ với thiết bị bên dƣới ô tô và hiển thị thông tin đối tƣợng để có thể cho bạn  
biết cần phải làm gì và điều khiển nào động cơ đang thực hiện. Nói cách khác,  
Windows tích hợp tất cả công cụ dựng sẵn này qua WMI. Bạn chỉ cần biết cách làm  
sao lấy chúng ra để thực hiện những điều mình muốn nhƣ thay đổi địa chỉ IP, xem múi  
giờ, khởi động lại máy từ xa, hiển thị danh sách các bản vá đã đƣợc cài đặt…  
WMI Namespace  
Đến giờ, chúng ta vẫn chƣa biết gì về cách thức hoạt động của WMI? Cũng không hẳn  
thế. Thực ra, để hiểu đƣợc về WMI đòi hỏi chúng ta cần phải kiên nhẫn và có một chút  
kiến thức cơ sở. Hãy bắt đầu bằng cách xem xét các namespace WMI. Trong thuật ngữ  
WMI, namespace là một cơ sở dữ liệu logic của các lớp và các thể hiện của chúng.  
Dƣới đây là một script đơn giản có tên ShowNamespaces.vbs, liệt kê tất cả các  
namespace WMI bên dƣới namespace gốc:  
Set objWMIService = GetObject("winmgmts:\\.\root")  
Set colNamespaces = objWMIService.InstancesOf("__NAMESPACE")  
For Each objNamespace In colNamespaces  
WScript.Echo objNamespace.Name  
Next  
Và kết quả chạy script trên một máy Windows XP là:  
C:\scripts>cscript ShowNamespaces.vbs  
Microsoft (R) Windows Script Host Version 5.6  
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.  
SECURITY  
RSOP  
Cli  
SecurityCenter  
WMI  
CIMV2  
Policy  
8
Microsoft  
DEFAULT  
directory  
subscription  
Mỗi namespace này có thể là một nguồn cho phép bạn truy vấn thông tin liên quan đến  
trạng thái hay cấu hình một số yếu tố của máy tính Windows (thông thƣờng cũng có  
thể chỉnh sửa cấu hình đó). Các namespace này đƣợc tổ chức theo kiểu cấu trúc phân  
tầng nhƣ cấu trúc thƣ mục trên ổ cứng. Ví dụ, chúng ta có thể hiển thị tất cả  
namespace dƣới namespace gốc root\CIMV2 bằng cách thay đổi dòng đầu tiên trong  
script nhƣ sau:  
Set objWMIService = GetObject("winmgmts:\\.\root\CIMV2")  
Khi chạy script đã đƣợc thay đổi, kết quả có dạng:  
C:\scripts>cscript ShowNamespaces.vbs  
Microsoft (R) Windows Script Host Version 5.6  
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.  
ms_409  
Applications  
Thực tế, root\CIMV2 là namespace WMI mặc định trên các máy Windows. Điều này  
có nghĩa là nếu bạn không mô tả một namespace để kết nối tới trong dòng đầu tiên của  
script, WMI sẽ mặc định tự động kết nối tới namespace root\CIMV2. Vì thế, nếu  
chúng ta thay đổi dòng đầu tiên thành:  
Set objWMIService = GetObject("winmgmts:\\")  
thì kết quả cũng giống nhƣ trên. Chú ý là chúng ta có thể bỏ phần trƣớc trong  
winmgmts:\\.\root\CIMV2 đi. Nhớ lại trong bài một, phần trƣớc thể hiện máy cục bộ  
và mặc định WMI cho rằng bạn muốn làm việc với máy cục bộ. Nhƣng thực tế, khi  
viết script ngƣời ta thƣờng sử dụng các biến (và định nghĩa chúng). Vì thế ở đây chúng  
ta có thể dùng một script phổ biến hơn để hiển thị các namespace:  
Option Explicit  
On Error Resume Next  
Dim strComputer  
9
Dim strWMINamespace  
Dim objWMIService  
Dim colNamespaces  
Dim objNamespace  
strComputer = "."  
strWMINamespace = "\root\CIMV2"  
Set objWMIService = GetObject("winmgmts:\\" & strComputer &  
strWMINamespace)  
Set colNamespaces = objWMIService.InstancesOf("__NAMESPACE")  
For Each objNamespace In colNamespaces  
WScript.Echo objNamespace.Name  
Next  
Tại sao chúng ta cần tìm hiểu tất cả các vấn đề này? Lý do chính là bởi tính linh hoạt!  
Ví dụ, nếu cần chạy script trên một máy từ xa, chúng ta có thể thay đổi biến  
strComputer thành địa chỉ của máy từ xa. Hoặc nếu cần hiển thị một phần khác của  
namespace, chúng ta có thể thêm một vài dòng vào script để nó nhận dữ liệu đầu vào  
của ngƣời dùng trên biến strWMINamespace.  
Nhà cung cấp WMI  
Tìm ra đúng namespace là thách thức đầu tiên (mặc dù hầu hết các trƣờng hợp kết nối  
tới namespace mặc định là đủ). Ngoài ra bạn còn cần tìm ra đúng nhà cung cấp phù  
hợp để truy vấn hoặc update dữ liệu trên hệ thống bạn đang hƣớng đến. Dƣới đây là  
script có tên ShowProviders.vbs, hiển thị tất cả nhà cung cấp WMI cho namespace  
root\CIMV2:  
Option Explicit  
On Error Resume Next  
Dim strComputer  
Dim strWMINamespace  
Dim objWMIService  
Dim colWin32Providers  
Dim objWin32Provider  
strComputer = "."  
strWMINamespace = "\root\CIMV2"  
10  
Set objWMIService = GetObject("winmgmts:\\" & strComputer &  
strWMINamespace)  
Set colWin32Providers = objWMIService.InstancesOf("__Win32Provider")  
For Each objWin32Provider In colWin32Providers  
WScript.Echo objWin32Provider.Name  
Next  
Và kết quả sau khi chạy script này trên một máy Windows XP là:  
C:\scripts>cscript ShowProviders.vbs  
Microsoft (R) Windows Script Host Version 5.6  
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.  
Win32_WIN32_TSLOGONSETTING_Prov  
MS_NT_EVENTLOG_PROVIDER  
Win32_WIN32_TSENVIRONMENTSETTING_Prov  
SCM Event Provider  
ProviderSubSystem  
VolumeChangeEvents  
NamedJobObjectLimitSettingProv  
HiPerfCooker_v1  
WMIPingProvider  
Microsoft WMI Forwarding Event Provider  
Win32_WIN32_TSNETWORKADAPTERSETTING_Prov  
SystemConfigurationChangeEvents  
Win32_WIN32_TERMINALSERVICE_Prov  
Win32_WIN32_TSREMOTECONTROLSETTING_Prov  
Win32_WIN32_TSNETWORKADAPTERLISTSETTING_Prov  
Win32_WIN32_COMPUTERSYSTEMWINDOWSPRODUCTACTIVATIONSETTING_  
Prov  
Win32_WIN32_TSSESSIONDIRECTORY_Prov  
CmdTriggerConsumer  
Standard Non-COM Event Provider  
SessionProvider  
WBEMCORE  
RouteEventProvider  
WhqlProvider  
11  
Win32_WIN32_TSSESSIONSETTING_Prov  
Win32_WIN32_TERMINALTERMINALSETTING_Prov  
Win32_WIN32_TSCLIENTSETTING_Prov  
Win32_WIN32_TERMINALSERVICESETTING_Prov  
WMI Kernel Trace Event Provider  
Win32_WIN32_PROXY_Prov  
NamedJobObjectProv  
MS_Shutdown_Event_Provider  
SECRCW32  
Win32ClockProvider  
MS_Power_Management_Event_Provider  
Win32_WIN32_WINDOWSPRODUCTACTIVATION_Prov  
RouteProvider  
Cimwin32A  
Msft_ProviderSubSystem  
Win32_WIN32_TERMINALSERVICETOSETTING_Prov  
NamedJobObjectSecLimitSettingProv  
Win32_WIN32_TSSESSIONDIRECTORYSETTING_Prov  
Win32_WIN32_TSPERMISSIONSSETTING_Prov  
Win32_WIN32_TSACCOUNT_Prov  
Win32_WIN32_TERMINAL_Prov  
MSIProv  
DskQuotaProvider  
NetDiagProv  
Win32_WIN32_TSGENERALSETTING_Prov  
CIMWin32  
NamedJobObjectActgInfoProv  
NT5_GenericPerfProvider_V1  
WMI Self-Instrumentation Event Provider  
MS_NT_EVENTLOG_EVENT_PROVIDER  
Nghe chừng có vẻ quá nhiều! Nhƣng dùng danh sách các nhà cung cấp này, bạn có  
thể dễ dàng tìm kiếm trên MSDN để biết thêm thông tin về một nhà cung cấp cụ thể và  
tìm kiếm phƣơng thức hỗ trợ  
12  
2. 2. Nguyên tắc hoạt động của WMI  
- Để hoạt động nhƣ một máy chủ (Server), một thiết bị phải đƣợc cấu hình để lắng  
nghe các yêu cầu từ máy khách (Client) trên kết nối mạng. Chức năng này có thể tồn  
tại nhƣ một phần của hệ điều hành nhƣ một ứng dụng, vai trò đã cài đặt hoặc kết hợp  
cả hai. Ví dụ: hệ điều hành Windows Server của Microsoft cung cấp chức năng lắng  
nghe và phản hồi các yêu cầu của máy khách. Các vai trò (Roles) hoặc dịch vụ  
(Service) đƣợc cài đặt bổ sung làm tăng loại yêu cầu máy khách mà máy chủ có thể  
đáp ứng. Trong một ví dụ khác, máy chủ Apache Web server phản hồi các yêu cầu của  
trình duyệt Internet thông qua một ứng dụng bổ sung, Apache, đƣợc cài đặt trên cùng  
một hệ điều hành.  
- Khi một máy khách yêu cầu dữ liệu hoặc chức năng từ máy chủ, nó sẽ gửi một yêu  
cầu qua mạng. Máy chủ nhận đƣợc yêu cầu này và phản hồi với thông tin thích hợp.  
Đây là mô hình yêu cầu và phản hồi của mạng máy khách-máy chủ, còn đƣợc gọi là  
mô hình gọi và phản hồi (Call and Response Model). Máy chủ thƣờng sẽ thực hiện  
nhiều tác vụ bổ sung nhƣ là một phần của một yêu cầu và phản hồi, bao gồm xác minh  
danh tính của ngƣời yêu cầu, đảm bảo rằng máy khách có quyền truy cập vào dữ liệu  
hoặc tài nguyên đƣợc yêu cầu và định dạng đúng hoặc trả lại phản hồi cần thiết theo  
dự kiến đƣờng.  
- Khi các thiết bị trên mạng hoạt động, các cài đặt, thông số và trạng thái khác  
nhau có thể đƣợc đo và tạo tại bất kỳ thời điểm nào. Ví dụ, ổ đĩa cứng có tổng dung  
lƣợng lƣu trữ, dung lƣợng lƣu trữ đã sử dụng, dung lƣợng lƣu trữ trống hoặc nhiệt độ  
bên trong. Các giá trị này là động và thay đổi theo cách sử dụng hệ thống. Tại bất kỳ  
thời điểm nào, việc đọc các thông số này trong thiết bị vẫn tồn tại cho dù có ai để ý  
đến chúng hay không  
- Nền tảng WMI platform cung cấp một cách thống nhất để tạo và thực thi các tập  
lệnh (script) đọc các thông số và trong một số trƣờng hợp, có thể thay đổi các cài đặt  
đó mà không cần cài đặt thêm các tác nhân phần mềm (gọi là Agent) hoặc màn hình  
(Monitor). Trong trƣờng hợp của ổ cứng, WMI Provider có thể trả lời yêu cầu về nhiệt  
độ của ổ cứng cũng nhƣ gửi cảnh báo đến Trình quản lý đối tƣợng WMI Object  
Manager nếu nhiệt độ vƣợt quá mức đặt trƣớc.  
- Ngoài ra, đối với các ứng dụng quản lý, nền tảng WMI cung cấp Giao diện lập  
trình ứng dụng API (API - Application Programming Interface) ở cấp Trình quản lý  
đối tƣợng WMI Object Manager để không cần phải hiểu chi tiết cụ thể của từng nhà  
cung cấp WMI. Ví dụ, ứng dụng quản lý chỉ cần gọi Trình quản lý đối tƣợng WMI  
Object Manager chứ không cần truy vấn trực tiếp  
cứng.  
13  
 
- Khi một thiết bị đƣợc truy vấn hoặc một sự kiện đƣợc kích hoạt, dữ liệu sẽ truyền  
qua kiến trúc tiêu chuẩn của thiết bị đƣợc quản lý thông qua WMI Provider của nó đến  
Trình quản lý đối tƣợng WMI Object Manager và tới WMI Consumer. Toàn bộ cơ sở  
hạ tầng này đƣợc chuẩn hóa trên các thiết bị và nền tảng để bất kỳ phần mềm quản lý  
doanh nghiệp hỗ trợ WMI nào cũng có thể truy cập dữ liệu đƣợc thu thập trên bất kỳ  
thiết bị hỗ trợ WMI nào mà không cần biết bất kỳ điều gì về các thiết bị hoặc cấu trúc  
mạng giữa chúng. WMI có sẵn trên bất kỳ máy tính Windows hiện tại nào và do đó có  
thể đƣợc quản lý thông qua WMI  
2.3. Các lớp WMI  
Bên cạnh namespace và provider (nhà cung cấp), bạn cũng cần phải hiểu về các  
lớp WMI nếu muốn tăng cƣờng thêm sức mạnh của WMI cho các hoạt động quản trị  
Windows trên script. Lớp là một mẫu của kiểu đối tƣợng bạn có thể quản lý bằng  
WMI. Ví dụ lớp có tên Win32_LogicalDisk là một mẫu đĩa logic trên các máy  
Windows, và WMI dùng lớp này để tạo một thể hiện của Win32_LogicalDisk cho  
từng đĩa đƣợc cài.  
Dƣới đây là một script có tên ShowClasses.vbs hiển thị tất cả các lớp (có khả năng là  
các đối tƣợng có thể quản lý) của namespace root\CIMV2:  
Option Explicit  
On Error Resume Next  
Dim strComputer  
Dim strWMINamespace  
Dim objWMIService  
Dim colClasses  
Dim objClass  
strComputer = "."  
strWMINamespace = "\root\CIMV2"  
Set objWMIService = GetObject("winmgmts:\\" & strComputer &  
strWMINamespace)  
Set colClasses = objWMIService.SubclassesOf()  
For Each objClass In colClasses  
WScript.Echo objClass.Path_.Path  
Next  
Và một số kết quả sau khi chạy script này trên máy Windows XP:  
14  
 
Tải về để xem bản đầy đủ
pdf 105 trang Thùy Anh 14040
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình nghề Quản trị mạng máy tính - Quản trị hệ thống Webserver và Mailserver", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfgiao_trinh_nghe_quan_tri_mang_may_tinh_quan_tri_he_thong_web.pdf