5

Есть ли какой-нибудь возможный способ узнать системное имя системы, которая взяла систему удаленно? Из журналов мы можем узнать имя пользователя (но это общие идентификаторы входа) и IP (но мы используем DHCP, они меняются день ото дня).

В дереве просмотра событий слева в разделе Журналы приложений и служб -> Windows -> Службы терминалов- *, где * - все журналы. В рабочем журнале Terminal Service Local Session Manager мы получаем данные только по IP-адресу и имени пользователя.

Есть ли журнал, где мы также можем найти имя системы?

1 ответ1

7

Ну, вот и все ... (это не будет легко;)

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

  • Нажмите Пуск и введите secpol.msc затем нажмите Enter.
    появится окно локальной политики безопасности
  • Теперь перейдите к Local Policy > Audit Policy
    щелкните правой кнопкой мыши параметр политики Audit account logon events и выберите « Properties .
  • Теперь установите флажок Success (неудачные попытки не будут регистрироваться таким образом)
  • Выход из secpol.msc

Теперь создайте VBScript-файл (например, с именем c:\temp\log.vbs):
(также отредактируйте расположение нужного файла журнала, здесь c:\temp\rdp.log)

Function sessionNumber
 Dim oShell, oExec, sOutput, iUserPos, iUserLen, iStatePos
 Set oShell = CreateObject("WScript.Shell")
 Set oExec = oShell.Exec("query session %username%")
 sOutput = LCase(oExec.StdOut.ReadAll)
 iUserPos = InStr(sOutput,LCase(oShell.ExpandEnvironmentStrings("%username%")))
 iStatePos = InStr(sOutput,"active")
 iUserLen = Len(oShell.ExpandEnvironmentStrings("%username%"))
 sessionNumber = CInt(Trim(Mid(sOutput,iUserPos+iUserLen,iStatePos-iUserPos-iUserLen)))
End Function

Function clientName
 Dim oShell
 Set oShell = CreateObject("WScript.Shell")
 On Error Resume Next
 clientName = LCase(oShell.RegRead("HKCU\Volatile Environment\"&sessionNumber&"\CLIENTNAME"))
 If Err.Number<>0 Then
 clientName =  "unknown"
 End If
End Function

outFile="c:\temp\rdp.log"

Const ForAppending = 8

Set objFSO=CreateObject("Scripting.FileSystemObject")
Set objFile=objFSO.OpenTextFile(outFile,ForAppending,True)
objFile.Write now() & " ; " & clientName & vbCrLf
objFile.Close

Теперь для последней части создайте запланированное задание для запуска этого скрипта.

  • Нажмите Пуск и введите taskschd.msc затем нажмите Enter.
  • Выберите Create Task на правой панели.
  • Назовите это Logon RDP или что-то
  • В-вкладке Trigger выберите Создать и выберите "Начать задачу" On an event
  • В "Журнале" выберите Security и в "Event ID" введите 4624
  • Хит Ок
  • На вкладке "Действие" выберите « Создать» и выберите "Запустить программу".
  • В программе типа cscript.exe и в поле Добавить аргумент введите c:\temp\log.vbs
  • Хит Ок дважды

Теперь, когда кто-то входит в систему через RDP, его имя хоста регистрируется в c:\temp\rdp.log

Обратите внимание, что также будут регистрироваться локальные логины (я еще этого не проверял, потому что я нахожусь на пульте :)
но я думаю, это не проблема.

Конечно, вы можете адаптировать log.vbs для включения имени пользователя, удаленного IP- адреса ... и т.д.

(pfew, Windows XP была намного проще. Тот просто регистрирует имя хоста в событии)
Может быть, кто-то может придумать более простое решение :)



Редактировать:

Я также обнаружил, что в журнале событий безопасности есть идентификаторы событий 4624. Ищите те с Logon Type: 3 . Он должен содержать имя Workstation Name компьютера, который вошел в систему через RDP.

An account was successfully logged on.

Subject:
    Security ID:        NULL SID
    Account Name:       -
    Account Domain:     -
    Logon ID:       0x0

Logon Type:         3

New Logon:
    Security ID:        User-PC\User
    Account Name:       User
    Account Domain:     User-PC
    Logon ID:       0xcd5c10
    Logon GUID:     {00000000-0000-0000-0000-000000000000}

Process Information:
    Process ID:     0x0
    Process Name:       -

Network Information:
    Workstation Name:   XPS8500
    Source Network Address: -
    Source Port:        -

Редактировать № 2

Это из полностью чистой установки Windows 7.
(Основной компьютер - Test-pc а компьютер, на котором я вошел - XPS8500):

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .