Сбой WTSQueryUserToken, getlasterror () возвращает 1723 - PullRequest
0 голосов
/ 11 ноября 2009

У меня есть служба Windows, которая работает под учетными данными системной учетной записи. Служба периодически опрашивает окна для идентификатора активного сеанса консоли, то есть для интерактивного пользователя, вошедшего в систему, и затем извлекает маркер пользователя, связанный с идентификатором активного сеанса консоли, путем привязки функции wtsapi32.dll WTSQueryUserToken (…). Эта реализация работает безупречно 99,9% времени в полевых условиях. Однако в последнее время я нашел клиента, которому периодически (но никогда не всегда) не удается получить токен пользователя с идентификатором сеанса активной консоли.

См. Информацию о клиенте в нижней части этого поста.

При сбое WTSQueryUserToken () GetLastError () возвращает системный код ошибки Windows 1723.

Описание кода ошибки 1723: «Сервер RPC слишком занят для выполнения этой операции»

Вот пример кода, демонстрирующий реализацию:

int ActiveSession = 0;
Win32Wrapper.GetActiveConsoleSessionId(ref ActiveSession);
IntPtr UserToken = IntPtr.Zero;

if(!Win32Wrapper.WTSQueryUserToken(ActiveSession, ref UserToken))
{
   int myErr = Convert.ToInt32(Win32Wrapper.GetLastError());
   log("Failed to retrieve UserToken." + myErr.ToString());
   return;
}
else
{
   log("Retrieved User Token");
}

Кто-нибудь знает, кто может быть виновником?

Вот настройки клиента:

  • Аутентификация: Active Directory
  • Операционная система:
  • Microsoft Windows NT 5.1.2600 Service
  • Пакет 3 Текущая культура интерфейса: en-US
  • Текущая культура: en-US CLR
  • Версия: 2.0.50727.3603
  • IE версия: 8.0.6001.18702
  • Тип системы: 32-битная Бесплатная
  • Физическая память: всего 411 МБ
  • Физическая память: 893 МБ, система
  • Производитель: Dell Inc.
  • Модель: Vostro 1000
  • Процессор 1: Двухъядерный процессор AMD Athlon (tm) 64 X2 TK-57

Услуги:

Имя: Alerter Режим запуска: отключен Состояние: остановлено Имя: Служба шлюза прикладного уровня Режим запуска: ручной Состояние: Бег Название: Apple Mobile Device Режим запуска: Авто Состояние: Бег Название: Управление приложениями Режим запуска: ручной Состояние: остановлено Имя: ASP.NET Государственная служба Режим запуска: ручной Состояние: остановлено Имя: Ати ХотКей Поллер Режим запуска: Авто Состояние: Бег Название: Windows Audio Режим запуска: Авто Состояние: Бег Название: Фоновая интеллектуальная служба передачи Режим запуска: Авто Состояние: Бег Название: Bonjour Service Режим запуска: Авто Состояние: Бег Имя: Браузер компьютера Режим запуска: Авто Состояние: Бег Наименование: Служба индексирования Режим запуска: ручной Состояние: остановлено Название: ClipBook Режим запуска: отключен Состояние: остановлено Имя: .NET Runtime Optimization Service v2.0.50727_X86 Режим запуска: ручной Состояние: остановлено Имя: Системное приложение COM + Режим запуска: ручной Состояние: остановлено Наименование: Криптографические услуги Режим запуска: Авто Состояние: Бег Имя: Сервер запуска процесса DCOM Режим запуска: Авто Состояние: Бег Имя: DHCP-клиент Режим запуска: Авто Состояние: Бег Имя: Административная служба диспетчера логических дисков Режим запуска: ручной Состояние: остановлено Имя: Менеджер логических дисков Режим запуска: Авто Состояние: Бег Имя: DNS-клиент Режим запуска: Авто Состояние: Бег Название: Проводной АвтоКонфигурация Режим запуска: ручной Состояние: остановлено Имя: расширяемая служба протокола аутентификации Режим запуска: ручной Состояние: остановлено Имя: Служба сообщений об ошибках Режим запуска: отключен Состояние: остановлено Название: Журнал событий Режим запуска: Авто Состояние: Бег Название: COM + Event System Режим запуска: ручной Состояние: Бег Имя: Совместимость с быстрым переключением пользователей Режим запуска: ручной Состояние: остановлено Название: FlipShare Сервис Режим запуска: Авто государственный: Бег Название: Windows Presentation Foundation Font Cache 3.0.0.0 Режим запуска: ручной Состояние: остановлено Имя: Помощь и Поддержка Режим запуска: Авто Состояние: Бег Имя: HID Input Service Режим запуска: Авто Состояние: Бег Наименование: Ключ работоспособности и служба управления сертификатами Режим запуска: ручной Состояние: остановлено Имя: HTTP SSL Режим запуска: ручной Состояние: остановлено Имя: InstallDriver Table Manager Режим запуска: ручной Состояние: остановлено Имя: Windows CardSpace Режим запуска: ручной Состояние: остановлено Имя: IMAPI CD-Burning COM Сервис Режим запуска: отключен Состояние: остановлено Название: iPod Сервис Режим запуска: ручной Состояние: остановлено Название: Java Quick Starter Режим запуска: отключен Состояние: остановлено Имя: Сервер Режим запуска: Авто Состояние: Бег Имя: Рабочая станция Режим запуска: Авто Состояние: Бег Название: TCP / IP NetBIOS Helper Режим запуска: Авто Состояние: Бег Имя: McAfee Framework Service Режим запуска: Авто Состояние: Бег Имя: McAfee McShield Режим запуска: Авто Состояние: Бег Имя: McAfee Task Manager Режим запуска: Авто Состояние: Бег Имя: Диспетчер отладки машины Режим запуска: Авто Состояние: Бег Имя: Messenger Режим запуска: отключен Состояние: остановлено Имя: Vision Control Manager Режим запуска: отключен Состояние: остановлено Имя: общий доступ к удаленному рабочему столу NetMeeting Режим запуска: отключен Состояние: остановлено Имя: координатор распределенных транзакций Режим запуска: ручной Состояние: остановлено Имя: установщик Windows Режим запуска: ручной Состояние: остановлено Имя: Агент защиты доступа к сети Режим запуска: ручной Состояние: остановлено Название: Сеть DDE Режим запуска: отключен Состояние: остановлено Название: Сеть DDE DSDM Режим запуска: отключен Состояние: остановлено Имя: Net Logon Режим запуска: Авто Состояние: Бег Имя: Сетевые подключения Режим запуска: ручной Состояние: Бег Название: Net.Tcp Port Sharing Service Режим запуска: отключен Состояние: остановлено Название: Информация о местоположении сети (NLA) Режим запуска: ручной Состояние: Бег Имя: Агент NLCS Режим запуска: Авто Состояние: Бег Название: Поставщик поддержки безопасности NT LM Режим запуска: отключен Состояние: остановлено Имя: Съемное хранилище Режим запуска: ручной Состояние: остановлено Имя: Служба диагностики Microsoft Office Режим запуска: отключен Состояние: остановлено Имя: Office Source Engine Режим запуска: ручной Состояние: остановлено Название: подключи и играй Режим запуска: Авто Состояние: Бег Название: Pml Driver HPZ12 Режим запуска: Авто Состояние: остановлено Наименование: IPSEC Services Режим запуска: Авто Состояние: Бег Имя: Защищенное хранилище Режим запуска: Авто Состояние: Бег Имя: Диспетчер автоматического подключения удаленного доступа Режим запуска: ручной Состояние: остановлено Имя: Диспетчер подключений удаленного доступа Режим запуска: ручной Состояние: остановлено Имя: Диспетчер сеансов справки удаленного рабочего стола Режим запуска: ручной Состояние: остановлено Название: Маршрутизация и удаленный доступ Режим запуска: отключен Состояние: остановлено Имя: Удаленный реестр Режим запуска: отключен Состояние: остановлено Имя: локатор удаленного вызова процедур (RPC) Режим запуска: ручной Состояние: остановлено Имя: Удаленный вызов процедур (RPC) Режим запуска: Авто Состояние: Бег Имя: QoS RSVP Режим запуска: ручной Состояние: остановлено Имя: Менеджер учетных записей безопасности Режим запуска: Авто Состояние: БегИмя: Смарт-карта Режим запуска: ручной Состояние: остановлено Имя: Планировщик задач Режим запуска: Авто Состояние: Бег Имя: вторичный вход Режим запуска: Авто Состояние: Бег Имя: Уведомление о системных событиях Режим запуска: Авто Состояние: Бег Название: Брандмауэр Windows / Общий доступ к Интернету (ICS) Режим запуска: Авто Состояние: Бег Имя: Обнаружение оборудования Shell Режим запуска: Авто Состояние: Бег Имя: Print Spooler Режим запуска: Авто Состояние: Бег Название: Служба восстановления системы Режим запуска: Авто Состояние: остановлено Имя: Служба обнаружения SSDP Режим запуска: ручной Состояние: Бег Название: Windows Image Acquisition (WIA) Режим запуска: Авто Состояние: Бег Название: MS Software Shadow Copy Provider Режим запуска: ручной Состояние: остановлено Имя: Служба системного интерфейса Режим запуска: Авто Состояние: Бег Имя: журналы производительности и оповещения Режим запуска: отключен Состояние: остановлено Имя: Телефония Режим запуска: отключен Состояние: остановлено Имя: Терминальные услуги Режим запуска: ручной Состояние: Бег Название: Темы Режим запуска: отключен Состояние: остановлено Имя: Телнет Режим запуска: отключен Состояние: остановлено Имя: Клиент для отслеживания распределенных ссылок Режим запуска: Авто Состояние: Бег Имя: Хост универсального устройства Plug and Play Режим запуска: ручной Состояние: остановлено Наименование: Источник бесперебойного питания Режим запуска: отключен Состояние: остановлено Название: Volume Shadow Copy Режим запуска: ручной Состояние: остановлено Название: Windows Time Режим запуска: Авто Состояние: Бег Имя: WebClient Режим запуска: Авто Состояние: Бег Имя: Защитник Windows Режим запуска: Авто Состояние: Бег Имя: Инструментарий управления Windows Режим запуска: Авто Состояние: Бег Название: Dell Wireless WLAN Tray Service Режим запуска: Авто Состояние: Бег Название: Служба серийных номеров портативных носителей Режим запуска: отключен Состояние: остановлено Имя: Расширения драйвера инструментария управления Windows Режим запуска: ручной Состояние: остановлено Имя: Адаптер производительности WMI Режим запуска: ручной Состояние: остановлено Имя: Служба общего доступа к проигрывателю Windows Media Режим запуска: ручной Состояние: остановлено Наименование: Центр безопасности Режим запуска: Авто Состояние: остановлено Название: Windows Search Режим запуска: Авто Состояние: Бег Название: Автоматические обновления Режим запуска: Авто Состояние: Бег Имя: Windows Driver Foundation - Каркас драйвера в пользовательском режиме Режим запуска: ручной Состояние: остановлено Имя: Конфигурация беспроводной ноль Режим запуска: Авто Состояние: остановлено Название: Служба обеспечения сети Режим запуска: ручной Состояние: остановлено

Процессы:

Имя: процесс простоя системы Рабочий набор: 28 КБ Имя: Система Рабочий набор: 244 КБ Имя: smss.exe Рабочий набор: 428 КБ Имя: csrss.exe Рабочий набор: 3984 КБ Имя: winlogon.exe Рабочий набор: 3944 КБ Имя: services.exe Рабочий набор: 3612 КБ Имя: lsass.exe Рабочий набор: 5344 КБ Имя: ati2evxx.exe Рабочий набор: 3036 КБ Имя: svchost.exe Рабочий набор: 5076 КБ Имя: svchost.exe Рабочий набор: 5384 КБ Имя: MsMpEng.exe Рабочий набор: 39384 КБ Имя: svchost.exe Рабочий набор: 23792 КБ Имя: svchost.exe Рабочий набор: 4280 КБ Имя: svchost.exe Рабочий набор: 4944 КБ Имя: WLTRYSVC.EXE Рабочий набор: 1652 КБ Имя: BCMWLTRY.EXE Рабочий набор: 9820 КБ Имя: spoolsv.exe Рабочий набор: 8364 КБИмя: svchost.exe Рабочий набор: 5356 КБ Имя: AppleMobileDeviceService.exe Рабочий набор: 4284 КБ Имя: mDNSResponder.exe Рабочий набор: 4368 КБ Имя: FlipShareService.exe Рабочий набор: 5316 КБ Имя: FrameworkService.exe Рабочий набор: 6048 КБ Имя: mcshield.exe Рабочий набор: 55800 КБ Имя: vstskmgr.exe Рабочий набор: 564 КБ Имя: mdm.exe Рабочий набор: 2748 КБ Имя: csagtprosvc.exe Рабочий набор: 5644 КБ Имя: naPrdMgr.exe Рабочий набор: 2044 КБ Имя: svchost.exe Рабочий набор: 4308 КБ Имя: searchindexer.exe Рабочий набор: 20460 КБ Имя: svchost.exe Рабочий набор: 21864 КБ Имя: unsecapp.exe Рабочий набор: 3828 КБ Имя: alg.exe Рабочий набор: 4336 КБ Имя: wmiprvse.exe Рабочий набор: 7576 КБ Имя: ati2evxx.exe Рабочий набор: 3600 КБ Имя: explorer.exe Рабочий набор: 33096 КБ Имя: SynTPEnh.exe Рабочий набор: 4736 КБ Имя: WLTRAY.EXE Рабочий набор: 6644 КБ Имя: MSASCui.exe Рабочий набор: 7824 КБ Имя: shstat.exe Рабочий набор: 820 КБ Имя: UdaterUI.exe Рабочий набор: 2304 КБ Имя: stsystra.exe Рабочий набор: 8100 КБ Имя: Mctray.exe Рабочий набор: 2396 КБ Имя: ctfmon.exe Рабочий набор: 3252 КБ Имя: DyKnowLogSender.exe Рабочий набор: 23972 КБ

Ответы [ 2 ]

1 голос
/ 20 февраля 2010

У меня была эта проблема однажды. Поэтому я советую повторить этот вызов через некоторое время (используя Sleep). Если это работает на 99%, то, вероятно, это будет работать после попытки еще несколько раз. Я также добавил бы счетчик, чтобы не было бесконечного цикла.

0 голосов
/ 12 ноября 2009

Win32Wrapper.GetLastError действительно вызывает GetLastError? Эта функция не может быть надежно вызвана из управляемого кода. Вместо этого вы должны добавить SetLastError = true в атрибут DllImport всех функций, которые устанавливают ошибку (WTSQueryUserToken в вашем случае), а затем проверить результат с помощью Marshal.GetLastWin32Error ().

...