Получите список того, кто вошел в систему каждого сервера

Я полагаю, что это - все в памяти.

Я знаю, что можно использовать dnscmd для дампа кэша с командой как это:

dnscmd serverip /zoneprint .

Можно просмотреть содержание с MMC DNS. От View меню удостоверяется, что опция 'Advanced' проверяется. Можно затем нажать на сервер, и под этим будет папка, названная 'Кэшируемые Поиски'.

Будет стоимость производительности, но что можно на самом деле хотеть сделать, включают вход отладки и затем выполняют отчеты против файла журнала, вместо того, чтобы пытаться посмотреть на в просто кэше.

Для конфигурирования входа отладки открывают менеджера по DNS, щелкают правой кнопкой по серверу. Существует вкладка 'Debug Logging'. Установите путь для файла журнала и установите флажки для входа то, что Вы хотите видеть.

1
задан 16 December 2010 в 22:37
2 ответа

Если Вы просто хотите список профиля, PowerShell является, вероятно, Вашим лучшим выбором.

$Server = 'RemoteServer'
$Reg = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey('LocalMachine', $Server)

Это инстанцирует $reg как держателя для удаленного объекта реестра в HKLM. Для достигания бита, Вы хотите:

$ProfileList = $Reg.OpenSubKey('SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList')

Это заполнит $ProfileList с подразделами для самих профилей. Затем извлечь список пользователей:

Write-Host "`n$Server: " -nonewline
ForEach ($SID in $ProfileList.GetValueNames()) {
    $ProfileKey = $ProfileList.OpenSubKey($SID)
    # Get the ProfileImagePath key
    $ProfileKey.GetValue("ProfileImagePath")
    # Break the path up into an array, using \ as the delimiter
    $PathBits = $ProfileKey.Split("\")
    # The last element of the array is our user, find the last element
    $LastIndex = $PathBits.Count - 1
    # Dump the last element to something useful
    $User = $PathBits[$LastIndex]
    # Output the user
    write-host " $User" -nonewline
}

Или что-то близко к этому. Это первое, что пришло на ум.

1
ответ дан 4 December 2019 в 01:49

Создайте GPO, который относится к серверам, которые Вы хотите контролировать и под Конфигурацией компьютера> политики> Windows Settings> Настройки безопасности> Локальные политики> Политика аудита, включить "Контрольные события входа в систему" на Успехе и/или Отказе в зависимости от Ваших требований.

Не включайте Контрольные события входа в систему учетной записи, если серверами, которые Вы контролируете, является DCS. События входа в систему учетной записи сгенерированы на контроллерах домена, когда кто-то входит в систему с их учетной записью пользователя домена, таким образом, Вы будете видеть слишком много событий.

Короче говоря, "Событие Logon" создается, когда пользователь входит в систему компьютера, "Событие входа в систему учетной записи" создается на контроллере домена, когда пользователь входит в систему с их учетной записью пользователя домена, НО компьютер, которого они входят в систему в интерактивном режиме, генерирует событие входа в систему Учетной записи также. Это - то, для чего Вы хотите контролировать. Вместе с EventForwarding (для Ваших способных серверов) можно просто контролировать собственный журнал событий или использовать прерывания SNMP для ловли использования событий evntwin.exe и передайте им системе контроля/предупреждения SNMP.

На рабочих станциях пользователя я на самом деле использую VBScript, который открывает скрытый процесс IE для внутреннего сервера с PHP/MySQL, установленным, который просто выводит имя пользователя в к базе данных и вот именно. VBScript:

Set oIE = CreateObject("InternetExplorer.Application")
Set oNet = CreateObject("WScript.Network")

sComputerName = oNet.ComputerName
sUsername = oNet.UserName

oIE.Navigate "http://intranet/logon/logon.php?un=" & Trim(sUsername) & "&ma=" & Trim(sComputerName)

Do While oIE.Busy = True

WScript.Sleep 500

Loop

oIE.Quit
Set oIE = Nothing
WScript.Quit

Очевидно, Вам нужен веб-сервер, база данных PHP и MySQL для движения с этим поэтому, если это - что-то, чем Вы интересуетесь, сообщаете мне, и я раскопаю те биты также. Можно применить это использование GPO также, но с одним протестом, оно может только работать под разделом User Configuration GPO.

Так, две опции для Вас там. HTH.

Править: Вот Сценарий PHP, упомянутый выше. Легкий действительно.

mysql_connect('mysqlserver', 'username', 'password');
mysql_select_db('database');

$un = trim(addslashes($_GET['un']));
$ma = trim(addslashes($_GET['ma']));

mysql_query("INSERT INTO userlist (user_logon_name, machine_name, logon_time) VALUES ('$un', '$ma', now())");

echo "User ". $_GET['un']. " logged on.";

Удачи

0
ответ дан 4 December 2019 в 01:49

Теги

Похожие вопросы