Что нового

[Автоматизация] Отключение оффлайновых пользователей на ТерминальномСервере

Bliz

Новичок
Сообщения
2
Репутация
0
Задача: в заданное время, допустим в час ночи, отключать всех оффлайновых пользователей от сервера.

Получившийся код:

Код:
Global Const $tagWTS_SESSION_INFO = 'dword SessionId;ptr WinStationName;uint State'
$Ret = DllCall('wtsapi32.dll', 'int', 'WTSEnumerateSessionsW', 'ptr', 0, 'dword', 0, 'dword', 1, 'ptr*', 0, 'dword*', 0)
$Offset = 0
For $i = 1 To $Ret[5]
    $tInfo = DllStructCreate($tagWTS_SESSION_INFO, $Ret[4] + $Offset)
    $Offset += DllStructGetSize($tInfo)
	$WinStationName=DllStructGetData(DllStructCreate('wchar[1024]', DllStructGetData($tInfo, 'WinStationName')), 1)
	$SessionId=DllStructGetData($tInfo, 'SessionId')
	$State=DllStructGetData($tInfo, 'State')
	if StringLen($WinStationName)=0 AND StringInStr($State,"4")>0 then
 		$RetSes = DllCall('wtsapi32.dll', 'int', 'WTSLogoffSession', "hwnd", 0, 'dword',DllStructGetData($tInfo, 'SessionId'),'bool', False)
	endif
Next
DllCall('wtsapi32.dll', 'none', 'WTSFreeMemory', 'ptr', $Ret[4])

Работает на следующих ОС:
- Windows Server 2003 R2 SP2 32 bit
- Windows Server 2008 Enterprise SP 2 32 bit

Не работает для ОС:
- Windows Server 2008 R2 Standart 64 bit

Возможно надо использовать какую то другую dll для 64 битной винды. Подскажите куда копать?
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Предупреждение За нарушение правил форума (пункт В.11):
Любые отрывки AutoIt кода необходимо заключать в тег [autoit]
autoit.gif
(подробнее), а обычный код соответственно в тег [code]
code.gif
(подробнее). Также большие выдержки текста помещайте под тег [spoiler]
spoiler.gif
(подробнее), там где это поддерживается естественно. Как в случае с названием темы, также короткое и эргономичное сообщение привлекает больше внимания, и шансы на получение конкретного ответа увеличиваются.


С уважением, ваш Модератор.
 
Автор
B

Bliz

Новичок
Сообщения
2
Репутация
0
Проблема решена, оказалось почему то на этом сервере, у меня не хватало прав для того, чтобы сделать выход из системы для пользователя.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Bliz [?]
Проблема решена
[info border=#0000ff float=left]На форуме принято помечать тему решенной после получения ответа на свой вопрос!
Вверху или внизу темы нажмите на ссылку такого вида:
package_old.gif
Тема не решена
[/info]
 
Верх