kullanılan toolun kötü bir özelliği var bağlanan makinenin local ip adresini gösteriyor. 🙁 firmaya durumu ilettim ama değiştirirler mi bilemiyorum. Ama toolu kullanarak şöyle yapabilirsiniz örneğin sizin terminal sunucunuzun bulunduğu ip bloğu 10.0.5.xx gibi bir bloksa. 10.0.5 ile başlamıyorsa kullanıcıyı logoff edebilirsiniz. kullanıcının local ip adresi genelde 10.0.0.x / 192.168.1.x/192.168.2.x şeklinde (standart adsl modemlerin dağıtımı, en çok kullanılan bloklar bunlar.)
Toolu http://www.ctrl-alt-del.com.au/CAD_Utils.htm adresinden indirebilirsiniz. adı GETTSCIP
kontrol etmek istediğiniz kullanıcıların logon scriptine
Mantığı: Kullanıcının belgelerim klasörüne k.adı.txt isimli bi dosyaya GETTSCIP ile bağlanan kullanıcının ip adresini kayıt ettiriyoruz. Sonra programın verdiği çıktıdan (WTSClientAddress: 192.168.2.51) ip adresini ve adresin ilk 7 karakterini alıyoruz. Sonra bizim ip bloğumuz ile karşılaştırıyoruz tutmuyorsa kullanıcı logoff oluyor.
Set oShell = Wscript.CreateObject(“Wscript.Shell”)
kullanici = oShell.ExpandEnvironmentStrings(“%USERNAME%”)
masaustu = oShell.SpecialFolders(“MyDocuments”)
tamyol= “””” & masaustu & “\” & kullanici & “.txt” & “”””
komut = “cmd /K ipal.exe > ” & tamyol & ” & exit”
oShell.run (komut)
tamyol2=masaustu & “\” & kullanici & “.txt”
Set objFSO = CreateObject(“Scripting.FileSystemObject”)
Set objFile = objFSO.OpenTextFile(tamyol2, ForReading)
Const ForReading = 1
ip=objFile.ReadLine
Dim arrFileLines()
objFile.Close
MyArray = Split(ip, “: “, -1, 1)
ip=MyArray(1)
ip=Mid(ip, 1, 7)
if ip = “10.0.5.” then
msgbox “Localden geliyor”
else
oShell.run (“logoff”)
end if