Метка: Windows Server 2019

  • Неактивные TS порты принтеров на RDS сервере

    Одной из распространённых проблем при использовании терминального (RDS/RDP) сервера, на который пробрасываются локальные принтеры с компьютеров пользователей в режиме RD Easy Print, заключается в большом количестве неактивных TS портов печати от перенаправленных принтеров ( Inactive TS Port ), которые накапливаются со временем. Все это вызывает проблемы с производительностью RDSH хоста, пропаданию перенаправленных принтеров в сессиях пользователей и другим проблем с печатью. При этом в Event Viewer могут появляться ошибки о превышении времени ожидания ответа от службы UmRdpService (перенаправитель портов пользовательского режима служб удаленного рабочего стола).

    Если вы столкнулись с проблемами печати с перенаправленными принтерами на RDS сервере, откройте консоль управления печатью ( printmanagement.msc ), и перейдите в раздел Ports. В моем случае в списке портов печати содержится несколько десятков неактивных портов с именами в формате TS001: Inactive TS Port.

    При подключении перенаправленного через RDP принтера, Print Spooler создает для каждого принтера виртуальный TS порт. Когда пользователь отключается от своей RDP сессии, такой порт не удаляется автоматически. Со временем количество неактивных TS портов может достигнуть десяток и сотен, что вызывает проблемы в работе службы печати Windows.

    Для предотвращения проблем с печатью на терминальных серверах можно использовать следующие подходы:

    • Пробрасывать в RDP сессию с компьютера пользователю только принтер, назначенный по умолчанию. Это уменьшит количество TS000 портов, который создаются на терминальном сервере. Для этого включите на RDS сервере параметр групповых политик Redirect only the default client printer (Перенаправлять только используемый по умолчанию принтер клиента) в разделе Computer Configuration -> Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host -> Printer Redirection
    • Периодически перезагружать RDS хост (это очищает порты печати)
    • Периодически удалять неактивные TS порты

    При попытке вручную удалить Inactive TS Port из консоли управления принт-сервера, появится ошибка:

    Не удаётся удалить выбранный порт. Операция не поддерживается.

    Очистить TS порты можно, удалив их из ветки реестра HKLMSYSTEMCurrentControlSetControlDeviceClasses{28d78fad-5a12-11d1-ae5b-0000f803a8c2}##?#ROOT#RDPBUS#0000#{28d78fad-5a12-11d1-ae5b-0000f803a8c2}

    Как вы видите, для каждого порта создан отдельный раздел с именем #TS001 и т.д.

    Подраздел реестра формата #TS001 можно удалять целиком, если в разделе device parameters в значении Port Description указано значение Inactive TS Port. После удаления ветки реестра, нужно перезапустить службу принт-спулера (временно нарушит печать с терминального сервера).

    Restart-Service Spooler

    Когда неактивных портов печати десятки и сотни, проще удалить их с помощью PowerShell скрипта:

     # Delete inactive TS Ports (Local Only) $Gegevens = Get-ChildItem -Path 'HKLM:SYSTEMCurrentControlSetControlDeviceClasses{28d78fad-5a12-11d1-ae5b-0000f803a8c2}##?#ROOT#RDPBUS#0000#{28d78fad-5a12-11d1-ae5b-0000f803a8c2}' -Recurse -ErrorAction SilentlyContinue ($Gegevens.Name) -replace "\Device parameters" | Select-Object -Unique | ForEach-Object {     $subkey = ($_ -replace "HKEY_LOCAL_MACHINE\", "HKLM:") + "Device Parameters" try {     $PortDescription = (Get-ItemProperty -Path $subkey -ErrorAction Stop)."Port Description"     if ($PortDescription -eq "Inactive TS Port") {         $subkeydelete = ($_ -replace "HKEY_LOCAL_MACHINE\", "HKLM:")         Write-Host "Deleting subkey on $env:COMPUTERNAME => $subkeydelete"         Remove-Item -Path $subkeydelete -Recurse -Force     } } catch {     Write-Host "Error accessing ${subkey}: $_" }  
    } Restart-Service Spooler

    Это очистит неактивные порты печати.


  • Автоматизация любых действий в браузере с помощью PowerShell и Selenium

    Для автоматизации различных действий в браузере из скриптов PowerShell можно использовать фреймворк Selenium. С помощью Selenium вы можете получить содержимое веб страницы так, как его видит пользователь (отрабатываются все скрипты Java, стили, куки) Чаще всего Selenium используется для (далее…)

  • Включаем аудит доступа к папкам и файлам в Windows

    Политики аудита файловой системы Windows позволяют отслеживать все события доступа к определенным файлам и папкам на диске. С помощью политик аудита вы можете выявить события создания, чтения, изменения, удаления файлов и папок на файловой системе NTFS в Windows. Чаще всего аудит файловой (далее…)

  • Добавляем папки в панель быстрого доступа Windows с помощью PowerShell

    В меню проводника Windows существует отдельная панель, в которой отображается список избранных папок. Панель навигации со списком папок быстрого доступа (Quick Access) отображается в левой верхней части окна File Explorer. Этот удобный инструмент Windows для быстрого к избранным папками, который (далее…)

  • Получаем логи печати принтеров из журнала событий Windows

    В Windows вы можете отслеживать использование принтеров пользователями с помощью журнала событий Windows. Все задания печати, которые отправляются на печать через Print Spooler оставляют след в логах Event Viewer. Если у вас развернут принт-сервер на Windows, вы можете использовать эти логи для (далее…)

  • Настройка размера и параметров журнала событий Windows

    В журналах событий Windows хранится полезная информация, которая нужна при анализе состояния служб и приложений в Windows, отладки ошибок и аварийный ситуаций, аудите различных событий безопасности. По умолчанию для журналов Event Viewer в Windows заданы максимальные размеры, при достижении которых (далее…)

  • Кто изменил права доступа к файлу или папке в Windows?

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

  • Просмотр и анализ событий (логов) Windows с помощью PowerShell

    Журнал событий Windows (Event Log) — это важный инструмент, который позволяет администратору отслеживать ошибки, предупреждения и другие информационные сообщения, которые регистрируются операционной системой, ее компонентами и различными программами. Для просмотра журнала событий Windows (далее…)

  • Import-CSV: Импорт (чтение) данных из CSV файлов в PowerShell

    Для чтения содержимого CSV файла можно использовать PowerShell командлет Import-CSV. После загрузки содержимого CSV файла, вы получаете объект PowerShell, в котором каждая колонка из CSV файла представляет собой отдельное свойство. В этой статье мы рассмотрим особенности использования командлета (далее…)