Второй метод разлогинить пользователя на терминальном сервере
Второй метод, похож на первый, за исключением того, что нам необходимо залогиниться на нужный сервер, открыть оснастку «Диспетчер задач» и уже из него произвести выход пользователя. Сказано сделано, о том, как вам попадать на нужного участника RDS фермы я рассказывал. Далее щелкаем правым кликом по области пуска и из контекстного меню выбираем пункт «Диспетчер задач». Кстати, вызвать «Диспетчер задач» можно и через сочетание клавиш CTRL+SHIFT+ESC.
Находим нужного нам пользователя и щелкаем по нему правым кликом, в контекстном меню. нас будет интересовать пункт «Выйти». Выбираем его и завершаем сессию пользователя.
Бывает так, что первые два метода не помогают в случаях, когда пользовательская сессия зависает на терминальном сервере, вы вроде бы из графического интерфейса делаете выход, но оно не отрабатывает. В таких случаях нужно использовать утилиты командной строки или PowerShell
Сводка
Когда нелицензионный клиент впервые подключается к терминаловому серверу, сервер терминала выдает клиенту маркер временной лицензии клиентского доступа к терминалу сервера (CAL). После входа пользователя в сеанс сервер терминала поручит серверу лицензии отметить выданный временный маркер Cal Terminal Server как проверяемый. При следующем подключении клиента будет предпринята попытка обновить проверенный временный маркер CAL терминала Server до полного маркера Cal Terminal Server. Если нет токенов лицензии, временный маркер Cal Terminal Server будет работать в течение 90 дней. Лицензия хранится в реестре клиента.
32-битные клиенты RDP хранят лицензию под ключом .
Важно!
В этот раздел, описание метода или задачи включены действия, содержащие указания по изменению параметров реестра. Однако неправильное изменение параметров реестра может привести к возникновению серьезных проблем. Поэтому следует в точности выполнять приведенные инструкции. Для дополнительной защиты создайте резервную копию реестра, прежде чем редактировать его. Так вы сможете восстановить реестр, если возникнет проблема. Дополнительные сведения о том, как создать и восстановить реестр, см. в этой информации, как создать и восстановить реестр в Windows.
Описание проблемы
Есть RDS ферма из 15 хостов подключений на Windows Server 2012 R2. Сервера на то они и сервера, что работают постоянно. Если у вас на ферме не настроены тайм ауты времени беспрерывной работы, то пользователи могут неделями или месяцами висеть в авторизованных подключениях. Логично предположить, что это не очень хорошо и ведет к различным последствиям, одно из которых, это полное зависание сеанса, при котором человек не может подключиться к терминальному серверу и видит сообщение «Работает служба профилей пользователей» или еще вариант «Не удается завершить требуемую операцию», я уже не говорю про повреждение пользовательского профиля. В результате того, что RDS брокеры видят. что пользователь уже залогинен, они не дают ему переподключиться к другому Session Host серверу, даже если вы закроете на текущем новые подключения. Пока вы не сделаете выход пользователя из системы для этой сессии, она так и будет мешать. Давайте разбираться, как это делать.
Удаление устаревших профилей через Delprof2: User Profile Deletion Tool
Второй метод, который подошел мне, это использование бесплатной утилиты Delprof2: User Profile Deletion Tool. Delprof2 удаляет неактивные профили пользователей. Если вы хотите освободить место на диске, просто запустите его без параметров, и он удалит все профили, кроме вашего собственного, и некоторые специальные профили, необходимые для операционной системы. Delprof2 имеет дополнительные параметры фильтрации: вы можете удалить только локально кэшированные копии перемещаемых профилей или удалить только те профили, которые не использовались в течение указанного количества дней. Delprof2 делает все как в локальной системе, так и удаленно.
Профили пользователей часто имеют разрешения, установленные для них таким образом, что даже администраторы не имеют доступа без предварительной обработки ACL. Delprof2 обходит это требование, используя права резервного копирования и восстановления для анализа и удаления даже самых надежно защищенных профилей.
Устранение неполадок Windows: как удалить поврежденный профиль пользователя из реестра — статьи TechNet — США (английский)
После полного удаления профиля пользователя иногда мы получаем это событие при создании нового профиля, когда он перестает создавать новый профиль на сервере.
Step1:
В меню «Выполнить» введите Regedit и нажмите клавишу Enter.
Открытый редактор реестра.
Перейти в это место.
Сделайте резервную копию реестра — рекомендуется — щелкните правой кнопкой мыши «Экспорт» и сохраните ее.
Вы можете найти GUID с расширением .bak, где их можно удалить:
HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ ProfileList
Выйдите из системы и войдите снова.
Профиль пользователя должен создаваться без проблем.
В целях тестирования поврежденный профиль можно легко переименовать в .old с помощью следующего сценария PowerShell:
$ objUser = New-Object System.Security.Principal.NTAccount (Read-Host -Prompt «Enter Username» ) $ strSID = $ objUser.Translate () # $ strSID.Value Rename-Item -Path «HKLM: \ Software \ Microsoft \ Windows NT \ CurrentVersion \ ProfileList \ $ ($ strSID.Значение) «-NewName» $ ($ strSID.Value) .old «
Проверка состояния протокола RDP
Проверка состояния протокола RDP на локальном компьютере
Сведения о том, как проверить и изменить состояние протокола RDP на локальном компьютере, см. в разделе (Как включить удаленный рабочий стол).
Примечание
Если параметры удаленного рабочего стола недоступны, см. раздел .
Проверка состояния протокола RDP на удаленном компьютере
Важно!
В точности следуйте инструкциям из этого раздела. Неправильное изменение реестра может вызвать серьезные проблемы. Прежде чем редактировать реестр, создайте резервную копию реестра, чтобы вы могли восстановить его в случае ошибки.
Чтобы проверить и изменить состояние протокола удаленного рабочего стола на удаленном компьютере, используйте подключение сетевого реестра:
- Сначала откройте меню Пуск и выберите Выполнить. В появившемся текстовом поле введите regedt32.
- В редакторе реестра нажмите Файл и выберите пункт Подключить сетевой реестр.
- В диалоговом окне Выбор: «Компьютер» введите имя удаленного компьютера, выберите Проверить имена и нажмите кнопку ОК.
- Перейдите в раздел HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server и в раздел HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services.
- Если раздел fDenyTSConnections имеет значение , значит протокол RDP включен.
- Если раздел fDenyTSConnections имеет значение 1, значит протокол RDP отключен.
- Чтобы включить протокол RDP, для fDenyTSConnections замените значение 1 на .
Проверка блокировки объектом групповой политики протокола RDP на локальном компьютере
Если не удается включить протокол RDP в пользовательском интерфейсе или для fDenyTSConnections возвращается значение 1 после его изменения, объект групповой политики может переопределять параметры на уровне компьютера.
Чтобы проверить конфигурацию групповой политики на локальном компьютере, откройте окно командной строки с правами администратора и введите следующую команду:
Когда команда будет выполнена, откройте файл gpresult.html. Выберите Конфигурация компьютера\Административные шаблоны\Компоненты Windows\Службы удаленных рабочих столов\Узел сеансов удаленных рабочих столов\Подключения и найдите политику Разрешить пользователям удаленное подключение с использованием служб удаленных рабочих столов.
-
Если для параметра этой политики задано значение Включено, групповая политика не блокирует подключения по протоколу RDP.
-
Если же для параметра этой политики задано значение Отключено, проверьте результирующий объект групповой политики. Ниже показано, какой объект групповой политики блокирует подключения по протоколу RDP.
Проверка блокировки объектом групповой политики протокола RDP на удаленном компьютере
Чтобы проверить конфигурацию групповой политики на удаленном компьютере, нужно выполнить почти такую же команду, что и для локального компьютера.
В файле (gpresult-<computer name>.html), который создается после выполнения этой команды, используется такой же формат данных, как в версии файла для локального компьютера (gpresult.html).
Изменение блокирующего объекта групповой политики
Эти параметры можно изменить в редакторе объектов групповой политики (GPE) и консоли управления групповыми политиками (GPM). Дополнительные сведения об использовании групповой политики см. в статье Advanced Group Policy Management (Расширенное управление групповыми политиками).
Чтобы изменить блокирующую политику, используйте один из следующих методов.
- В GPE укажите определенный уровень для объекта групповой политики (локальный или доменный) и выберите Конфигурация компьютера > Административные шаблоны > Компоненты Windows > Службы удаленных рабочих столов > Узел сеансов удаленных рабочих столов > Подключения > Разрешить пользователям удаленное подключение с использованием служб удаленных рабочих столов.
- Задайте для политики значение Включена или Не задана.
- На затронутых компьютерах откройте окно командной строки с правами администратора и выполните команду gpupdate /force.
- В GPM перейдите к подразделению, в котором блокирующая политика применяется к соответствующим компьютерам, и удалите эту политику.
Настройка для терминального сервера на Windows 2008 R2
Если вы счастливый обладатель терминальной фермы на Windows Server 2008 R2, то тут ошибка «Таймер входа в систему истек. Превышена общая длительность сеанса. Через две минуты сеанс будет отключен. Сохраните все файлы сейчас.» решается следующим образом; Открываете кнопку пуск — Администрирование — Службы удаленных рабочих столов — Конфигурация узла сеансов удаленных рабочих столов. Это была отличнейшая оснастка в старой операционной системе, жалко, что ее потом убрали.
Либо можете почувствовать себя гуру и открыть оснастку «Конфигурация узла сеансов удаленных рабочих столов» через команду mmc.
Далее щелкаем по пункту «RDP-Tcp Microsoft RDP 7.1»
Тут те же параметры, выбираем нужное значение для «Ограничение активного сеанса» и забываем про окно с уведомлением «Таймер входа в систему истек»
Дополнительные варианты решения
Если у вам не помогло мое решение и ошибка «Не удается завершить требуемую операцию, поскольку службы удаленных рабочих столов сейчас заняты» у вас все так же высвечивается, то можно попробовать все же перезагрузить нужный хост. Если перезагрузка не помогла, то советую проверить настройки на стороне клиента, а именно в окне mstsc (Подключение к удаленному рабочему столу), выберите показать параметры.
Перейдите на вкладку «Взаимодействие» и снимите галку «Постоянное кэширование точечных рисунков»
В большинстве случаев, это решает проблему. Если вам это не помогло, то советую:
- Проверить не блокируется ли трафик со стороны клиентской станции и со стороны узла подключения.
- Проверьте нагрузку на сеть и наличие антивируса, такое было уже при сообщении «Работает служба профилей пользователей»
- Убедитесь, что у вас доступен сервер лицензирования вашей терминальной фермы и хватает ли лицензий на пользователей или компьютеры.
- Microsoft в случае с Windows 7 или Windows Server 2008 R2, рекомендует установить патч (https://support.microsoft.com/ru-ru/help/3014783/remote-desktop-services-is-currently-busy-or-the-group-policy-client-f) и вообще полностью обновить ваши системы
- Так же если вы можете попасть на сервер по RDP или консольно, то можете попытаться перезапустить службу удаленных рабочих столов из оснастки «Службы» или в командной строке выполнив net stop termservice && net start termservice, так же не забываем, что вы можете удаленно перезапустить службу RDP, я это описывал используя утилиту PsExec.exe
- Ну уж коли больше ничего не помогает, то пробуйте простую перезагрузку сервера, главное не забывайте предупредить пользователей в их сессиях, если кто-то еще остался там работать
Надеюсь вам удалось устранить ошибку подключения «Не удается завершить требуемую операцию, поскольку службы удаленных рабочих столов сейчас заняты. Повторите попытку через несколько минут. Другие пользователи должны по-прежнему иметь возможность входа». С вами был Иван Семин, автор и создатель IT блога Pyatilistnik.org,
Удаление старых профилей пользователей Windows с помощью GPO или PowerShell
На рабочих станциях и серверах Windows, особенно на терминальных серверах RDS (Remote Desktop Services), периодически возникает необходимость очистки каталога C:\Users от старых профилей пользователей (уволенные пользователи, пользователи, которые долго не используют сервер и т.д.).
Основная проблема терминальных серверов – постоянный рост размеров каталогов профилей пользователей на диске. Частично эта проблема решается политиками квотирования размера профиля пользователя с помощью FSRM или NTFS квот, перемещаемыми папками и т.д. Но при большом количестве пользователей терминального сервера в папке C:\Users со временем накапливается огромное количество каталогов с ненужными профилями пользователей.
Метод работы
Все операционные системы Windows, начиная с Windows NT 3.1 , поддерживают перемещаемые профили. Обычно автономный компьютер хранит документы пользователя, элементы рабочего стола, настройки приложений и внешний вид рабочего стола на локальном компьютере в двух разделенных частях, состоящих из части, которая может перемещаться, и дополнительной временной части, содержащей такие элементы, как кэш веб-браузера. Реестр Windows аналогично делится на поддержку роуминга; существуют кусты System и Local Machine, которые остаются на локальном компьютере, а также отдельный куст User (HKEY_CURRENT_USER), предназначенный для перемещения с помощью профиля пользователя.
Когда создается перемещающийся пользователь, информация профиля пользователя вместо этого сохраняется на централизованном файловом сервере, доступном с любого подключенного к сети настольного компьютера. Запрос входа на локальный компьютер проверяет, существует ли пользователь в домене, а не на локальном компьютере; на локальном компьютере уже существующая учетная запись не требуется. Если вход в домен прошел успешно, перемещаемый профиль копируется с центрального файлового сервера на настольный компьютер, и для пользователя создается локальная учетная запись.
Когда пользователь выходит из системы с настольного компьютера, перемещаемый профиль пользователя объединяется с локального компьютера обратно на центральный файловый сервер, не включая временные элементы локального профиля. Поскольку это слияние, а не перемещение / удаление, информация профиля пользователя остается на локальном компьютере в дополнение к слиянию с сетью.
Когда пользователь входит в систему на втором настольном компьютере, этот процесс повторяется, объединяя перемещаемый профиль с сервера на второй настольный компьютер, а затем снова сливаясь с рабочего стола на сервер, когда пользователь выходит из системы.
Когда пользователь возвращается к первому настольному компьютеру и входит в систему, перемещаемый профиль объединяется с предыдущей информацией профиля, заменяя ее. Если кэширование профиля включено, сервер может объединять только самые новые файлы с локальным компьютером, повторно используя существующие локальные файлы, которые не изменились с момента последнего входа в систему, и тем самым ускоряет процесс входа в систему.
Шаг 4. Создание и декодирование трассировки
Если не удается устранить проблему с помощью событий, можно создать журнал трассировки (ETL-файл) при воспроизведении проблемы, а затем декодировать его с помощью общедоступных символов с сервера символов (Майкрософт). Журналы трассировки предоставляют конкретные сведения о том, что делает служба профилей пользователей, и могут помочь выявить место возникновения сбоя.
Оптимальная стратегия использования трассировки ETL — сначала записывать наименьшие возможные журналы. После декодирования журнала выполните поиск ошибок в нем.
Вот как создать и декодировать трассировку для службы профилей пользователей:
-
Войдите на компьютер, на котором пользователь столкнулся с проблемами, используя учетную запись члена локальной группы администраторов.
-
В командной строке с повышенными привилегиями введите следующие команды, где <Path> — это путь к локальной папке, созданной ранее, например, C:\logs:
-
На начальном экране выберите имя пользователя, а затем выберите команду Переключить учетную запись, будьте внимательны и не выходите из учетной записи администратора. Если вы используете удаленный рабочий стол, закройте сеанс администратора, чтобы установить сеанс пользователя.
-
Воспроизведите проблему. Эта процедура обычно заключается в том, чтобы войти в систему в качестве пользователя, испытывающего проблему, выйти из системы, или и то, и другое.
-
После воссоздания проблемы войдите в систему опять с правами локального администратора.
-
В командной строке с повышенными привилегиями выполните следующую команду, чтобы сохранить журнал в ETL-файле:
-
Введите следующую команду, чтобы экспортировать ETL-файл в файл, доступный для чтения, в текущем каталоге (возможно, в домашней папке или папке %WINDIR%\System32):
-
Откройте файл Summary.txt и файл Dumpfile.xml (их можно открыть в Microsoft Excel, чтобы упростить просмотр подробных сведений журнала). Найдите события, которые включают отказ или сбой. Можно спокойно пропускать строки, содержащие имя события Unknown (Неизвестно).
Удаляем профиль пользователя Windows 2008 правильно
Есть у меня один терминальный сервер на Windows 2008, который предоставляет пользователям доступ к приложению по технологии RemoteApp.Критичность сервиса низкая, критичность приложения еще ниже. Поэтому когда у пользователя наблюдались какие-то непонятные проблемы с приложением, я просто удалял его профиль, он входил в систему и все было хорошо.Но в один прекрасный день профиль пользователя стал создаваться на в именной папке (%username%), а во временной папке типа TEMP.XXX. Поковыряв логи я так и не понял, почему это происходит, и забил.Однако через некоторое время мне это надоело и я решил все-таки разобраться.
Запустив поиск по реестру с помощью regedit с логином пользователя в качестве параметра, я был несколько обескуражен тем, что результат поиска был нулевой.Тогда я решил выполнить поиск по SID. Немного погулив, я наткнулся на эту запись. Заглянув в ключ
я нашел там раздел с SID’ом проблемного пользователя в качестве имени, а среди значений этого раздела нашел и строковый раздел с логином пользователя (ах, эта Windows, почему сразу не выдать мне это при поиске?)То есть, этот пользователь в реестре все еще присутствовал. Посмотрев внимательно на имя раздела (то бишь, расширив левую часть окна regedit’а), я увидел, что имя раздела кроме SID’а пользователя содержит приписку
Мозг сказал, что решение где-то рядом :)Профиль уже был удален… Экспортировав на всякий случай раздел, я его безжалостно удалил. И… вот оно! Пользователь смог нормально зайти в систему, и для него создался профиль в каталоге, носящем гордое имя, в качестве которого подставился логин пользователя.
Вывод: профили надо удалять правильно!
Нравится Загрузка…
Как удалить старые профили пользователей с помощью GPO и PowerShell?
На рабочих станциях и серверах Windows, особенно на серверах RDS (службы удаленных рабочих столов), существует регулярная потребность в удалении старых (неиспользуемых) профилей пользователей из C: \ Users. Основная проблема любого сервера удаленного рабочего стола — это постоянный рост каталогов профилей пользователей на локальном диске. Частично это решается включением квот на максимальный размер профилей пользователей (с квотами FSRM или NTFS). Однако, если пользователей терминального сервера много, со временем в каталоге C: \ Users будет накапливаться огромное количество каталогов с профилями пользователей, которые больше не нужны.
Как вручную удалить профиль пользователя в Windows?
Многие начинающие администраторы Windows пытаются вручную удалить папку профиля пользователя из C: \ Users. Сделать это можно, если после удаления папки вручную вы удалите раздел профиля пользователя со ссылкой на эту папку из ключа реестра HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ ProfileList .
Правильный способ вручную удалить профиль пользователя в Windows — открыть Свойства системы, перейти к Advanced System Settings -> User Profiles -> Settings , выбрать пользователя в списке (в столбце Размер указан размер профиля на локальном диске) и нажмите кнопку Удалить .
Но это ручной метод, и вы можете автоматизировать его.
GPO: удалить профили пользователей старше указанного числа дней
В Windows есть встроенная групповая политика для автоматического удаления профилей пользователей старше xx дней. Вы можете найти политику Удалить профили пользователей старше указанного количества дней при перезапуске системы в разделе GPO Конфигурация компьютера -> Административные шаблоны -> Система -> Профили пользователей .Вы можете включить эту политику в редакторе локальной групповой политики (gpedit.msc) или с помощью политик домена в GPMC.msc.
Включите политику и укажите количество дней, в течение которых профиль пользователя считается активным. По истечении этого периода служба профилей пользователей Windows автоматически удалит профиль при следующем перезапуске. Здесь рекомендуется указывать период 45-90 дней.
Основные проблемы, связанные с этим автоматическим методом удаления профиля, — это ожидание перезапуска сервера и неизбирательность (нельзя запретить удаление определенных профилей пользователей, таких как локальные учетные записи, административные учетные записи и т. Д.). Кроме того, эта политика может не работать, если какое-либо стороннее программное обеспечение (чаще всего это антивирус) обращается к файлу NTUSER.DAT в профилях пользователей и обновляет дату последнего использования.
Сценарий PowerShell для удаления старых профилей пользователей в Windows
Вместо использования описанной выше политики профиля автоматической очистки вы можете использовать простой сценарий PowerShell для поиска и удаления профилей отключенных или неактивных пользователей.
Прежде всего, давайте попробуем подсчитать размер всех папок профилей пользователей в C: \ Users, используя простой скрипт из статьи Получение размеров каталогов в PowerShell:
Общий размер всех профилей пользователей в C: \ Users составляет 31,5 ГБ.
Выведем список пользователей, чьи профили не использовались более 60 дней. Чтобы найти их, вы можете использовать значение в поле LastUseTime профиля.
Оказалось, что на моем хосте RDS было 127 неактивных учетных записей пользователей (с общим размером профилей около 18 ГБ).
Чтобы удалить все эти профили, достаточно перенаправить список пользователей на команду Remove-WmiObject (перед запуском скрипта рекомендуется дважды проверить его вывод с помощью параметра –WhatIf):
Чтобы не удалять профили некоторых пользователей, например учетные записи System и Network Service , учетную запись локального администратора , учетные записи пользователей, имеющих активные сеансы, учетную запись (исключение список), вы можете изменить сценарий следующим образом :
Этот сценарий PowerShell можно запустить с помощью объекта групповой политики при завершении работы или с помощью сценария PoSh в планировщике задач.
Перед настройкой автоматического удаления профилей рекомендуется протестировать скрипт в вашей среде!
Вы можете изменить сценарий для автоматического удаления всех профилей пользователей, добавленных в определенную группу AD (например, группу DisabledUsers):