Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


При наличии в сети WINS-сервера список активных клиентов службы сообщений удобно получать через "NETSH WINS"... фишка в том, что при запуске компа и при регистрации пользователя служба сообщений регистрирует на WINS-сервере запись с кодом [03], а при выключении (штатном) освобождает эту запись... Т.е. список активных записей в норме соответствует списку компов/пользователей, готовых к получению сообщений. Из этого даже можно извлечь выгоду - не рассылать сообщения на машины без залогиненных пользователей.

Один минус - WINS не отличает компьютер от пользователя, поэтому сообщения могут уйти дважды... но обычно в организациях система именования пользователей и станций отличается, поэтому их можно фильтровать регулярным выражением (через FINDSTR) или применять другие методы (например, сверять со списком машин/пользователей). Для надежности и учета незапланированных отключений света можно совмещать с пингом, который привел выше Petya V4sechkin. Пример команды "NETSH WINS":
Код: Выделить весь код
@Echo Off
SetLocal EnableDelayedExpansion

Set $WINS=MyServer

For /F "Tokens=1 Delims=[ " %%i In ('Netsh WINS Server \\%$WINS% Show Database Servers^={} RecType^=2 EndChar^=3^|FindStr /IBRC:"................\[03h\]-D-A"') Do (
	Set MSGCLIENT=%%i
	@Echo !MSGCLIENT!
)

Отправлено: 06:23, 10-09-2008 | #6