Viết kịch bản Terminal Service - Phần 1
Viết kịch bản Terminal Service - Phần 2
Viết kịch bản Terminal Service - Phần 3
Viết kịch bản Terminal Service - Phần 4
Viết kịch bản Terminal Service - Phần 5
Viết kịch bản Terminal Service - Phần 6
Viết kịch bản Terminal Service - Phần 7
Viết kịch bản Terminal Service - Phần 8
Viết kịch bản Terminal Service - Phần 9
Viết kịch bản Terminal Service - Phần 10
Xuyên suốt loạt bài này, chúng tôi đã giới thiệu cho các bạn rất nhiều kỹ thuật viết kịch bản. Do rất nhiều quản trị viên không từng trải về việc viết kịch bản nên chúng tôi muốn có chút thời gian để giải thích một số vấn đề cơ bản thay cho việc chỉ nhảy vào những thứ có liên quan đến terminal service.
Chính vì lẽ đó mà chúng tôi muốn giới thiệu một số kỹ thuật mà chúng tôi đã đề cập đến trong loạt bài này và giới thiệu cho các bạn cách sử dụng các kỹ thuật đó để xây dựng kịch bản quản lý session. Ở cuối loạt bài này chúng tôi sẽ giới thiệu cho các bạn một kỹ thuật tạo các menu xếp chồng và sẽ nhập vào một kịch bản quản lý session vào bộ sưu tập các kịch bản khác.
Quản lý Session
Nếu quay trở lại ngay những phần đầu của loạt bài này bạn sẽ thấy rằng chúng tôi đã giới thiệu cho các bạn một số lệnh có liên quan đến việc quan sát hoặc quản trị các terminal server session từ dòng lệnh. Do không muốn lặp lại toàn bộ cú pháp một cách hoàn chỉnh vì đã giới thiệu trong các loạt bài trước nên chúng tôi sẽ đề cập vắn tắt đến các lệnh có liên quan đến việc quản lý session.
Query Session – Hiển thị các thông tin về các session đang chạy trên terminal server
Reset Session – Khởi động lại session cụ thể thành trạng thái đã biết
TSCON – Gắn kèm người dùng vào session đang tồn tại
TSDISCON – Hủy kết nối một máy khách với một terminal server session nào đó.
Change Logon – Cho phép bạn kích hoạt hoặc vô hiệu hóa khả năng của người dùng đăng nhập vào terminal server.
Lúc này các bạn đã được refresh bộ nhớ về những lệnh cần thiết, dự án đầu tiên mà chúng tôi muốn giới thiệu ở đây là tạo một kịch bản dựa trên các lệnh đó.
Như những gì bạn có thể hình dung, có rất nhiều cách khác nhau để thực hiện kiểu kịch bản này. Thứ đầu tiên mà chúng tôi muốn thực hiện là tạo một số mã để cho phép các quản trị viên biết về terminal server họ sẽ làm việc với, và để chuyển các máy chủ nếu cần thiết.
Với lưu ý đó, chúng ta hãy bắt đầu bằng cách lắp thêm menu đã tạo trong phần trước. Nếu quan sát ví dụ bên dưới thì các bạn sẽ thấy rằng nó cơ bản cũng giống như những gì chúng tôi đã giới thiệu, chúng tôi chỉ bỏ mộ số lựa chọn menu và bổ sung thêm một lựa chọn máy chủ. Đoạn mã này không thực sự lý tưởng mà chỉ được sử dụng như điểm giới thiệu ban đầu.
@echo off
set _menu=D
:Loop
cls
Echo What do you want to do?
Echo A: Select a Different Terminal Server
Echo B: This choice is not yet available
Echo C: This choice is not yet available
Echo.
Echo D: Quit
Echo.
Set /P _menu=Please enter your choice:
if not "%_menu%"=="" set _menu=%_menu:~0,1%
REM echo %_menu%
If /i "%_menu%"=="A" goto sub_server
If /i "%_menu%"=="B" goto sub_nothing
If /i "%_menu%"=="C" goto sub_nothing
if /I "%_menu%"=="D" goto:eof
goto:loop
:sub_server
echo This subroutine allows you to choose a different server
@Echo Off
goto:eof
:sub_nothing
echo Reserved for future code
goto:eof
Như đã đề cập từ trước, một số lệnh có liên quan đến session là đặc hiệu cho máy chủ. Cách cú pháp của lệnh làm việc là bạn không phải chỉ định máy chủ nhưng nếu bạn không chỉ định máy chủ thì Windows sẽ thừa nhận rằng bạn muốn chạy lệnh đó đối với máy chủ hiện hành. Trong trường hợp đó, có hai thứ mà chúng ta sẽ cần phải thực hiện đó là:
Trước tiên chúng ta cần phải gán một lựa chọn máy chủ mặc đinh. Lý do cho điều đó là nếu chúng ta thiết kế kịch bản theo cách để cho phép thực hiện các hành động đối với nhiều terminal server thì kịch bản sẽ phải gồm có biến số có chứa tên máy chủ. Chúng ta phải khởi tạo biến số này trong trường hợp quản trị viên quên để chọn máy chủ.
Một thứ khác mà chúng ta cần thực hiện đó là cung cấp cho quản trị viên một số kiểu cơ chế cho việc kết nối đến máy chủ khác.
Hãy xử trí biến máy chủ trước. Với mục đích bài này, chúng tôi sẽ chỉ gọi biến _SRV. Nếu quan sát dòng thứ hai của đoạn mã ở trên thì bạn sẽ thấy rằng chúng tôi đang khởi tạo một biến và sử dụng nó để gán một lựa chọn menu mặc định. Chúng ta có thể sử dụng kỹ thuật này để gán một máy chủ mặc định. Cho ví dụ, trong tổ chức của chúng tôi, chúng tôi muốn kịch bản được sử dụng cho máy chủ có tên Mirage một cách mặc định. Chính vì vậy chúng tôi đã bổ sung lệnh dưới đây vào kịch bản:
Set _SRV=Mirage
Do trong một tổ chức lớn bạn khó có thể nhớ được máy chủ nào mà đã gắn đến chính vì vậy bạn cần phải thận trọng để bổ sung thêm một lệnh vào kịch bản để thông báo cho quản trị viên biết được máy chủ nào mà họ được gắn với. Với lý lẽ đó chúng tôi đã thêm lệnh dưới đây vào vòng lặp menu:
Echo The currently selected terminal server is %_SRV%
Bạn có thể thấy những gì thể hiện trong đoạn mã bên dưới:
@echo off
set _menu=D
set _SRV=Mirage
:Loop
cls
Echo What do you want to do?
Echo A: Select a Different Terminal Server
Echo B: This choice is not yet available
Echo C: This choice is not yet available
Echo.
Echo D: Quit
Echo.
Echo The currently selected terminal server is %_SRV%
Echo.
Set /P _menu=Please enter your choice:
if not "%_menu%"=="" set _menu=%_menu:~0,1%
REM echo %_menu%
If /i "%_menu%"=="A" goto sub_server
If /i "%_menu%"=="B" goto sub_nothing
If /i "%_menu%"=="C" goto sub_nothing
if /I "%_menu%"=="D" goto:eof
goto:loop
:sub_server
echo This subroutine allows you to choose a different server
@Echo Off
goto:eof
:sub_nothing
echo Reserved for future code
goto:eof
Khi chúng ta thực thi kịch bản, những gì thể hiện sẽ như trong hình A. Kịch bản sẽ hiển thị terminal server hiện đã được chọn, bên dưới menu. Tùy chọn để chọn một terminal server khác vẫn chưa thực sự cần thiết nhưng chúng tôi sẽ viết mã cho chức năng đó trong phần 12.
Kết luận
Trong phần này chúng tôi đã bắt đầu việc xây dựng kịch bản để cho phép ban quản lý các terminals server session từ một nhắc lệnh. Trong phần tiếp theo của loạt bài này, chúng tôi sẽ giới thiệu cho các bạn một chút về kỹ thuật thực hiện trong bài này. Không chỉ là kỹ thuật cần thiết cho việc chọn các file bản ghi mà chúng ta còn phải sử dụng chính xác kỹ thuật trong kịch bản mà chúng ta đã bắt đầu ở trên, vì quá trình lựa chọn terminal server khác trong kỹ thuật này.