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

Cho đến đây, chúng tôi đã minh chứng cho các bạn một số lệnh để có thể sử dụng xây dựng các kịch bản cho môi trường terminal service của mình. Còn trong phần này, chúng tôi muốn tiếp tục giới thiệu cho các bạn thêm một số lệnh khác.

Lệnh MSG

Một trong những phần quan trọng  nhất của bất kỳ kịch bản nào là khả năng mà quản trị viên hoặc người dùng theo dõi được tiến trình của kịch bản. Một cách để thực hiện điều này là thiết kế một kịch bản để nó truyền tải các thông báo khi có một sự kiện nào đó xảy ra. May mắn ở đây là Windows cung cấp cho chúng ta một lệnh tương đối hoàn hảo cho nhiệm vụ này.

Lệnh MSG có thể được sử dụng để gửi một thông báo pop-up đến người dùng hoặc một nhóm. Cú pháp của lệnh như sau:

MSG {username | session name | session ID | @filename | *} [/server: server name] [/time: seconds] [/V] [/W] [message]

Phần đầu tiên của lệnh này cho phép bạn chỉ định người nhận thông báo. Như những gì có thể thấy trong lệnh trên, bạn có thể gửi một thông báo đến một người dùng nào đó hoặc có thể chỉ định một session name hoặc session ID. Tùy chọn @filename sẽ cho phép bạn chỉ định tên của file văn bản gồm có user name, session name, session ID hoặc sự kết hợp trong số đó.

Tùy chọn cuối cùng cho việc chỉ định người nhận thông báo là một dấu hoa thị. Nếu bạn chỉ định một dấu hoa thị thì thông báo sẽ được gửi đến mọi người được kết nối với máy chủ. Sử dụng dấu hoa thị là một tùy chọn tuyệt vời nếu bạn cần thông báo cho mọi người biết rằng máy chủ sẽ shutdown.

Tham số /Server:server name cho phép bạn chỉ định thên của máy chủ mà trên đó hành động sẽ xảy ra. Đây là một tham số mang tính tùy chọn, nếu bỏ qua nó thì máy chủ hiện hành sẽ được sử dụng một cách mặc định.

Tham số  /V cho phép bạn yêu cầu lệnh MSG cung cấp các thông tin chi tiết hơn về hành động đang được thực hiện.

Tiếp lệnh /W sẽ thông báo cho lệnh MSG đợi một đáp trả từ phía người dùng.

Bạn có thể kết hợp tiếp lệnh /W với /Time: seconds. Sự kết hợp này sẽ cho phép bạn thông tin cho lệnh MSG về khoảng thời gian đợi một đáp trả từ phía người dùng.

Tham số cuối cùng được sử dụng với lệnh này là một thông báo hiện tại. Nếu bạn không nhập vào một thông báo thì lệnh sẽ nhắc nhở bạn thực hiện điều đó khi được thực thi.

Chúng tôi đã giải thích thêm cho các bạn về một số tiếp lệnh của lệnh này và lúc này chúng ta hãy xem xét đến cách sử dụng lệnh này như thế nào. Hãy bắt đầu bởi những thứ đơn giản trước. Lệnh bên dưới gửi một thông báo This is a test đến quản trị viên:

MSG Administrator This is a test

Nếu bạn quan sát trong hình A thì bạn sẽ thấy lệnh này như thế nào. Hình B là hiển thị đầu ra của lệnh.


Hình A: Lệnh này thể hiện một trong những cách dễ dàng nhất trong vấn đề gửi thông báo


Hình B: Đây là những gì nhận được khi lệnh thực thi

Có một số thứ khác biệt ở đây mà chúng tôi muốn các bạn cần lưu ý. Đầu tiên, các bạn phải lưu ý rằng, chúng tôi không phải sử dụng bất kỳ tiếp lệnh nào để chỉ định người nhận thông báo. Tất cả những gì chúng tôi thực hiện là đánh vào username của người nhận. Chúng ta cũng có thể sử dụng session name hoặc session ID, khi đó cú pháp thực hiện lệnh cũng tương tự như vậy.

Có một thứ mà chúng tôi muốn chỉ ra cho các bạn về lệnh này là tính không hiện hữu của nó trong màn hình hiển thị đầu ra. Bạn có thể đã thấy chúng tôi đã gửi một thông báo bằng văn bản đến quản trị viên. Lý do tại sao chúng tôi chọn tài khoản cụ thể này là vì trong nhiều tổ chức không cho các quản trị viên đăng nhập vào một vài máy tính tại cùng một thời điểm (điều này cũng không thực sự tốt theo phối cảnh bảo mật). Quan điểm của người viết bài này là không ai được đăng nhập như quản trị viên sẽ nhận một bản copy của thông báo.

Các bạn hãy lưu ý rằng các lệnh mà chúng tôi giới thiệu đều được sử dụng trong môi trường terminal service. Chẳng hạn như, lệnh chỉ định một máy chủ mục tiêu nào đó. Khi bạn chạy lệnh, nó sẽ tìm kiếm các sự kiện một người dùng nào đó đang kết nối với máy chủ được chỉ định, thay cho việc tìm kiếm toàn bộ mạng đối với bất cứ sự kiện nào của người dùng đã chỉ định đó trong một miền. Đó chính là lý do tại sao bạn có thể chỉ định session name hoặc session ID với tư cách là một phần của lệnh. Session name và session ID cũng mang tính chỉ định.

Thông thường khi bạn chạy lệnh MSG, lệnh sẽ thừa nhận rằng bạn đang cố gắng gửi một thông báo đến một hoặc nhiều người dùng (những người đã đăng nhập vào máy chủ) mà bạn sẽ nhập lệnh vào. Điều này không phải lúc nào cũng mang tính thực tiễn vì bạn không phải lúc nào cũng làm việc trực tiếp tại giao diện điều khiển trên máy chủ. Đôi khi bạn cần thực hiện việc bảo trì máy chủ từ một máy trạm nào đó thay cho việc phải đi đến tận phòng máy chủ đó.

Tuy nhiên, lệnh này cũng cho phép bạn sử dụng tiếp lệnh /SERVER để chỉ định tên của máy chủ mà lệnh này thực thi. Cho ví dụ, giả dụ rằng tôi muốn chạy một lệnh giống như lệnh mà đã thể hiện cho bạn, thời điểm này tôi muốn nhập lệnh vào máy trạm Vista của tôi, nhưng muốn lệnh áp dụng cho máy chủ có tên Mirage. Để thực hiện điều đó, chúng ta cần phải nhập vào lệnh dưới đây:

MSG Administrator /server:mirage This is a test

Sau khi nhập vào lệnh trên, Windows sẽ gửi một thông báo văn bản đến bất kỳ ai đã đăng nhập với tư cách là quản trị viên thông qua một session trên máy chủ Mirage.

Nếu muốn một thông báo được gửi đến nhiều người dùng, cho ví dụ, bạn cần gửi một thông báo đến các nhân viên quản trị khi một vấn đề nào đó xuất hiện.Thì vấn đề ở đây là bạn không hề biết ai sẽ được đăng nhập tại thời điểm đã cho nào đó. Một giải pháp để thực hiện điều này là tạo một file văn bản gồm có các tên của các nhân viên quản trị. Sau đó bạn có thể điều chỉnh lệnh để nó gửi thông báo tới các tên người dùng trong danh sách.

Tạo một danh sách rất đơn giản. Bạn chỉ cần mở Notepad, và tạo môt tài liệu gồm trong đó các tên người dùng trên các dòng khác nhau. Sau khi thực hiện danh sách này, bạn có thể tham chiếu file này từ lệnh MSG. Cho ví dụ, nếu bạn đã tạo một file có tên users.txt, thì lệnh MSG sẽ có cú pháp như sau:

MSG @users.txt This is a test

Cần lưu ý rằng trong ngoài khả năng nhập vào tên người dùng trong file văn bản, bạn cũng có thể gộp cả session name và session ID. Tương tự như vậy, bạn cũng có thể sử dụng tiếp lệnh /server kết hợp với file văn bản của mình để lệnh chạy cho một máy chủ cụ thể.

Kết luận

Trong phần này, chúng tôi đã giới thiệu cho các bạn về lệnh MSG, đây là lệnh được sử dụng để mở các thông báo pop-up cho những người dùng kết nối với máy chủ terminal nào đó. Trong phần tiếp theo của loạt bài này, chúng tôi sẽ tiếp tục giới thiệu cho các bạn về một số thứ mà các bạn có thể thực hiện với lệnh MSG. Sau đó sẽ tiếp tục giới thiệu cho các bạn thêm về các lệnh có liên quan đến terminal service.

Tác giả bài viết: GiangVien.Net

Nguồn tin: MSterminalservices

Array
(
    [type] => 8192
    [message] => preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead
    [file] => /home/pwhqfmvb/GiangVien/includes/countries.php
    [line] => 435
)