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

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

Brien M. Posey

QUERY TERMSERVER

Lệnh đầu tiên mà chúng tôi muốn nói đến là lệnh QUERY TERMSERVER. Khi bạn nhập vào lệnh này, Windows sẽ tạo một danh sách tất cả các máy chủ terminal trên mạng, như thể hiện trong hình A.


Hình A: Lệnh QUERY TERMSERVER làm cho Windows sinh ra một danh sách
tất cả các máy chủ terminal trên mạng.

Nếu bạn vận hành một mạng doanh nghiệp, một mạng lớn thì danh sách các máy chủ terminal có thể khá dài. Điều này có thể gây ra nhiều vấn đề nếu bạn muốn tạo một kịch bản tự động nhằm tạo một báo cáo, vì lệnh được thiết kế để dừng tạm thời và đợi cho đến khi người dùng nhập vào sau mỗi màn hình hiển thị.

Nếu mục đích của bạn là tạo một kịch bản tự động, chúng tôi gợi ý các bạn sử dụng lệnh QUERY TERMSERVER này với khóa chuyển đổi /CONTINUE. Bằng cách thực hiện như vậy, lệnh này sẽ hiển thị danh sách các máy chủ đầu cuối theo một luồng liên tục, thay cho việc dừng sau mỗi màn hình đầy.

Một vấn đề khác trong sử dụng lệnh này trên một mạng lớn là, mạng doanh nghiệp có thể có đến hàng trăm miền, mỗi miền lại gồm nhiều máy chủ đầu cuối. Nếu muốn tránh hiện tượng quá tải thì bạn có thể hạn chế đầu ra của báo cáo chỉ cho những máy chủ đầu cuối nằm trong một miền nào đó. Để thực hiện như vậy, bạn cần phải sử dụng /DOMAIN, sau đó là tên miền của miền nào bạn muốn tạo báo cáo. Cho ví dụ, nếu muốn liệt kê tất cả các máy chủ đầu cuối trong miền Contoso thì bạn cần phải sử dụng lệnh dưới đây:

QUERY TERMSERVER /DOMAIN:Contoso

Thứ cuối cùng mà có thể thực hiện ở đây với lệnh này là bạn có thể sử dụng nó để tạo một báo cáo để liệt kê các địa chỉ MAC có liên quan với mỗi máy chủ đầu cuối. Để thực hiện điều đó, chỉ cần nhập vào lệnh QUERY TERMSERVER, sau đó là khóa chuyển đổi /ADDRESS. Có thể xem những gì ở đầu ra như trong hình B.


Hình B: Lệnh QUERY TERMSERVER /ADDRESS liệt kê các địa chỉ MAC
có liên quan với mỗi máy chủ đầu cuối

QUERY PROCESS

Lệnh tiếp theo mà chúng tôi muốn giới thiệu cho các bạn là lệnh QUERY PROCESS. Có thể các bạn đã biết, mỗi ứng dụng đều có một hoặc nhiều quy trình. Lệnh QUERY PROCESS cho phép bạn biết được các quy trình hiện đang được chạy trên máy chủ đầu cuối.

Như những gì bạn thấy trong hình C, khi bạn nhập vào lệnh QUERY PROCESS, Windows sẽ liệt kê người dùng nào đang chạy quá trình, session của terminal service có liên quan đến quá trình đang được chạy đó, số session ID, process ID và tên của file thực thi khởi chạy quá trình.


Hình C: Lệnh QUERY PROCESS liệt kê các thông tin chi tiết về các quá trình
đang được chạy trên máy chủ.

Thứ đầu tiên mà bạn cần biết về lệnh này là nó không liệt kê mọi quá trình riêng lẻ một cách mặc định. Nếu nhìn vào hình, bạn sẽ thấy được rằng không có quá trình nào đang được chạy nội bộ trên máy chủ được liệt kê. Nếu bạn muốn xem một danh sách đầy đủ tất cả các quá trình đang được chạy trên máy chủ, đơn giản chỉ cần nhập vào lệnh QUERY PROCESS, sau đó là một dấu hoa thị, xem trong hình D.


Hình D: Lệnh QUERY PROCESS * sẽ liệt kê các quá trình đang chạy trên máy chủ

Mặc dù, về cơ bản, báo cáo lệnh QUERY PROCESS cho ra khá hữu ích, tuy nhiên lệnh này cũng cho phép xem các thông tin đã được lọc.

Nếu muốn quan sát các thông tin đã được lọc dựa trên Process ID, Username, Session Name, hoặc Program Name, thì bạn phải nhập vào tên của lệnh QUERY PROCESS, sau đó là phần thông tin muốn lọc. Cho ví dụ, giả dụ rằng bạn muốn tạo một báo cáo chỉ thể hiện các thông tin có liên quan đến quá trình số 3360. Để thực hiện điều này, không phải nhập vào bất cứ switch nào hoặc bất cứ thứ gì, mà chỉ cần nhập vào lệnh QUERY PROCESS, sau đó là process ID, trong trường hợp này là 3360. Báo cáo thu được lúc này sẽ giống như những gì hiển thị trong hình E.


Hình E: Lệnh QUERY PROCESS cho phép bạn tạo các báo cáo dựa trên các thông tin cụ thể

Kỹ thuật tương tự như vậy cũng áp dụng nếu bạn muốn thực hiện một truy vấn dựa trên tên của người đang chạy quá trình, tên session và tên chương trình. Cho ví dụ, nếu muốn tạo một báo cáo tất cả các quá trình hiện đang được chạy bởi Administrator, khi đó bạn cần phải nhập vào lệnh dưới đây:

QUERY PROCESS Administrator

Như nhưng gì bạn thấy trong hình F, Windows sẽ liệt kê tất cả các quá trình hiện đang được chạy bởi quản trị viên.


Hình F: Lệnh QUERY PROCESS Administrator hiển thị tất cả các quá trình
đang được chạy bởi quản trị viên.

Do mỗi một session của terminal service được gán một số session ID. Nên nếu quan sát trong hình D, bạn sẽ thấy được rằng lệnh QUERY PROCESS sẽ hiển thị session ID. Mặc dù vậy, bạn lại không thể lọc đầu ra theo session ID bằng việc nối số session ID vào phần cuối của lệnh QUERY PROCESS.

Lý do của điều này là Windows không có cách phân biệt giữa session ID và process ID. Mặc dù vậy, nếu bạn nối thêm vào một số vào phần đuôi của lệnh QUERY PROCESS thì Windows sẽ tự động thừa nhận rằng số đó là process ID.

Điều này không có nghĩa bạn không thể lọc theo session ID. Nếu muốn lọc đầu ra theo session ID thì bạn cần phải sử dụng khóa chuyển đổi /ID, sau đó là một dấu hai chấm, số session ID. Cho ví dụ, nếu muốn xem tất cả các quá trình liên quan với session ID số 1, bạn có thể thực hiện bằng cách nhập vào lệnh sau:

QUERY PROCESS /ID:1

Bạn có thể thấy những gì lệnh này cho ra trong hình G.


Hình G: Khóa chuyển đổi /ID có thể lọc đầu ra dựa trên session ID

Kết luận

Trong phần này, chúng tôi đã giới thiệu cho các bạn thêm một số lệnh có thể được sử dụng trong môi trường terminal service. Trong phần ba của loạt bài này, chúng tôi sẽ giới thiệu cho các bạn một số lệnh khác.

Thứ Năm, 04/09/2008 11:49
51 👨 2.544
0 Bình luận
Sắp xếp theo
    ❖ Tổng hợp