Tài liệu Viết kịch bản Terminal Service - Phần 3 - Pdf 10

Viết kịch bản Terminal Service - Phần 3
Ngu

n:quantrimang.com
Brien M. Posey
Quản trị mạng - Cho đến phần này, chúng tôi đã giới thiệu cho các bạn một số
lệnh có thể sử dụng để thực hiện một số nhiệm vụ từ dòng lệnh trong môi trường
Terminal Service. Mục tiêu của chúng tôi là giới thiệu cho các bạn một số lệnh đ


các bạn có thể sử dụng và giới thiệu cả cách xây dựng một số kịch bản bằng
cách sử dụng các lệnh này. Phần này, chúng tôi sẽ tiếp tục giới thiệu về một số
lệnh tiếp theo.
Change User
Terminal Services cung cấp hai chế độ hoạt động cơ bản: chế độ thực thi và chế
độ cài đặt. Thông thường, khi bạn thiết lập một session của terminal service,
session s
ẽ hoạt động trong chế độ thực thi. Điều này có nghĩa rằng bạn hoàn
toàn thoải mái trong việc chạy các ứng dụng, tuy nhiên bạn lại không được phép
cài đặt các ứng dụng (chí ít cũng không ứng dụng chia sẻ). Trong thực tế, nếu
bạn muốn chạy một ứng dụng có tên setup.exe trong khi đang hoạt động trong
chế độ thực thi thì Terminal Services sẽ khóa cố gắng của bạn.
Cách mà bạn cài đặt m
ột ứng dụng trong môi trường terminal service thường
liên quan đến việc sử dụng applet Add/Remove Programs của Control Panel.
Điều này không giúp gì nhiều cho bạn nếu bạn cần cài đặt một chương trình
bằng một kịch bản tự động. Đây chính là điểm mạnh của lệnh Change User.
Lệnh này cho phép bạn xem bạn đang hoạt động ở chế độ nào và chuyển đổi
các chế độ nếu cần.
Cú pháp cho lệnh này th
ực sự rất đơn giản. Chỉ cần nhập vào lệnh Change

t nối
với (trong trường hợp này là 1) và ngay lập tức được kết nối với session. Chúng
tôi sẽ giới thiệu màn hình capture của quá trình, nhưng tuy nhiên ở đây không có
gì thể hiện vì session ban đầu đã bị hủy kết nối ngay lập tức, sau đó được gắn
vào một session mới. Trong thực tế, nếu quan sát trong hình B, bạn sẽ thấy rằng
các ứng dụng đang chạy trước session số 1 đang bị hủ
y kết nối hiện đang chạy
bên trong kết nối của chúng tôi.

Hình B: Khi kết nối với một session khác, bạn gia nhập session ở trạng thái hiện
hành
Như những gì bạn thấy, khi kết nối với một session khác, bạn sẽ gia nhập
session đó trong trạng thái hiện hành của nó. Nếu các ứng dụng đang chạy
trước kết nối của bạn với session thì bạn sẽ thấy các ứng dụng khi kết nối.
Có hai thứ chính bạn cần biết về l
ệnh TSCON. Đầu tiên là bạn không nhất thiết
bị hạn chế trong việc kết nối với các session mà bạn đã hủy kết nối. Trong thực
tế, hãy quan sát trong hình C. Trước khi chúng tôi bắt đầu viết bài này, chúng tôi
đã gắn với máy chủ sử dụng session 1. Sử dụng lệnh TSCON 0 để hủy kết nối
session 1 và kết nối với session 0. Nếu bạn quan sát toàn bộ hình C thì bạn sẽ
thấy được rằng session 0 đã đượ
c kết nối rồi.

Hình C: Hoàn toàn có thể kết nối với một session đã được kết nối rồi
Một thứ khác nữa mà bạn cần biết là, sau khi kết nối với một session khác, bạn
luôn có thể sử dụng lệnh TSCON để hủy kết nối từ session đó, và quay trở về
session gốc của bạn.
Cho đến đây, bạn đã thấy những trường hợp sử dụng đơn giả
n của lệnh
TSCON. Nếu nhìn vào hình C, bạn sẽ thấy rằng nó hiển thị cú pháp của lệnh này

Khi nhìn lại các phần trước của loạt bài này, có một thứ mà bạn chắc hẳn sẽ
lưu ý đó là có rất nhiều lệnh mà chúng tôi đã giới thiệu thiên về việc tạo các
kiểu báo cáo khác nhau. Đó cũng là ý định mà trong phần này chúng tôi giới
thi
ệu cho các bạn cách tạo một báo cáo đơn giản. Chúng tôi sẽ dần dần xây
dựng trên kỹ thuật này cho các phần tiếp theo. Sau đó trong ở phần cuối của
loạt bài sẽ giới thiệu cho các bạn cách tạo một số kịch bản sử dụng các lệnh
mà chúng ta đã được biết nhưng không liên quan đến việc báo cáo.
Thứ đầu tiên mà bạn cần biết về việc tạo kich bản nhằm tạ
o báo cáo là cách
lưu báo cáo. Cho ví dụ, trong phần trước mà chúng tôi đã giới thiệu cho các
bạn về cách sử dụng lệnh Query User thì việc nhập lệnh này vào cửa sổ lệnh
sẽ hiển thị các thông tin về người dùng hiện đang kết nối với máy chủ của bạn.
Mặc dù đây là một lệnh khá hữu dụng nhưng khả năng của nó cũng bị hạn chế
khi chỉ sử dụ
ng bản thân nó. Tất cả những gì mà nó thực hiện là hiển thị người
dùng hiện đã đăng nhập. Hãy coi như bạn đã thực hiện xong vấn đề đó và bây
giờ là lúc cần lưu các thông tin này để bạn có thể xem xét sau mà không cần
chạy truy vấn. Cách đơn giản nhất để thực hiện điều này là hướng đầu ra vào
một file bản ghi nào đó.
Hệ điều hành Windows sử dụ
ng dấu “>” để chỉ thị rằng đầu ra của lệnh sẽ
được chuyển tiếp. Chính vì vậy, nếu bạn muốn tạo một file bản ghi gồm các kết
quả của lệnh query user thì bạn cần nhập vào lệnh Query User, dấu “>”, và sau
đó là đường dẫn và tên file của file bản ghi muốn tạo. Cho ví dụ, nếu bạn muốn
tạo một file bản ghi có tên SAMPLE.LOG, hãy nhập vào lệnh dưới đây:
QUERY USER > SAMPLE.LOG
Trong ví dụ
này, file bản ghi được ghi vào thư mục hiện hành bất kể mọi thứ.
Tự file bản ghi này không hề có chút hấp dẫn nào. Nó thực sự không có gì

có tên như bạn vừa đặt. Nếu file này đã tồn tại từ trước thì đầu ra sẽ được nối
thêm vào phần cuối của file. Cách này tỏ ra khá nhiều ưu điểm nhưng đôi khi
vẫn có một số vấn đề.
Cách đầu ra được gắn vào file nếu file đó tồn tại khá hữu ích vì nó sẽ cho phép
bạn tạo thêm nhiều báo cáo gắn cùng. Việc gắn các đầu ra chuyển tiếp vào một
file tồn tại sẽ cho phép tạo kịch bản để xây dựng một báo cáo theo từng thời
điểm thay cho việc phải đưa đầu ra vào các file riêng biệt. Cho ví dụ, giả dụ bạn
tạo một kịch bản gồm có các lệnh dưới đây:
Query User > sample.log
Query Process > sample.log
Query Session > sample.log
Tiếp đó, một kịch bản giống như vậy có thể sẽ không hữu dụng nữa, nhưng khi
kịch bản được hoàn t
ất, file bản ghi cuối cùng sẽ chứa đầu ra của các lệnh đã
được thực thi.
Tuy vậy, cách Windows nối thêm các thông tin vào các file văn bản đang tồn tại
đôi khi không tốt. Giả dụ rằng bạn muốn tạo một kịch bản để tự động chạy ở
một thời điểm cụ thể nào đó trong ngày. Trong tình huống như vậy, bạn có thể
sẽ không muốn đầ
u ra được gắn vào phần cuối của file văn bản đang tồn tại
hàng ngày. Thêm vào đó việc xóa file văn bản đang tồn tại này trước khi chạy
kịch bản cũng là một tùy chọn không thiết thực.
Trong các tình huống như vậy, bạn cần thiết kế một kịch bản thay đổi tên file
mỗi lần kịch bản được chạy. Một file mới sẽ phản ánh được ngày ho
ặc thời
gian khi chạy kịch bản. Giả dụ rằng bạn muốn đưa các kết quả đầu ra vào một
file có tên được ấn định ngày. Lệnh này sẽ như sau:
for /F "tokens=2,3,4 delims=/ " %%i in ('date /t') do set
datefile=%%i%%j%%k.log
Query User > %datefile%

cách này filename không thực sự duy nhất nếu trường hợp bạn chạy các lệnh
trên nhiều hơn một lần trong ngày, khi đó những lần chạy lệnh của bạn đều sinh
ra cùng một filename. Chính vì vậy nếu cần tạo một file bản ghi phân biệt trong
một ngày, bạn hãy tạo một filename phân biệt với nhau bằng th
ời gian hiện hành
của ngày.
Trước khi chúng tôi giới thiệu cho các bạn cách làm việc của lệnh trên như thế
nào, chúng ta hãy xem xét đến cách hoạt động của các lệnh này trong môi
trường thế giới thực như thế nào. Như những gì bạn có thể thấy trong hình A,
chúng tôi đã tạo một file bản ghi có tên USER.BAT, sau đó đã chèn lệnh trên vào
trong file. Trong trường hợp này có thể bạn chưa quen với file có đuôi mở rộng
.BAT, các file này đơn giản là các file vă
n bản có chứa một hoặc nhiều lệnh. Mục
đích của chúng là cho phép bạn xây dựng các kịch bản dựa trên các lệnh nhập
vào riêng lẻ tại dấu nhắc lệnh.

Hình A: Đây là cách các lệnh làm việc trong thế giới thực
Nếu quan sát hình trên, bạn có thể thấy được rằng thứ đầu tiên mà chúng tôi đã
thực hiện là sử dụng lệnh TYPE để hiển thị nội dung của file USER.BAT. Bước
này thực sự không cần thiết nhưng chúng tôi chỉ thực hiện nó để thể hiện cho
bạn biết rằng chúng ta đang sử dụng mã như đã được giới thiệ
u trong phần
trước.
Lưu ý tại nhắc lệnh kế tiếp, chúng tôi đã nhập vào lệnh USER. Bất cứ thời điểm
nào bạn tạo file .BAT, thì tên mà bạn đã gán cho file đó sẽ được coi như thuộc
về một file thực thi. Trong trường hợp này, tên của file .BAT là USER.BAT, chính
vì vậy khi chúng ta nhập vào lệnh USER, Windows sẽ thực thi file .BAT.
Ba nhắc lệnh tiếp theo bạn thấy trong hình trên được theo sau bởi rất nhiều lệnh.
Bạ
n cần phải hiểu được rằng chúng tôi đã không đánh một cách thủ công các

với file mà chúng tôi giới thiệu ở đây, trong tình huống như vậy, việc xem đầu ra
của các lệnh trong file .BAT cần đến sự hỗ trợ của thanh cuộn màn hình, hoặc
có thể khá khó khăn trong việc tìm ra vị trí của nó. Chính vì vậy nhiều lập trình
viên mở đầu các file .BAT của họ với lệnh d
ưới đây:
@echo off
Echo là một lệnh thường được sử dụng cho việc hiển thị văn bản trên màn hình
hoặc cho việc bổ sung thêm một dòng văn bản vào file nào đó. Cho ví dụ, nếu
bạn muốn cấu hình một file .BAT để hiển thị cụm từ “Hello World”, hãy sử dụng
lệnh dưới đây:
Echo Hello World
Chúng ta sẽ sử dụng lệnh echo để hiển thị trong loạt bài này, nhưng lúc này, có
mộ
t một trường hợp sử dụng khác cho lệnh echo mà chúng tôi muốn giới thiệu
đó là: khi bạn nhập vào lệnh ECHO OFF, Windows sẽ biết rằng bạn muốn tránh
không cho các lệnh còn lại của file .BAT được hiển thị và chỉ muốn xem đầu ra
của của file .BAT chứ không muốn xem bản thân các lệnh.
Nếu bạn nhập vào lệnh ECHO OFF tại điểm bắt đầu của file .BAT thì lệnh Echo
Off này sẽ hiện hữu, nhưng các l
ệnh khác thì không. Bạn có thể thấy được điều
đó trong hình B bên dưới.

Hình B: Lệnh Echo Off ngăn không cho các lệnh trước đó hiển thị
Sử dụng lệnh này này làm xuất hiện nhiều từ “Echo Off” có thể khiến chúng ta
hơi rối mắt. Chính vì vậy chúng tôi khuyên bạn lên gắn trước lệnh này một dấu
@. Điều đó sẽ làm cho lệnh Echo Off không bị xuất hiện nhiều lần, xem thể hiện
trong hình C.

Hình C: Lệnh @Echo Off sẽ ẩn tất cả các lệnh khác
OK, lệnh @Echo Off khá tốt trong vi


Nhờ tải bản gốc
Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status