Kullanıcıların Tek Bir Makineden Oturum
Açmalarının Sağlanması
Murat Yıldırımoğlu, 10/05/2004
Kurslarda sık sık şu sorulur: “Hocam, kullanıcıların tek bir makineden oturum açmaları (logon) nasıl sağlanır? Ama bu makine belirli bir makine olmayacak. Kullanıcı tek bir makineden oturum açabilecek ama ikinci bir makineden oturum açamayacak.”
Microsoft’un bu konuda SQL Server kullanan karmaşık bir çözümü var. Ben bu konu için Windows 2000 ve yukarısında bulunan logon ve logoff script’ler ile logoff komutunu kullanan bir çözüm buldum.
NT’ler ve Windows 9x’ler için de bir logon script (oturum açılınca çalıştırılan program) tanımlayabiliyoruz (kullanıcının Profile sekmesinde) ama Win2K ile birlikte gelen Grup İlkeleri (GPO) ile logon script’lerinin yanı sıra logoff script’leri de tanımlayabiliyoruz. Burada bir kısıtımız var: Grup İlkeleri yalnızca Windows 2000 ve yukarısına etki yapıyor, diğer işlerim sistemlerinde bir etkisi yok. Dolayısıyla kullanılacak makinelerin XP ve 2003 gibi yeni makineler olduğunu varsayıyoruz.
Şimdi işlemlere geçelim.
Önce bir DC üzerinde bir klasör yaratıp bunu paylaşıma açalım. DC yerine her zaman açık bir başka makine de olabilir. Örneğimizde DC’nin adı RAFETPC, klasrö ve paylaşımın adı LOGONS. LOGONS klasöründeki paylaşım izni en az Everyone, Change şeklinde olacak (kullanıcıların oturum açma-kapama işlemleri sırasında buraya dosyalar yazılacak, silinecek).
Sonra tek bir yerden oturum açmalarını istediğiniz kullanıcıları topladığınız Organizational Unit’e (OU) gidin. Bu OU için bir GPO yaratın. GPO’da User Configuration kısmına gidin. Orada da Scripts kabına geçin. Bu kabın altında Logon ve Logoff şeklinde iki kap var. Logon kabına gidin, Add düğmesine basın, Browse düğmesine basın, karşınıza gelen kutuya login.bat’ı yapıştırın, sonra da bu dosyayı seçin. Bu dosya logon script olarak çalışacak. Sonra Logoff kabına gidin, Add düğmesine basın, Browse düğmesine basın, karşınıza gelen kutuya logout.bat’ı yapıştırın ve bu dosyayı seçin. Bu dosya da logoff script olarak çalışacak. Hepsi bu kadar.
Yukarıdaki işlemleri yapınca, o OU içindeki bir kullanıcı bir makineden oturum açtığında DC’deki klasörün altında iki adet dosya oluşacak. Aynı kullanıcı bir başka makineden oturum açmak istediğinde bu dosyalar farkedilecek ve hemen kullanıcının oturumu kapatılacak. Kullanıcı ilk makinedeki oturumunu kapattığında DC’deki dosyalar silinecek, böylece o kullanıc başka makineden oturum açabilecek.
Login.bat ve logout.bat dosyalarının içeriği şu şekilde:
Login.bat
If exist \\rafetpc\logons\%username%.txt goto notlogon
echo %username% logged in from %computername% > \\rafetpc\logons\%username%.txt
echo %username% logged in from %computername% > \\rafetpc\logons\%computername%.txt
goto end
:notlogon
logoff
:end
Logout.bat
If not exist \\rafetpc\logons\%computername%.txt goto end
del \\rafetpc\logons\%username%.txt
del \\rafetpc\logons\%computername%.txt
:end