Микрософт с большим отставанием от разработчиков реализовал на терминальном сервере публикацию отдельных приложений. Технологию назвали RemoteApp.
Пока речь идет о доступе к опубликованным приложениям через web-интерфейс, все выглядит красиво, но пользователям не удобно заходить в браузер (а браузер – это значит медленно), да и сам подход непривычен, а непривычное, как правило, воспринимается большинством пользователей негативно. Микрософт решил этот вопрос раздачей юзерам на рабочий стол готовых значков, настроенных на запуск конкретного приложения.
Но тут все начинают понимать, что web-интерфейс – это оболочка, а под ней все тот же старый добрый DOS , пардон, RDP. И сразу хочется понять, а что там с правами доступа. Жмем Win+R, mstsc, Enter. Оп-па-на! Мы сделали для конкретного пользователя возможность запускать только одну единственную программу, а он спокойно погуливает по серверу, как у себя дома…
Права доступа на терминальный сервер и к RemoteApp
Опубликованные приложения группируются в коллекции. Для доступа к приложению у пользователя должны быть права и на запуск этого приложения и на доступ к коллекции, в которую оно входит, иначе он программу не запустит.
Настройка терминального сервера под 1С на Windows Server 2016 | RDP Server Windows
Назначение прав предусмотрено через права к коллекции. При этом автоматически тот же набор прав передается в привычную группу безопасности терминального сервера Пользователи удаленного рабочего стола. Если впоследствии изменить набор прав в этой группе, то действовать будут именно они, а не те, что были заданы в правах на коллекцию. И права на коллекцию будут просто игнорироваться, пока не будут заданы именно для коллекции, т.е. через интерфейс управления коллекцией (при этом обновится список доступа в группе Пользователи удаленного рабочего стола).
Таким образом, если у определенного пользователя есть право на запуск какой-то одной опубликованной программы, то он может беспрепятственно логиниться на рабочий стол этого терминального сервера традиционным способом.
Для кого-то это не имеет никакого значения, но это в любом случае ненормально, а в большинстве организаций – неприемлемо.
Штатного решения найти не удалось, но есть обходные пути.
А. Можно в AD в свойствах учетной записи на вкладке «Среда» задать запуск нужной программы при входе. Но тогда пользователь сможет работать только с одной программой на ТС.
Б. Можно там же на вкладке «Среда» задать запуск logoff.exe , а программы раздавать через настроенные значки. Тогда при входе через mstsc сеанс такого пользователя будет сразу же автоматически завершаться.
Надо понимать, что настройка из пунктов (А) и (Б) будет касаться входа на любой терминальный сервер, а их в общем случае может быть несколько, на каждом свои программы, где-то просто нужен доступ к рабочему столу сервера.
Чувствуется, что это надо разруливать через GPO, но параметры пользователя применяются только к пользователям, а не к серверам, а нам надо, чтобы параметры, заданные для пользователя (например, напуск при входе logoff.exe) применялись к конкретным пользователям на конкретных серверах. Тут на помощь приходит волшебный параметр Computer Configuration ⇒ Policies ⇒ Administrative Templates ⇒ System ⇒ Group Policy ⇒ User Group Policy loopback processing mode.
Сделать запрет на запуск программ пользователя домена
Последовательность действий
1. Создаем в AD группу безопасности, назовем её «TS1_Restrict_Obj».
2. Добавляем в группу «TS1_Restrict_Obj» пользователей, для которых нужно сделать ограничения. (Возможно, для конкретных задач потребуются более мягкие ограничения, а не logoff.exe. Или наоборот, нужно сделать что-то хорошее, скажем, отключить на терминальном сервере пароль на хранитель экрана, чтобы юзерам не приходилось вводить пароль дважды: на своей рабочей станции и на терминале.)
3. Добавляем в группу «TS1_Restrict_Obj» терминальный сервер, на котором нужно применить наши ограничения для заданных пользователей. Если нужно применить эти правила для разных серверов и одних и тех же пользователей, то добавляем сюда же и все эти терминальные серверы.
4. В групповых политиках создаем новый GPO (например, «TS1_Restrict») и связываем его с контейнером, в котором находится наш терминальный сервер(ы). Можно сделать отдельный контейнер (OU), в который вынести этот сервер(ы).
5. В SecurityFilteringдля вновь созданного GPO«TS1_Restrict» Удаляем записи, которые там создаются по умолчанию и добавляем нашу группу «TS1_Restrict_Obj».
6. Открываем на редактирование GPO «TS1_Restrict»
Computer Configuration ⇒ Policies ⇒ Administrative Templates ⇒ System ⇒ Group Policy ⇒ User Group Policy loopback processing mode = Merge (или Replace)
User Configuration ⇒ Policies ⇒ Administrative Templates ⇒ Windows Components ⇒ Remote Desktop Services ⇒ Remote Desktop Session Host ⇒ Remote Session Environment ⇒ Program path and file name = logoff.exe
Или делаем здесь другие ограничения, в зависимости от решаемой задачи.
7. Вы, наверное, будете смеяться, но для применения этой конструкции необходимо перезагрузить сервер, к которому применяется политика. Причем, отключение политики выполняется сразу, достаточно удалить сервер из группы безопасности «TS1_Restrict_Obj», а для подключения – требуется перезагрузка.
Теперь при попытке пользователей, входящих в группу «TS1_Restrict_Obj», войти на данный терминальный сервер сразу же после входа будет происходить завершение сеанса. При этом опубликованные для этих пользователей приложения RemoteApp будут работать как через web-интерфейс, так и через файлы .RDP.
Не обязательно включать параметры пользователей и параметр User Group Policy loopback processing mode в один и тот же GPO. Просто если «замыкание» (loopback) включено для какого-то сервера, то политики пользователя будут применяться к этому серверу.
Источник: admsoft.ru
Терминальный сервер: что это, и как его настроить?
Терминальный сервер — это мощный компьютер, на котором запускаются приложения для клиентских устройств. Последние играют роль тонких клиентов — они служат лишь для вывода изображения, формируемого терминальным сервером, и передачи управляющих команд для работы с приложениями.
Терминальный сервер — что это?
Говоря простыми словами, это — мощный компьютер с серверной операционной системой, к которому подключены клиентские машины (так называемые тонкие клиенты). На сервере есть специальные инструменты для создания сессий для каждого удалённого пользователя. Последние запускают внутри своих сессий нужные им приложения, причём это происходит именно на терминальном сервере.
На своих экранах пользователи видят лишь изображения, передаваемые сервером. Кроме того, они используют клавиатуру и мышь для удалённой работы с приложениями. Внешне создаётся полная иллюзия того, что программы запускаются на клиентских компьютерах.
Зачем нужен и как применяется терминальный сервер?
Современные приложения ресурсоёмки и требовательны к мощности компьютеров, на которые устанавливаются. Одно дело, если в маленькой компании порядка пяти рабочих мест — на каждое из них вполне можно установить полноценный ПК без особого ущерба для бюджета. Совсем другое — если рабочих мест в организации десятки или сотни. Их оснащение компьютерами существенно подорвёт финансы компании — и именно в этот момент на сцену выходит терминальный сервер.
Руководству больше не нужно выделять средства на покупку, к примеру, тридцати полноценных компьютеров — понадобится один сервер, пусть и довольно мощный. На рабочие места сотрудников устанавливаются так называемые тонкие клиенты — дешёвые компьютеры начального уровня. К их мощности практически не предъявляется требований — этим ПК не придётся выполнять сложные вычисления. Общая сумма закупки существенно уменьшается, при этом всем сотрудникам обеспечиваются высокая производительность и удобство при использовании рабочих приложений.
Перед началом работы на сервере терминалов создаются сессии для сотрудников. Используя свои тонкие клиенты, они подключаются к серверу и начинают работать в сессиях, запуская нужные им приложения, создавая документы, общаясь с коллегами, выполняя другие задачи.
Описанная выше схема, помимо возможности сэкономить средства компании на закупке компьютерной техники, имеет ещё несколько важных достоинств. В их числе:
- возможность наделять разных пользователей сервера разными правами. Так, рядовым сотрудникам можно дать права только на чтение информации, более высокопоставленным — на её изменение;
- высокий уровень безопасности всей IT-инфраструктуры компании. Достаточно установить на терминальный сервер хорошее антивирусное ПО, и вся сеть будет надёжно защищена от угроз;
- возможность сэкономить на программном обеспечении. Его не придётся покупать на каждую рабочую станцию — лицензии на ПО понадобятся только для терминального сервера;
- значительное снижение расходов на электроэнергию. Тонкие клиенты потребляют её гораздо экономнее, чем полноценные персональные компьютеры, благодаря чему суммы в счетах поставщиков энергии уменьшаются.
Терминальный сервер 1С
1С для многих системных администраторов всегда была и остается головной болью. Терминальный сервер 1С, как один из ключевых узлов, требует к себе повышенного внимания, ведь на нем завязана финансовая деятельность . Вот и у меня недавно появилась задача собрать все яйца в одну корзину — всех бухгалтеров на один терминальный сервер. При этом нет никаких данных о том, какие ресурсы — цп, оперативная память, iops’ы дисков — потребляют клиентские приложения.
На официальных ресурсах ничего, кроме совместимости с операционными системами, мне найти не удалось. Имея уже давно работающие ПК бухгалтеров и сервер мониторинга ZABBIX, я решил действовать немного по-другому и занялся сбором реальных данных. Собственно только это мне и было доступно.
Другие статьи об 1С вы найдете в соответствующей рубрике — 1С.
Терминальный сервер 1С — анализ данных
В интернете множество компаний предлагают на своем сайте подобрать конфигурацию терминального сервера под определенное количество пользователей 1С, только ни на одном из таких сайтах не указывается характер нагрузки на сервер — не уточняется планируют ли пользователи запускать что-то ещё кроме 1С, не написано под какой тип клиента (толстый или тонкий) идет расчет конфигурации и т.п.. Все это ни коим образом не вселяет уверенности в правильности подбора.
Чтобы понять на каком железе разворачивать терминальный сервер, я решил собрать данные производительности всех ПК бухгалтерии за какой-либо период.
Задача звучит следующим образом: собрать данные потребления процессорной мощности и оперативной памяти на каждом ПК бухгалтерии.
Условия: каждый сотрудник бухгалтерии использует 1С (открыто враз от 2 до 8 экземпляров программы, в среднем 6. Одна из этих программ — толстый клиент 1С, все остальные — тонкие клиенты). Периодически бухгалтеры пользуются экселем для выгрузки и анализа данных, браузером для работы в банк-клиентах. Никаких ресурсоемких приложений не запускается. Точно такой же софт будет запущен на терминальных сессиях.
Что имеем: у каждого бухгалтера стоит Core i5 4460 или эквивалентный ему процессор, 8ГБ RAM, ОС — Windows 8.1.
Процессорная мощность
Итак, представляю вашему вниманию график нагрузки процессоров каждого ПК бухгалтерии:
Разрывы на графиках вполне нормальны, поскольку по ночам и в выходные бухгалтеры не работают. Или работают, но не все.
Вывод по процессорной мощности: судя по графику (зеленая линия), средняя нагрузка на ЦП не превышает примерно 5% — у кого-то бывает и больше, но есть примеры с меньшим потреблением. 5% — в среднем это минимум, который необходим каждому.
Уточнения: надо взять во внимание тот факт, что сама ОС также потребляет процессорную мощность. На терминальном сервере такая система будет одна независимо от количества пользователей, но если измерять отдельный пк, то из конечных результатов нужно будет вычесть примерно 1%, который тратится на работу системы. Итого получаем 4%.
Что не учли: нагрузка на ОС терминального сервера вероятнее всего будет увеличиваться пропорционально (или с некоторым коэффициентом) увеличению количества пользователей, поэтому может быть я и зря вычел этот 1%. У кого-то возникнет вопрос почему я взял нагрузку исключительно навскидку, примерно. Потому что мне кажется, что точное среднее значение все равно не будет отражать ситуацию более корректным образом, уж слишком большое влияние на производительность со стороны «третьих» сил замешано в данных измерениях (начнем с того, что многих служб Windows 8.1 вообще не будет на терминальном сервере и наоборот). Промежуточный вывод:
Средняя загрузка ЦП рабочего места бухгалтера — 4% ЦП
Продолжаем анализировать ситуацию. Также из графика можно заметить, что при включении ПК идет повышенное потребление ресурсов и это нормально, поскольку в этот момент стартуют службы, пользователи запускают необходимый для работы софт, подгружают данные. Ниже график загрузки ЦП тех же ПК, но акцент сделан на моменте загрузки системы (выделено красной рамкой):
Таким образом можно говорить о том, что загрузка ЦП при включении ПК находится в районе 30%. Это не значит, что теперь каждой терминальной сессии бухгалтера нужно зарезервировать эквивалентную мощность. Это значит, что нужно зарезервировать 30% единоразово на всех. Это подразумевает, что все бухгалтеры не будут враз логиниться на терминальный сервер, но для быстрого запуска необходимого софта нужно иметь в резерве 30% эквивалентной Core i5 4460 мощности. Промежуточный вывод:
Необходимый резерв ЦП сверх средней нагрузки каждого рабочего места — 30% ЦП
Ситуация с требуемой мощностью процессора постепенно начала проясняться, теперь необходимо определить потребность в оперативной памяти.
Оперативная память
Тут все обстоит значительно проще — из потребляемой оперативной памяти рабочего места бухгалтера нужно вычесть примерно 512МБ — именно столько съедает Windows 8.1 без нагрузки. Сведем все данные в один список:
- Потребление RAM ОС Windows 8.1 — 512МБ;
- Минимум RAM, которая необходима для работы терминального сервера без нагрузки — 2ГБ;
Таким образом, формула для определения необходимого объема оперативной памяти:
TS Server RAM = ( RAMбух -512 ) * N + 2048
Где RAMбух — средний объем памяти, которую потребляет одно рабочее место бухгалтера; N — количество рабочих мест бухгалтеров.
Немного подробнее о первом параметре:
Выше представлены графики свободного объема RAM на каждом рабочем месте сотрудников бухгалтерии.
Вывод по оперативной памяти: средний объем занятой памяти из расчета 8ГБ на рабочее место (не см. на график scws44, на этом ПК не 8, а 4ГБ) равен 2,5ГБ. Если вычесть из этого объема 512МБ (ОС), то примерно получим:
Расход RAM (без объема, занятого ОС) на рабочем месте бухгалтера = 2ГБ
Уточнения: разумеется это значение приблизительное и в реальной обстановке все равно будет меняться. Учтите также объемы памяти, которые могут потребоваться администраторам, ведь их сессии на терминальном сервере тоже будут отнимать ресурсы, пусть и небольшие.
Что не учли: ОС может периодически требовать объемы сверх ей необходимых. Например служебные процессы TrustedInstaller.exe или svghost.exe или любые другие периодически выкачивают значительные объемы оперативной памяти, для них тоже однозначно надо что-то зарезервировать.
Казалось бы на этом все задачи выполнены, но нет, остались ещё. О них ниже.
Диски
Нагрузка на дисковую подсистему в случае с терминальным сервером будет сводиться в основном к чтению данных и потому требования к дискам не так жестки как, например, в случае с СУБД. Средняя нагрузка обычного десктопного диска (WD Blue) рабочего места бухгалтера отображена на графиках ниже:
Обращаю внимание, что на графиках отображается время бездействия (idle time). Бездействие 95% говорит о том, что реальная загрузка диска составляет всего 5%. Промежуточный вывод:
Средняя нагрузка на одиночный диск рабочего места бухгалтера — 5%
Вывод по дискам: если не учитывать кратковременные пики, то средняя нагрузка на диски составляет 5%.
Уточнения: в этом среднем значении весомую долю занимают потребности операционной системы.
Что не учли: наиболее грамотно оценить потребности в дисках позволяет оценка производительности в операциях ввода/вывода в секунду (iops) от которой я, тем не менее, в рамках этой статьи предпочту отказаться. Операции ввода/вывода и загрузка диска в процентах обычно не соотносятся друг с другом в линейном виде (или соотносятся далеко не всегда). Все зависит от характера нагрузки. В моем случае существующая оценка производительности вполне достаточна.
Терминальный сервер 1С — подбор конфигурации
Для начала нам надо узнать рейтинг производительности эталонного процессора, который мы взяли за основу при проведении измерений. В моем случае этот процессор — Core i5-4460, который установлен практически на каждом рабочем сотрудников бухгалтерии. Рейтинг его производительности, согласно данным сайта www.cpubenchmark.net — 6622 1 .
Исходя из расчетов предыдущей главы, определим требуемую мощность процессора:
4% * 7 (количество рабочих мест бухгалтеров в моем случае) + 1% (для ОС) + 30% = 59% (в сравнении с Core i5 4460).
Также надо учесть тот факт, что периодически сотрудники бухгалтерии делают объемные выгрузки данных из 1С, что отнимает достаточно много ресурсов — обычно как минимум одно физическое процессорное ядро. То есть в нашем случае 25% производительности эталонного ЦП. В итоге реально необходимая мощность уже равна 84%.
Небольшое пояснение: практически никто не подбирает процессоры исходя из того, чтобы они были загружены на 84% или около того. Например я считаю, что загрузка ЦП равная или выше 85% является критической. В своей практике я обычно подбираю мощность процессора таким образом, чтобы при выполнении требуемых задач нагрузка на него не превышала 60% в среднем.
Определим необходимый рейтинг производительности процессора исходя из пояснения выше:
6620 * 0,84 / 0,6 = 9268
UPD: 15.07.2016:
Недавно провел реальный тест производительности, итоги читайте в статье Тест производительности терминального сервера 1С.
Объем оперативной памяти составит 16ГБ (на 7 рабочих мест сотрудников бухгалтерии, расчеты приведены выше). Надо отметить, что это минимально необходимый объем. Желательно все же иметь запас, чтобы приложения и ОС не начали свопить и не положили дисковую подсистему. Идеальный вариант составит 2 планки по 16ГБ, всего 32ГБ — планки такого объема поддерживает практически любая серверная материнская плата.
Исходя из нагрузки на диски (см. выше), достаточно будет иметь производительность двух SATA-дисков. Если говорить о массивах, то при грубом приближении подойдут конфигурации RAID 10, 1E, 5. Я традиционно выбираю RAID 10 — для этого варианта нужно минимум 4 диска.
Для уменьшения общей стоимости оборудования можно обойтись SATA-дисками, но только не десктопными, а пуст и самыми дешевыми, но enterprise-уровня. Поскольку надежность этих дисков на порядок ниже по сравнению с классическими SAS, то RAID 10 будет как нельзя кстати.
Итак, конфигурация терминального сервера для работы от 7 до 10 сотрудников бухгалтерии (1с, эксель, браузер, почта) имеет следующий вид:
- ← Windows Server 2012 R2 Products and Editions Comparison
- Терминальный сервер 1С RemoteApp →
Источник: blog.bissquit.com