Написание сценариев на основе служб терминалов (часть 11)

Опубликовано: 23 Апреля, 2023




  • Написание сценариев на основе служб терминалов (часть 1)
  • Написание сценариев на основе служб терминалов (часть 2)
  • Написание сценариев на основе служб терминалов (часть 3)
  • Написание сценариев на основе служб терминалов (часть 4)
  • Написание сценариев на основе служб терминалов (часть 5)
  • Написание сценариев на основе служб терминалов (часть 6)
  • Написание сценариев на основе служб терминалов (часть 7)
  • Написание сценариев на основе служб терминалов (часть 8)
  • Написание сценариев на основе служб терминалов (часть 9)

  • Написание сценариев на основе служб терминалов (часть 12)
  • Написание сценариев на основе служб терминалов (часть 13)
  • Написание сценариев на основе служб терминалов (часть 14)

На протяжении всей этой серии статей я уделял время тому, чтобы показать вам многочисленные приемы написания сценариев. Поскольку многие администраторы плохо разбираются в сценариях, я хотел найти время, чтобы объяснить многие основы, а не просто сразу переходить к материалам, связанным со службой терминалов. Я очень ценю всеобщее терпение по мере продвижения серии, но теперь я, наконец, чувствую, что проделал достаточно, чтобы мы действительно могли начать делать что-то полезное.


При этом я хочу взять некоторые методы, описанные в этой серии статей, и показать вам, как использовать эти методы для создания сценария управления сеансом. Позже в этой серии я покажу вам технику создания вложенных меню, и мы собираемся соединить наш сценарий управления сеансом с набором других сценариев.


Управление сеансом


Если вы вернетесь к началу этой серии статей, то помните, что я показал вам ряд различных команд, связанных с просмотром или управлением сеансами терминального сервера из командной строки. Я не хочу повторять полный синтаксис этих команд, потому что я уже рассмотрел синтаксис ранее в этой серии, но я хочу кратко упомянуть доступные вам команды, связанные с управлением сеансом:


Query Session — отображает информацию о сеансах, запущенных на сервере терминалов.


Сброс сеанса — сбрасывает определенный сеанс до известного состояния.


TSCON — прикрепляет пользователя к существующему сеансу.


TSDISCON — отключает клиента от определенного сеанса сервера терминалов.


Изменить вход в систему — позволяет включить или отключить возможность входа пользователя на сервер терминалов.


Теперь, когда я освежил память каждого о том, какие команды доступны, первый проект, за который я хочу взяться, — это создать сценарий на основе этих команд.


Как вы можете себе представить, есть много разных способов, которыми я мог бы подойти к этому типу сценария. Первое, что я хочу сделать, это написать код, который позволит администраторам узнать, с каким терминальным сервером они работают, и при необходимости переключать серверы. В конце концов, некоторые из команд, которые я упомянул минуту назад, специфичны для сервера, и мы действительно не хотим постоянно использовать один конкретный сервер.


Имея это в виду, давайте начнем с адаптации меню, которое мы создали в предыдущей статье, к поставленной задаче. Если вы посмотрите на приведенный ниже пример кода, вы увидите, что он в основном такой же, как тот, который мы уже рассмотрели, я только что избавился от некоторых пунктов меню и добавил выбор для выбора другого сервера. Код еще не совсем функционален, я просто хочу использовать его в качестве отправной точки.









Как я упоминал ранее, некоторые из команд, связанных с сеансом, зависят от сервера. Как работает синтаксис команды, вам не нужно указывать сервер, но если вы не укажете сервер, Windows предположит, что вы хотите запустить команду для текущего сервера. В таком случае нам нужно будет сделать две вещи.


Во-первых, мы должны назначить выбор сервера по умолчанию. Причина этого в том, что если мы собираемся спроектировать сценарий таким образом, чтобы он мог выполнять действия с несколькими терминальными серверами, то сценарий должен включать переменную, содержащую имя сервера. Мы должны инициализировать эту переменную на тот случай, если администратор забудет (или не захочет тратить время) выбрать сервер.


Еще одна вещь, которую мы должны сделать, это предоставить администратору какой-то механизм для подключения к другому серверу.


Давайте сначала займемся серверной переменной. Для целей этой статьи мы будем просто называть переменную _SRV. Если вы посмотрите на вторую строку блока кода выше, вы увидите, что мы уже инициализируем одну переменную и используем ее для назначения пункта меню по умолчанию. Мы можем использовать точно такой же метод для назначения сервера по умолчанию. Например, в моей организации я хочу, чтобы сценарий по умолчанию применялся к серверу с именем Mirage. Поэтому я бы добавил в скрипт следующую команду:



Я склонен думать, что просто указать сервер по умолчанию недостаточно. В большой организации может быть трудно вспомнить, к какому серверу вы подключены. Поэтому кажется разумным добавить в скрипт команду, сообщающую администратору, к какому серверу он в данный момент подключен. Поэтому я добавлю в цикл меню следующую команду:



Вы можете увидеть, как это выглядит в блоке кода ниже:








Когда мы выполняем сценарий, он выглядит так, как вы видите на рисунке A. Как вы можете видеть на рисунке, сценарий отображает текущий выбранный сервер терминалов прямо под меню. Опция выбора другого терминального сервера на самом деле еще ничего не делает, но мы напишем код для этой функции в Части 12.


Изображение 28341
Рисунок A: Сценарий теперь отображает текущий выбранный сервер терминалов.


Вывод


В этой статье я начал создавать сценарий, который в конечном итоге позволит вам управлять сеансами сервера терминалов из командной строки. После написания этой статьи я понял, что забежал вперед. В Части 10 мы начали создавать сценарий, который позволит вам создавать, просматривать и печатать файлы журналов, связанные со службой терминала. Когда я сел писать эту статью, я думал, что завершил предыдущий сценарий, но позже мне пришло в голову, что я обещал показать вам, как изменить предыдущий сценарий, чтобы вы могли выбрать конкретный отчет, который вы хотите просмотреть или распечатать.


В следующей статье серии я хочу немного отступить и показать вам эту технику. Этот метод необходим не только для выбора файлов журналов, но и нам придется использовать точно такой же метод в сценарии, который мы начали создавать выше, потому что процесс выбора другого терминального сервера опирается на этот метод.


  • Написание сценариев на основе служб терминалов (часть 2)
  • Написание сценариев на основе служб терминалов (часть 3)
  • Написание сценариев на основе служб терминалов (часть 4)
  • Написание сценариев на основе служб терминалов (часть 5)
  • Написание сценариев на основе служб терминалов (часть 6)
  • Написание сценариев на основе служб терминалов (часть 7)
  • Написание сценариев на основе служб терминалов (часть 8)
  • Написание сценариев на основе служб терминалов (часть 9)

  • Написание сценариев на основе служб терминалов (часть 12)
  • Написание сценариев на основе служб терминалов (часть 13)
  • Написание сценариев на основе служб терминалов (часть 14)