Qun lý mng Windows bng Script - Phn 10: Các th thut ca kch
bn điu khin xa
Trong các bài viết trước, chúng ta đã được gii thiu v mt s
khái nim và các vn đề xung quanh kch bn điu khin xa trên
nn Windows. Trong phn này chúng tôi s tiếp tc gii thiu
cho các bn hai th thut liên quan đến kch bn điu khin xa
này qua s dng kch bn WMI được viết bng VBScript.
Th thut 1: To Cscript.exe, cu hình kch bn mc định
trên các máy tính t xa
Đây là th thut đầu tiên và nó thc s đơn gin nhưng cũng khá thông minh do đó chúng ta cn
phi có mt s kiến thc cơ bn để d dàng tiếp cn. Bo đảm rng bn biết mt s cách để khi
chy kch bn trên các máy tính Windows. Ví d, nếu bn có kch bn ChangeIPAddress.vbs trên
mt máy tính thì có th khi chy nó bng cách:
- Kích đúp vào file .vbs hoc shortcut tr đến file.
- Kích Start, sau đó kích Run, nhp vào ChangeIPAddress.vbs và kích OK.
- M mt ca s lnh và điu hướng đến thư mc có kch bn, nhp vào ChangeIPAddress.vbs
sau đó nhn ENTER.
Điu gì s xy ra nếu bn thc hin nhng th này, câu tr li đó ph thuc vào nhng thiết lp
mc định nào được đặt cho Windows Script Host (WSH) trên máy tính ca bn. Windows Script
Host (WSH) là mt ngôn ng kch bn độc lp dùng cho các scripting engine, có nghĩa là WSH
s dng scripting engine là VBScript để chy các kch bn VBScript, vì vy WSH hành động
như “môi trường” bên trong mà kch bn ca bn chy. Tuy nhiên WSH thc s có hai cu hình
kch bn mc định:
- Wscript.exe, cung cp mt hp thoi trên Windows cho vic thiết lp các thuc tính kch bn và
hin th đầu ra kch bn.
- Cscript.exe, cho phép cu hình các thuc tính kch bn và hin th đầu ra kch bn t ca s
lnh.
Hãy xem s khác nhau gia chúng trong trường hp bn không biết hoc quên. Chúng tôi s s
dng kch bn ChangeIPAddress.vbs t phn 2 ca lot bài này để minh chng. Hãy m ca s
lnh trên máy tính Windows Vista và s dng kch bn này để thay đổi địa ch IP ca máy tính
thành 172.16.11.173. Bây gi vic đầu tiên cn chú ý đó là thay đổi các thiết lp cu hình mng
cn thiết nhng tiêu chun qun tr cc b trên máy, để thc hin điu này chúng ta cn kích
chut phi vào shortcut ca ca s lnh dưới Accessories và chn Run As Administrator. Khi
thc hin điu đó thì ca s User Account Control (UAC) xut hin, kích Continue để tiếp tc
(nếu tài khon người dùng đầu tiên là mt thành viên trong nhóm qun tr cc b trên máy) hoc
nhp vào các thông tin quan trng ca tài khon qun tr cc b (nếu tài khon ch là mt thành
viên ca nhóm người dùng cc b trên máy).
M ca s lnh mc qun trđánh lnh để thay đổi địa ch ca máy tính (Hình 1).
Hình 1: Thay đổi địa ch IP dùng kch bn
Điu gì s xy ra khi chúng ta nhn ENTER, khi nhn xong mt vài giây sau, hp thoi dưới đây
s xut hin (Hình 1)
Hình 2: Đầu ra ca kch bn xut hin như mt hp thoi
Thông báo này đến t đâu? Bn hãy nh li rng kch bn ca chúng ta Change IPAddress.vbs
gm có các dòng dưới đây cui ca kch bn:
'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
Vy nhng gì đang xy ra là lnh Wscript.Echo đang hin th đầu ra (nghĩa là hin th mt hp thoi) thay vì hin th
đầu ra bên trong ca s lnh. Lý do là vì mc định Wscript.exe có cu hình kch bn mc định và cu hình này được
thiết lp cho nhng gì nó hin th đầu ra bng ca s ging như vy.
Chúng ta có th dng các hành vi này và ly đầu ra kch bn để hin th bên trong ca s lnh được không? Có mt
cách có th gii quyết được nhim v này đó là triu gi Cscript.exe được cu hình kch bn dòng lnh khi chy kch
bn. Bn có th thc hin được điu này như hình 3 dưới đây:
Hình 3: S dng cscript.exe xut đầu ra kch bn bên trong ca s lnh
Tuy nhiên cách này có th làm phin bn vì phi đánh cscript trước khi đánh tên kch bn ging
như vy, vì vy bn có th thiết lp Cscript.exe như mt cu hình kch bn mc định cho tt c
triu gi WSH bng thc hin này (Hình 4):
Hình 4: To cscript.exe cho cu hình mc định
Bây gi chúng ta có th chy kch bn và hin th đầu ra ca nó t bên trong ca s lnh mà
không cn phi đánh cscript trước (Hình 5):
Hình 5: Khi Cscript.exe là cu hình kch bn mc định thì đầu ra
ca kch bn được hin th bên trong ca s lnh
Chúng ta có mt nhóm kch bn ging ChangeIPAddress.vbs mà mun chy t xa bng cách
trin khai chúng đến các máy đích như kch bn đăng nhp hoc khi động kch bn bng Group
Policy. Bên cnh đó mt s kch bn có các câu lnh Wscript.Echo trong chúng to đầu ra kch
bn. Điu gì s xy ra khi mt trong các kch bn đó được trin khai cho máy tính điu khin xa
và chy trên máy? Mt lot các ca s s xut hin trên màn hình desktop ca người dùng như
kch bn chy trên máy, và người dùng s phi kích OK, OK và OK,… cho ti khi các ca s bt
ra này biến mt hết và kch bn kết thúc công vic ca nó. Vy có cách nào để khc phc hin
tượng này?
Chúng ta có th khc phc hin tượng này bng hai cách. Đầu tiên, bn có th son tho tt c
các kch bn xóa hoc chú thích câu lnh Wscript.Echo để kch bn không to ra bt c đầu ra
nào. Đó là mt chút tr ngi, đặc bit nếu bn có mt s lượng ln kch bn. Vì vy phương pháp
th hai là gì? Đây là mt mo nh mà chúng tôi mun chia s vi bn:
Trong môi trường Active Directory trong Group Policy đang được s dng để qun lý các máy
tính desktop, bn có th thay đổi cu hình kch bn t Wscript.exe thành Cscript.exe trên các
máy tính trong mt OU bng các bước dưới đây:
1. S dng Notepad để to mt file văn bn có tên là ChangeToCscript.bat vi hai dòng dưới
đây trong nó:
@echo off
cscript //h:cscript //s
2. M GPO được liên kết đến OU và điu hướng đến Computer Configuration\Windows
Settings\Scripts\Startup.
3. Kích đúp vào thiết lp chính sách khi động Startup để m trang thuc tính ca nó.
4. Kích nút Show Files và copy/paste file ChangeToCscript.bat t Windows Explorer vào thư
mc con ca SYSVOL, nơi các kch bn khi động được đặt.
5. Kích nút Add trên trang thuc tính cho thiết lp chính sách khi động.
6. Kích nút Browse và chn ChangeToCscript.bat.
7. Đóng tt c các trang thuc tính.
8. Vic b sung thêm kch bn khi động này s làm cho kch bn mc định trên các máy tính
mc tiêu được chuyn t Wscript.exe thành Cscript.exe trong ln khi động li tiếp theo ca các
máy tính đó, và điu này s làm vic mà không cn quan tâm đến người dùng mc tiêu là người
dùng chun hay qun tr viên cc b.
Lưu ý: ChangeToCscript.bat phi được chy như mt kch bn khi động và không là kch bn
đăng nhp. Nếu bn chy nó như mt kch bn đăng nhp thì nó s ch làm vic khi người dùng
mc tiêu là qun tr viên trên máy tính.
Bn có th làm gì vi ch mt file có hai dòng? Bây gi bn có th trin khai các kch bn mà
bn mun đối vi các máy tính mc tiêu và không phi lo lng v người dùng gp phi rt nhiu
ca s pop-up xut hin trên màn hình ca h.
Th thut 2: Thc hin “runAs” mà không cn các thông tin ch định
Th thut th hai được đệ trình vi chúng tôi bi mt trong các độc gi sau khi đã đọc các phn