Можно ли узнать, какие пользователи AD в настоящее время просматривают внутренний (интранет) веб-сервер IIS?
Я не думаю, что вы можете получить отдельных пользователей на уровне сервера, но вы можете использовать счетчики perfmon для подсчета количества активных соединений.
Для IIS6 (из Статья Technet):
1. Откройте «Администрирование» и нажмите «Производительность».
2. Щелкните правой кнопкой мыши панель сведений системного монитора и выберите Добавить счетчики.
3. Выполните одно из следующих действий:
Чтобы отслеживать любой компьютер, на котором запущена консоль мониторинга, щелкните Использовать счетчики локального компьютера.
-или-
Чтобы контролировать конкретный компьютер, независимо от того, где запущена консоль мониторинга, щелкните Выбрать счетчики с компьютера и укажите имя или IP-адрес компьютера.
4. В объекте Performance щелкните:
Веб-сервис для мониторинга активных веб-соединений.
-или-
Служба FTP для мониторинга активных FTP-соединений.
5. Щелкните Выбрать счетчики из списка и выберите Текущие соединения.
6. Щелкните Все экземпляры.
7. Нажмите «Добавить», а затем «Закрыть».
У вас проблемы с пониманием протокола HTTP. Это не похоже на, скажем, FTP, где клиентский компьютер поддерживает постоянное соединение с серверным компьютером, пока пользователь «просматривает». Подключения от клиентов временные.
При этом, предполагая, что вам требуется аутентификация на сайте, вы можете использовать файл журнала сайта, чтобы узнать, кто недавно заходил на страницы. Если вам не требуется аутентификация, вы просто увидите IP-адреса клиентов.
См. Ответ Эвана. Также netstat | find ": http" покажет вам, какие хосты подключились за последнюю минуту или около того (независимо от интервала TIME_WAIT).
JR
Проблема усложняется, поскольку определение «в настоящее время» меняется.
Если на самом деле вам нужно знать, кто обращался к этому серверу за последние 10 или 1 минуту, вы всегда можете посмотреть журнал событий безопасности, чтобы проверить события входа в систему. Но это лишь приблизительная оценка.
Если вы используете аутентификацию asp.net и хотите увидеть результаты на своем сайте, вы можете использовать следующий код на C # из кода вашего сайта:
using System.Web.Security;
MembershipUserCollection users = Membership.GetAllUsers();
foreach(MembershipUser user in users)
{
if (user.IsOnline)
{
.
.
}
}
Это возможно и с помощью PowerShell:
Get-Counter -Counter "\Web Service(*)\Current Connections"