Quản lý các mạng Windows dùng script - Phần 5: Vượt qua thử thách
Ở phần trước của loạt bài này, chúng ta đã bắt đầu khám phá những điều
mới mẻ về lớp Win32_NetworkAdapterConfiguration. Lớp WMI mạnh này
có 61 thuộc tính và 41 phương thức, có thể được dùng cho truy vấn và thay
đổi thiết lập mạng TCP/IP trên các máy Windows.
Để minh hoạ tính năng mạnh của lớp này, chúng ta đã sử dụng script mẫu
phát triển tử phần một và hai, cũng như khai thác thông tin hỗ trợ trên
MSDN để thay đổi script ban đầu và thực hiện được một số chức năng khác
nhau. Cụ thể là thay đổi địa chỉ IP của một bộ điều hợp mạng và tuỳ biến để
tạo ra script mới có thể ngắt NetBIOS qua TCP/IP (NetBT) trên tất cả các bộ
điều hợp mạng có giới hạn TCP/IP được phép trên chúng.
Chúng ta sẽ cần khám phá thêm tính năng mạnh mẽ của lớp WMI này trong
một số bài sau. Nhưng trước khi thực hiện điều đó, đầu tiên hãy nói về
những trở ngại khi học script. Vượt qua mọi trở ngại, khó khăn để biết cách
sử dụng script trong hoạt động quản trị mạng Windows.
Trở ngại
Sau khi bắt đầu cho đăng loạt bài này, chúng tôi nhận được nhiều câu hỏi từ
phía bạn đọc: “Tôi có thể học script theo cách nào?”. Phản ứng đầu tiên của
chúng tôi thường là chỉ cho người hỏi một số tài liệu như các sách viết về
script, những bài báo, diễn đàn bàn luận về script… Vâng, câu trả lời kiểu
này sẽ hữu ích cho những ai muốn chuyên tâm bắt tay làm từ đầu và tự rèn
luyện mình nghiêm khắc để có được một kỹ năng. Nhưng như thế cũng
thường khiến người ta phát sinh một tâm lý rất phổ biến: Ngại! Vì phải đầu
tư quá nhiều thời gian, công sức!
Vậy chúng ta phải làm gì để học được kỹ năng script? Đầu tiên, có vẻ khá
hài hước nhưng muốn học được thì bạn phải chuẩn bị tâm lý sẵn sàng đón
nhận và chuẩn bị nhiệt tính lắng nghe! Hầu hết các quản trị viên Windows
ban đầu khi muốn học về script đều vấp phải một lỗi là bập vào vấn đề chính
ngay. Rồi sau đó phát sinh tâm lý ngại vì bị ngập trước quá nhiều vấn đề
không dễ nắm bắt: những khái niệm không độc lập mà ràng buộc và liên
quan đến nhau. Chẳng hạn, bạn sẽ không thể thực sự hiểu Thuộc tính
(Property) là gì nếu không nắm bắt được Phương thức (Method). Và cả
thuộc tính lẫn phương thức chỉ có thể sáng tỏ nếu đặt trong ngữ cảnh của
Lớp (Class). Nhưng lớp lại phải diễn giải thành Đối tượng (Object) và mỗi
đối tượng đều có thuộc tính, phương thức của nó! Chính xác hơn thì các
Tham Chiếu Đối Tượng (Object Reference) vào một Thể hiện (Instance) của
Lớp phải có Thuộc tính và Phương thức để bạn có thể đọc và thao tác. Nghe
quá rối rắm phải không các bạn!
Chúng ta không thể dành ra tới ba năm để học từng Thuộc tính, Phương thức
gắn với mỗi lớp WMI làm việc trong mạng Windows. Hoặc học từng khía
cạnh trong cú pháp của ngôn ngữ VBScript chỉ để hoàn toàn thông thạo về
nó. Trước đây, suốt những năm đầu của thời đại học, tôi đã phải bỏ ra rất
nhiều thời gian để học Fortran, viết hết chương trình này đến chương trình
khác, đầu tiên là hiển thị 10, sau đó đến 100, rồi đến một nghìn số Fibonacci,
… Vì thế, với thời gian, tiền bạc và sự kiên nhẫn có hạn, cộng thêm các yếu
tố khó khăn về bản chất của một số lượng lớn khái niệm trong Windows
scripting, những quản trị viên như chúng ta cần phải làm gì để vượt qua
được trở ngại trong vấn đề học script và biến nó trở thành thứ hữu ích trong
tầm tay?
Khắc phục mọi trở ngại
Rõ ràng là chẳng có câu trả lời màu nhiệm nào cho câu hỏi đó, nhưng một số
phương thức dưới đây có thể giúp bạn:
1. Chia nhỏ công việc ra: Chĩa súng lên trời tất nhiên sẽ không thể bắn được
con chim dưới đất. Cho nên học ngay những cái chuyên sâu không phải là
cách bắt đầu cho một vấn đề. Hãy đặt ra mục tiêu cho từng giai đoạn nhất
định, như trong tuần này phải viết được script để truy vấn Active Directory
cho cấu trúc OU trong một miền và hiển thị cấu trúc đó trong một trang
HTML chẳng hạn. Còn tuần sau học các khái niệm mới hơn, viết một script
khác minh hoạ cho chúng. Hãy cố gắng tìm kiếm những script đã có sẵn, đọc
hiểu và chỉnh sửa chúng để thực hiện các yêu cầu riêng của mình. Ngoài ra,
cho dù không cần hiểu sâu sắc toàn bộ từng dòng, từng lệnh trên script, hãy
cố gắng tổng hợp chúng, tạo ra một script kết hợp thực hiện được chức năng
mong muốn mà thậm chí bạn không cần hiểu gì về cấu trúc bên trong nó. Đó
cũng là một cách học script.
2. Tập trung vào một số vấn đề trọng tâm của kỹ thuật scripting: Một trong
các nhược điểm lớn nhất khi bắt đầu học một vấn đề là chúng ta luôn muốn
biết mọi thứ của tất cả các khía cạnh vấn đề. Vì thế, khi bắt đầu học về script
chúng ta thường cố gắng đọc toàn bộ từ đầu đến cuối những quyển sách viết
về ngôn ngữ VBScript. Không cần nói bạn cũng hiểu đó là cách đọc cứng
nhắc. Tốt hơn hết hãy tập trung vào một phần cụ thể, như các nhiệm vụ trên
mạng TCP/IP scripting (mà chúng ta chú trọng trong loạt bài này) trước. Sau
khi nắm vững và thông thạo rồi mới chuyển sang chủ đề khác.
3. Hãy bỏ thời gian để học những khái niệm cơ bản: Tập trung vào một số
phần trọng tâm nhất định, nhưng đồng thời bạn cũng phải bỏ thời gian ra học
những khái niệm cơ bản của vấn đề. Ví dụ như làm sao để nhập thông tin
vào script dùng tham số thời gian chạy. Học một số cú pháp lệnh SELECT
đơn giản. Học một số kiểu biến khác nhau. Học một số lớp WMI. Học cách
dùng Thuộc tính và Phương thức cho từng lớp … Bạn không cần phải trở
thành chuyên gia trong tất cả các lĩnh vực, nhưng cần nắm vững những thứ
cơ bản để có thể viết được một script hoàn chỉnh thay vì từng đoạn nhỏ của
nó.
4. Hãy ghi các chú thích cho những gì bạn học: Trước kia, suốt một thời
gian dài tôi không thu được kết quả gì khi học về script, bởi các khái niệm
của nó khá khó hiểu. Như bạn đã nói ở trên, suốt thời đại học tôi được làm
quen và học những ngôn ngữ lập trình thủ tục như Fortran. Chúng trở thành
kiến thức ăn sâu trong đầu óc khiến tôi rất khó chuyển sang kiểu ngôn ngữ
hướng đối tượng khi chúng bắt đầu trở nên phổ biến (cho các admin
Windows), và khi VBScript được phát triển từ Visual Basic. Bởi vậy mà
suốt thời gian dài tôi lúng túng với Đối tượng, Thuộc tính, Phương thức,
Lớp. Chúng tạo ra trở ngại rất lớn cho tôi để có thể học được script. Chắc
chắn tôi có thể dùng một script của ai đó viết sẵn và nếu nó đơn giản, tôi có
thể thay đổi, chỉnh sửa thêm bớt một chút để biến nó hoạt động theo ý mình.
Nhưng MSDN lúc bấy giờ giống như một đất nước xa xôi, lạ lẫm và WMI là
một thứ siêu nhiên huyền bí! Và rồi tôi bắt đầu viết các dòng chú thích. Một
ngày, tôi viết ra một câu đơn giản: “Thuộc tính là những thứ bạn có thể đọc,
còn phương thức là những thứ bạn có thể làm”, đột nhiên mọi thứ trở nên rõ
ràng. Tôi hiểu được vấn đề và trở ngại không còn. Các khái niệm khác cũng
nhanh chóng được nắm bắt và con đường đến với script không còn xa lạ và
quá khó khăn nữa.
5. Thu thập tài liệu hữu ích để tham khảo và sử dụng: Nếu bạn tìm thấy
một cuốn sách hay về script, đừng ngần ngại mua nó về đọc và làm bài tập
thực hành luôn (nếu có). Ngoài ra, bạn có thể tham khảo thêm nhiều thứ tại
TechNet Script Center (sẽ được chú ý ở các phần sau của loạt bài này). Một
cách học hữu ích khác là tham gia vào các khoá đào tạo ngắn hạn, các cuộc
thảo luận nhóm… Tài liệu về script không hề thiếu, thậm chí rất phong phú
nếu bạn thực sự muốn học về nó. Quan trọng là bạn có chịu học và thực
hành nó hay không mà thôi.
6. Thực hành, thực hành và thực hành: Muốn học tốt bất kỳ một kỹ năng
nào cũng đòi hỏi bạn phải kiên nhẫn. Chỉ có làm đi làm lại nhiều lần mới tạo
nên sự hoàn hảo. Sẽ còn nhiều trở ngại trên con đường đi tới thành công và
đòi hỏi bạn phải có sự quyết tâm, tính bên bỉ để vượt qua chúng. Thông
thường, bạn sẽ học được nhiều hơn từ vài trăm script ngắn thay vì tập viết
một vài script dài và tổng hợp. Vì thế, hãy tự đặt ra và hoàn thành các bài tập
ngắn thực hiện một công việc nào đấy. Bạn sẽ hiểu vấn đề nhanh hơn.
7. Hãy biến nó trở thành niềm đam mê hay một thú vui: Không biết bạn
thế nào nhưng với tôi, việc học thu được hiệu quả cao nhất là khi ở trong
tâm trạng vui vẻ. Nếu bạn có một số công việc quản trị liên quan đến script,
chắc hẳn lúc ấy bạn mới bắt đầu quan tâm đến việc học nó. Và, nếu bạn thực
sự bận rộn (mà mấy khi một quản trị viên mạng được rỗi rãi) thì cách dễ
dàng nhất là nhờ một ai đó viết script cho bạn. Nhưng nếu coi script như một
thú vui để khám phá, tương tự như môn đánh gôn thì bạn sẽ tiếp cận nó
nhanh và làm được nhiều hơn những thứ mình học. Và cũng giống như đánh
gôn, chơi cờ, có bạn chơi cùng bao giờ cũng thú vị hơn. Thử xem đồng
nghiệp hay những người bạn chuyên gia IT có hứng thú chơi trò scripting
không. Nếu có, hãy chia sẻ với họ, việc học sẽ vui và hiệu quả hơn nhiều.
Kết luận
Tôi viết ra bài này bởi nhận thấy nhiều bạn đọc gặp nhiều khó khăn và đã
bắt đầu nản chí sau khi đọc xong bốn phần đầu tiên của loạt bài này. Hy
vọng những gì viết ra ở đây có thể giúp bạn khắc phục được các trở ngại đó
và tiếp tục tìm hiểu sâu hơn về scripting, một kỹ thuật không dễ nắm bắt
nhưng rất hữu ích trong công việc quản trị mạng. Ở phần tiếp theo chúng ta
sẽ trở lại khám phá lớp Win32_NetworkAdapterConfiguration và xem liệu
còn có thể làm gì với nó. Đồng thời, chúng ta cũng sẽ học một số khái niệm
mới và ôn lại những thứ đã được giới thiệu ở các phần trước. Chúng ta sẽ
học thêm về cú pháp VBScript và xem liệu có thể làm gì để script gọn gàng
hơn mà hữu ích hơn. Và sau đó là khám phá một số lớp WMI khác, cùng với
một số chủ đề scripting nâng cao như chỉnh sửa thông tin thẩm định, viết mã
script từ xa, các đối tượng COM, script WSF… Bên cạnh lý thuyết là một số
công cụ hữu ích để viết script, nhưng việc học những khái niệm cơ bản đầu
tiên là rất quan trọng. Nó giúp bạn hiểu sâu hơn về từng chủ đề và do đó tự
tin hơn với các kỹ năng của mình. Tôi cũng sẽ cố gắng đưa ra cho các bạn
một số bài tập để hoàn thiện script riêng bạn đã xây dựng. Và nếu thực sự
muốn học về script, bạn cần phải tự làm chúng, đừng chỉ nhìn rồi nói: “Tôi
có thể làm được!”. Thực hành nhiều sẽ giúp bạn viết được một script hoàn
hảo. Vì thế, đừng quên nhiệm vụ quan trọng nhất là thực hành và thực hành.