У меня сейчас есть сервер под управлением Windows 2000, скоро он обновится до 2003. Есть ли способ проверить статус пользователя и статус компьютера?
Например,
Неважно, если он не работает в Windows 2000, хотя было бы здорово, если бы он работал.
Спасибо за любую помощь :)
В серверной или клиентской операционной системе нет встроенных функций для выполнения каких-либо действий, которые вы просите (и вы не увидите каких-либо новых функций, перемещающихся с W2K на W2K3 на ваших серверах). Вам придется что-то кодировать, чтобы получить то, что вы хотите.
Что касается серверного компьютера, «вход в систему» не означает того, что вы думаете. «Интерактивный» вход в систему на клиентском компьютере определенно имеет время начала и время окончания. «Вход в систему» с клиента на удаленные серверные компьютеры будет зависеть от того, что делает клиент. Вход в службы терминалов от клиента к серверу является «интерактивным» и использует свойства собственного «интерактивного» сеанса клиента.
Я предполагаю, что вы, вероятно, захотите узнать продолжительность «интерактивного» сеанса на клиентском компьютере. Вы можете посмотреть, как запросить Win32_LogonSession WMI-класс как способ получить эту информацию.
Я думаю, вы думаете, что можете использовать журналы событий на серверном компьютере, чтобы выяснить, когда клиентские компьютеры проходят через "интерактивный" вход в систему. Вы не можете.
Выполнение начальной аутентификации домена или доступ к «подключенному» «диску» на серверном компьютере с клиентского компьютера представляет собой «сетевой» вход в систему, и время, связанное с входом в систему и выходом из системы, будет относиться к тому моменту, когда клиент начинает доступ к ресурсу и когда клиент (или сервер) закрывает соединение из-за бездействия (или "отключение" или "интерактивный" выход из клиентского сеанса пользователя).
Вы не должны думать о «Входах в домен» или сеансах Microsoft File and Print, таких как сеансы SSH или TELNET, имеющие фиксированную продолжительность, которая начинается, когда пользователь «входит в систему», и заканчивается, когда пользователь «выходит из системы». Соединение с серверным компьютером может прерываться и прерываться во время обычного использования клиентского компьютера. Использование журнала событий на стороне сервера для определения продолжительности «интерактивного» сеанса на клиентском компьютере бесполезно.
Здесь есть пример кода, чтобы определить, заблокирована ли рабочая станция: http://www.codeproject.com/KB/vb/DetectWindowslockunlock.aspx Опять же, вы можете адаптировать это из C # к любому языку, который может вызывать необходимые API.
Похоже, остальная часть того, что вы хотите знать, в основном находится в состоянии заставки. Вот статья Microsoft, в которой описывается проверка состояния экранной заставки с помощью вызова API Win32 (в примере используется VB, но вы можете сделать это на любом языке, который позволяет вызывать этот API): http://support.microsoft.com/kb/315725
Если вы определите «бездействие» как работающую заставку, то вы можете получить «бездействие» таким же образом. Если у вас есть другое определение «простоя», то вы сами по себе - ОС вам в этом не поможет.
Я не знаю точно, какова ваша цель (или какую проблему вы решаете), но если у вас есть программное обеспечение для удаленного рабочего стола, такое как VNC, работающее на клиенте, вы можете войти в него, чтобы увидеть, что происходит на консоли. Просто нужно помнить, что в бесплатной версии нет доступного шифрования; Похоже, вы хотели проверить, что делают клиентские машины, когда вы хотите их обновить.
Один из возможных способов сделать это - на сервере, который будут использовать клиенты, щелкните правой кнопкой мыши мой компьютер и перейдите по ссылке управления и проверьте открытые сеансы и список открытых файлов, затем, если у вас есть VNC на этих клиентах, подключитесь к IP и посмотрите в чем дело.
Или вы можете использовать "net send" из командной строки, чтобы транслировать, что вам нужно, чтобы все вышли из системы.
Боюсь, я не помню, работало ли это в 2000 году, но MMC управления файловым сервером должна позволять вам видеть, как долго сеанс с файловым сервером был открыт и как долго сеанс простаивал. Это не обязательно отражает полное состояние клиента.
Я не верю, что вы сможете узнать, заблокирован ли компьютер от файлового сервера. Однако я вполне уверен, что сценарий на клиенте может.