Forum
Selam
windows server 2008 standart işletim sistemi üzerinde kullandığımız terminal server uzerine oturum açan kullanıcıları loglamak istiyoruz.
hangi kullanıcı hangi tarih ve saatte oturum açmış
oturumun açık kalma süresi
gösterebiliyorsa hangi ip adresinden veya mac adresi ile sisteme oturum açmış
bu tarz bilgileri takip etmek istiyoruz böyle bir şey mümkünmüdür?
yada sizler terminal server loglamasını nasıl yapıyorsunuz ? daha kapsamlı bir yazılım yada bir sistem varmıdır ?
emekleriniz ve ilgileriniz için teşekkürler.
Selamlar şöyle bir uygulama var : http://www.terminalserviceslog.com/features/
Birde şu linkteki vbs scripti kendine uygun şekilde ayarlarsan istediğin bazı şeyleri yapabilirsin.
script ile sınırlı şeyler yapabiliyorum.. baska alternatif varmıdır acaba ?
' Logon5.vbs
' VBScript Logon script.
' This program demonstrates how to log information to a log file.
'
' ----------------------------------------------------------------------
' Copyright (c) 2003-2010 Richard L. Mueller
' Hilltop Lab web site - http://www.rlmueller.net
' Version 1 - March 26, 2003
' Version 1.1 - January 25, 2004 - Modify error trapping.
' Version 1.2 - June 10, 2010 - Delimit log file with ";".
' Version 1.3 - November 6, 2010 - No need to set objects to Nothing.
'
' You have a royalty-free right to use, modify, reproduce, and
' distribute this script file in any way you find useful, provided that
' you agree that the copyright owner above has no warranty, obligations,
' or liability for such use.
Option Explicit
Dim objFSO, objLogFile, objNetwork, objShell, strText, intAns
Dim intConstants, intTimeout, strTitle, intCount, blnLog
Dim strUserName, strComputerName, strIP, strShare, strLogFile, strMAC
strShare = "\\SHARE-SERVER\LOG"
strLogFile = "LOG.txt"
intTimeout = 20
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objNetwork = CreateObject("Wscript.Network")
Set objShell = CreateObject("Wscript.Shell")
strUserName = objNetwork.UserName
strComputerName = objNetwork.ComputerName
strIP = GetIPAddresses()
strMAC = GetMACAddress(strComputerName)
' Log date/time, user name, computer name, and IP address.
If (objFSO.FolderExists(strShare) = True) Then
On Error Resume Next
Set objLogFile = objFSO.OpenTextFile(strShare & "\" _
& strLogFile, 8, True, 0)
If (Err.Number = 0) Then
' Make three attempts to write to log file.
intCount = 1
blnLog = False
Do Until intCount = 3
objLogFile.WriteLine "Logon;" & Now & ";" _
& strComputerName & ";" & strUserName & ";" & strIP & ";" & strMAC
If (Err.Number = 0) Then
intCount = 3
blnLog = True
Else
Err.Clear
intCount = intCount + 1
If (Wscript.Version > 5) Then
Wscript.Sleep 200
End If
End If
Loop
On Error GoTo 0
If (blnLog = False) Then
strTitle = "Logon Error"
strText = "Log cannot be written."
strText = strText & vbCrlf _
& "Another process may have log file open."
intConstants = vbOKOnly + vbExclamation
intAns = objShell.Popup(strText, intTimeout, strTitle, _
intConstants)
End If
objLogFile.Close
Else
On Error GoTo 0
strTitle = "Logon Error"
strText = "Log cannot be written."
strText = strText & vbCrLf & "User may not have permissions,"
strText = strText & vbCrLf & "or log folder may not be shared."
intConstants = vbOKOnly + vbExclamation
intAns = objShell.Popup(strText, intTimeout, strTitle, intConstants)
End If
End If
Function GetIPAddresses
Dim z, x 'pointers
Dim key
Dim IPAddress
Dim tempIPAddress
Dim sh
Dim TCPIPKey
Dim InterfaceTmp
Dim Interface
Dim IPAddressKey
Dim objNetwork
Dim strDriveLetter
Dim strRemotePath
Dim t
Set Sh = CreateObject("WScript.Shell")
TCPIPKey="HKLM\SYSTEM\CurrentControlSet\Services\TCPIP\"
InterfaceTmp=sh.regread(TCPIPKey&"Linkage\Bind")
While UBound(InterfaceTmp)-1 => z
If InStr(InterfaceTmp(z), "{") Then 'may i use Right, but this crashes...i dont know whay?
Interface=Interface & StrReverse(Left(StrReverse(InterfaceTmp(z)), instr(StrReverse(InterfaceTmp(z)), "{\"))) & "#"
End If
z=z+1
Wend
Interface=Split(Interface, "#")
t=UBound(Interface)
While UBound(Interface)-1 => x
' First check which network card to use
IPAddressKey=TCPIPKey+"Parameters\Interfaces\"+Interface(x)+"\"
' Now read the IP Address from that card
tempIPAddress=sh.RegRead (IPAddressKey+"IPAddress")
IPAddress=tempIPAddress(0)
If IPAddress="0.0.0.0" Then
If (sh.RegRead(IPAddressKey+"EnableDHCP")=1) Then
On Error Resume Next
IPAddress=sh.RegRead (IPAddressKey+"DHCPIPAddress")
If Not Err.Number <> 0 Then x=UBound(Interface) End If
End If
End If
x=x+1
Wend
' the IP addresss is now readable from ipaddress
GetIPAddresses=IPAddress
End Function
Function GetMACAddress(strComputer)
Dim colItems, objItem, address
Dim StrQuery
Dim objWMIService
StrQuery = "SELECT * FROM Win32_NetworkAdapter"
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery(strQuery,,48)
For Each objItem in colItems
if objitem.MACAddress <> vbnull Then
GetMACAddress = GetMACAddress & vbTab & objItem.name & ": " & objItem.MACAddress & VbCrLf
End If
Next
End Function
yukarıdaki .vbs kodunu çalıştırdıgımda bana " Logon Zamanı - Kullanıcı Adını - Makine Adını - IP Adresini - MAC Adresi " Bilgilerini veriyor. Yanlız söyle bir sorunum var.. bana verdiği bilgilerdeki " Makine Adı ( Oturum Açılan Server'ın Adını Getiriyor,Ip Adresi Yine Oturum Açılan Serverın IP Adresini ve Mac Adresi Yine Oturum Açılan Serverın Mac Adresini Vermekte." Ben İp Adresini Oturum Açma İsteği Gönderen Client'in IP Adresini Mac Adresi Yine Oturum Açma İstegi Gönderen Client'in Mac Adresini ve Makine Adı Olarak Yine Oturum Açma İsteği Gönderen Clientin Makine Adını Öğrenmek İstiyorum.
Bunun İçin Kodu Nasıl Düzenleyeceğimi Bilemedim. Uğraştım ve Hala Uğrasıyorum Fakat Bir İlerleme Söz Konusu Değil.. Sizlerinde Desteği İle Bu Sorunumu Çözebileceğime İnanıyorum.. Yardımlarınız İçin Tesekkürler.