1

Sisteminizi herhangi bir yazılım kullanmadan scriptler yazarak proaktif çözümler üretebilmemiz mümkündür.Bunun için birçok yazılım bulabilirsiniz fakat bunu masrafsız ve lisanssız nasıl yapabiliriz? Sistemlerin service pack seviyelerini almak,disklerin boş alan durumlarını incelemek ve bazı servislerin durumlarını mail olarak almak yararlı olabilir.

Bu script için CDO (Collaboration Data Object) özelliğini kullanacağız ve mailimizin gitmesi için bir smtp server’a ihtiyacımız olacak.Bu sisteminizde kullandığınız Exchange Server,Kerio Mail server gibi bir mail sunucu olabilir.Benim tavsiyem Çok fazla sunucudan bilgi almak için bir smtp kullanacaksanız bunun ayrı bir smtp olmasıdır.Çünkü sizin scriptlerinizin ya da uygulamaların attığı maillerde herhangi bir sıkıntı olduğunda (yazılımcıların mail atarken kullandıkları kodda döngü problemleri gibi.) smtp kuyruğunda binlerce mail görebilirsiniz.Bu yüzden varolan mail sisteminizi işe karıştırmaz ve problemlerinizi izole etmiş olursunuz.

Set objMessage = CreateObject(“CDO.Message”)

objMessage.Subject = “Raporlar”

objMessage.From = “notifications@mshowto.org”

objMessage.To = “erkan.sezgin@mshowto.org”

objMessage.TextBody = “Örnek mesaj”

‘’’’’ üstte yer alan kısımda cdo objesini yarattık ve bu mesajın konu,kimden,kime ve içeriğini hazırladık.

objMessage.Configuration.Fields.Item _

(“http://schemas.microsoft.com/cdo/configuration/sendusing”) = 2

‘’’’’ bu mesajın smtp yoluyla gideceğini gösteriyor.

objMessage.Configuration.Fields.Item _

(“http://schemas.microsoft.com/cdo/configuration/smtpserver”) = “smtp.mshowto.org”

‘’’’’mesajı göndermek üzere kullanacağınız smtp sunucunun adını yada IP sini yazıyoruz.

objMessage.Configuration.Fields.Item _

(“http://schemas.microsoft.com/cdo/configuration/smtpserverport”) = 25

‘’’’’Smtp sunucunun hangi portunu kullanacağımızı belirtiyoruz.Smtp servisleri varsayılan olarak 25 ‘’’’’nolu portu kullanırlar.Exchange Server kullanıyorsanız default smtp virtual server yerine başka portu ‘’’’’kullanan ikinci bir smtp virtual server yaratarak bunu kullanmanızı tavsiye ediyorum.

objMessage.Configuration.Fields.Update

objMessage.Send

mesaj gönderme scripti ni test maksatlı .vbs olarak kaydettiğinizde kullanabilirsiniz.Ama bizim asıl yapmak istediğimiz mail göndermek değil ,bunun öncesinde başka bir scripte bağlamak.Bu scriptin ne olduğunu siz seçebilirsiniz.Örnek olarak disklerimizde ne kadar boş alan olduğuna dair bilgi veren bir scripti birleştireceğiz.

=======================================================

Set fso=CreateObject(“Scripting.FileSystemObject”)

‘Dosya objesi açıyoruz.

Set objInputFile=fso.OpenTextFile(“c:\Sunucular.txt”,1),True)

‘C:\Sunucular.txt dosyasında bulunan host isimlerini script okuma (1) modunda açıyoruz.

Set objOutputFile=fso.OpenTextFile(“SunucuDiskDurumu.txt”,2,True)

‘c:\sunucuDiskDurumu dosyasını alacağımız bilgileri yazmak için yazma(2) modunda açıyoruz.

Const HARD_DISK = 3

‘Sürücü tipini belirtiyoruz.

Do While objInputFile.AtEndOfLine <> True

strComputer=objInputFile.ReadLine

‘Do While döngüsüyle InputFile içerisindeki host isimlerini okunacak ve strComputer değişkenine ‘atanacak.

Set objWMIService = GetObject(“winmgmts:” _

& “{impersonationLevel=impersonate}!\\” & strComputer & “\root\cimv2”)

Set colDisks = objWMIService.ExecQuery _

(“Select * from Win32_LogicalDisk Where DriveType = ” & HARD_DISK & “”)

‘WMI sorgularıyla istediğimiz verileri sorgulayacağız.

For Each objDisk in colDisks

objOutputFile.WriteLine(strComputer)

objOutputFile.WriteLine ( “DeviceID: “& vbTab & objDisk.DeviceID)

objOutputFile.WriteLine (“Free Disk Space: “& vbTab & objDisk.FreeSpace/1024)

Next

‘Her disk için host ismi,DeviceID ve disk üzerindeki boş alan bilgisi SunucuDiskDurumu.txt ‘dosyasına yazılacakFreeDiskSpace satırında değeri KB olarak görmek için 1024 e bölüyoruz ‘dilerseniz MB ve GB için farklı bölen kullanabilirsiniz.

Loop

objOutputFile.Close

‘Disk bilgilerini yazdığınız dosyayı kapatmak zorundayız ve okuma (1) modunda tekrar açmalıyız.

Set objOutputFile=fso.OpenTextFile(“SunucuDurumu.txt”,1,True)

Yukarıda bahsettiğimiz email scriptini bu kodlarımızın devamına ekleyebiliriz.Mail içerisinde disk durumuna ilişkin bilgilerin gitmesi için objMessage.TextBody = objOutputFile.ReadAll satırını değiştiriyoruz. Bu bilgileri mesajın içinde değil ek olarak görmek isterseniz objMessage.TextBody = satırının altına objMessage.AddAttachment “c:\SunucuDiskDurumu.txt” olarak yeni bir satır ekleyebilirsiniz.

Bu oluşturduğumuz .vbs dosyasının belirlediğimiz zamanlarda çalışması için Görev zamanlayıcı (Task Scheduler) yı kullanarak C:\Windows\System32\cscript.exe c:\diskmail.vbs programını çalıştırması için ayarlayabiliriz..vbs dosyanızın yoluna dikkat ediniz eğer boşluk varsa başta ve sonda “ kullanmak gerekecektir.

Bu konuyla ilgili sorularınızı alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.

Referanslar

Bu İçeriğe Tepkin Ne Oldu?
  • 0
    harika_
    Harika!!
  • 0
    be_enmedim
    Beğenmedim
  • 0
    _ok_iyi
    Çok iyi
  • 1
    sevdim_
    Sevdim!
  • 0
    bilemedim_
    Bilemedim!
  • 0
    olmad_
    Olmadı!
  • 0
    k_zd_m_
    Kızdım!

Bültenimize Katılın

Tıklayın, üyemiz olun ve yeni güncellemelerden haberdar olan ilk kişi siz olun.

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Yorumlar (1)

  1. teşekkürler emeğe saygı

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir