Anasayfa » Forum

sistem bilgilerini ...
 

sistem bilgilerini mail yoluyla alma  

  RSS
Dogan Bayraktar
(@doganbayraktar)
Üye

merhabalar,
sistemdeki son durumu mail yoluyla almayla ilgili olarak örnek scripti .vbs olarak
kayıt ettiğimde satır:13 karakter:1 kod:800A0400 bir hata veriyor.

Alıntı
Gönderildi : 06/11/2008 16:42
 Anonim

Selamlar,


Sistemdeki son durumu derken?Script tam olarak size hangi değerleri geri döndürücek?Ya da kullanığınız script ne iş yapıyor?

CevapAlıntı
Gönderildi : 06/11/2008 16:49
Dogan Bayraktar
(@doganbayraktar)
Üye

sistemin service pack bilgilerini almak bazı servisler ile ilgili bilgileri almak serverdaki boş alan durumlarını kontrol etmek vs.

CevapAlıntı
Gönderildi : 06/11/2008 16:55
 Anonim

Script içeriğini paylaşabilirmisin?Script'in yazım dilini görmeden 10. satır veya 25.satır'da şunu yap diyemeyiz.

CevapAlıntı
Gönderildi : 06/11/2008 17:04
Dogan Bayraktar
(@doganbayraktar)
Üye

Set objMessage = CreateObject("CDO.Message")

objMessage.Subject = "Raporlar"

objMessage.From = "

<!--
var prefix = 'ma' + 'il' + 'to';
var path = 'hr' + 'ef' + '=';
var addy52253 = 'notifications' + '@';
addy52253 = addy52253 + 'mshowto' + '.' + 'org';
document.write( '' );
document.write( addy52253 );
document.write( '' );
//-->\n
@cozumpark.com">notifications@cozumpark.com
<!--
document.write( '' );
//-->
Bu e-Posta adresi istek dışı postalardan korunmaktadır, görüntülüyebilmek için JavaScript etkinleştirilmelidir

<!--
document.write( '' );
//-->
"

objMessage.To = "

<!--
var prefix = 'ma' + 'il' + 'to';
var path = 'hr' + 'ef' + '=';
var addy5039 = 'erkan.sezgin' + '@';
addy5039 = addy5039 + 'mshowto' + '.' + 'org';
document.write( '' );
document.write( addy5039 );
document.write( '' );
//-->\n
@cozumpark.com">erkan.sezgin@cozumpark.com
<!--
document.write( '' );
//-->
Bu e-Posta adresi istek dışı postalardan korunmaktadır, görüntülüyebilmek için JavaScript etkinleştirilmelidir

<!--
document.write( '' );
//-->
"

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.cozumpark.com"

‘’’’’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.

(Alıntıdır.)

CevapAlıntı
Gönderildi : 06/11/2008 17:10
 Anonim

Script içerisindeki smtp server'ı,portunu,sunucular.txt dosyasına yazılacak olan host isimlerinin hepsini kendi yapına göre güncellediğini düşünüyorum.Tavsiye olarak script'in içerisindeki açıklama satırlarını silip tekrar denermisin?

CevapAlıntı
Gönderildi : 06/11/2008 17:25
Dogan Bayraktar
(@doganbayraktar)
Üye

[quote user="Serhad MAKBULOGLU"]Script içerisindeki smtp server'ı,portunu,sunucular.txt dosyasına yazılacak olan host isimlerinin hepsini kendi yapına göre güncellediğini düşünüyorum.Tavsiye olarak script'in içerisindeki açıklama satırlarını silip tekrar denermisin?[/quote]

hocam onları sildim benim oluşturduğum .vbs

Set objMessage = CreateObject("CDO.Message")

objMessage.Subject = "Raporlar"

objMessage.From = " aris@aris.com.tr"

objMessage.To = " dogan@e-aris.com "

objMessage.TextBody = "örnek mesaj"

objMessage.Configuration.Fields.Item _

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

objMessage.Configuration.Fields.Item _

("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "mail.aris.com.tr"

objMessage.Configuration.Fields.Item _

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

CevapAlıntı
Gönderildi : 06/11/2008 17:30
 Anonim

Devamı nerede?Bu arada bilgi çekmek istediğin host makinalarında WMI servisi start durumda mı?Biliyorsun bu script WMI filter olmadan tek başına bir işe yaramaz.

CevapAlıntı
Gönderildi : 06/11/2008 17:35
Dogan Bayraktar
(@doganbayraktar)
Üye

bunu zaten öylesine deneme amaçlı olarak düzenlemiştim ama dediğiniz gibi WMI filter açık mı değilmi ona bakmam gerekiyor sanırım.

peki onu nereden düzenleyebilirim ki?

CevapAlıntı
Gönderildi : 06/11/2008 17:44
 Anonim

WMI(Windows Management Instrumentation) bir servistir.Services.msc konsolundan bak bakalım start durumda mı?

CevapAlıntı
Gönderildi : 06/11/2008 17:47
Dogan Bayraktar
(@doganbayraktar)
Üye

şimdi başlattım ikisinide hem windows yönetim yardımcıları hemde windows yönetim sürücü uzantıları start durumdalar.Fakat yine aynı hatayı veriyor.

CevapAlıntı
Gönderildi : 06/11/2008 17:58
Murat AYDIN
(@murataydin)
Üye

Alchemy Network Inventory + Feboti Mail tavsiye ediyorum. Bİlgisayara ait istediginiz ve istemediginiz configi alır ve mailinize otomatik yollattırabilirsiniz

CevapAlıntı
Gönderildi : 06/11/2008 23:24
Bugra KESKIN
(@bugrakeskin)
Üye

Merhaba

eğer profesyonel bir yazılım düşünürseniz ve bunun için bütçeniz varsa

GFI Server Monitor bu işi mükemmel yapıyor.

CevapAlıntı
Gönderildi : 07/11/2008 16:13
Mesut ALADAĞ
(@mesutaladag)
Üye

Merhabalar,


 


800A0400 hatasinin birkac nedeni olabilir:


 


Örnegin, VBS kodunuz içerisinde uzun bir satir ikinci satira kaydiginda satir devamliligini saglayan _ (underscore) parametresi koymadiginiz durumlarda karsilasabilirsiniz.


 


Örnegin,


 


On Error Resume Next


WScript.Echo "WSH Versiyonu : " & WScript.Version & " " & WScript.BuildVersion


& vbcr & "Script Dosyasi: " WScript.ScriptName


WScript.Quit


 


Bu script'de WScript.Echo ile baslayan satir alta kaymis oldugundan bu satirin bir alt satirdan devam ettigini söylemeniz için satir sonuna  _ karakteri koymaniz gerekir. Koymazsaniz 800A0400 hatasi ile karsilasirsiniz.


Hatayi  gidermek için yazmaniz gereken kod biçimi asagidadir:


 


On Error Resume Next


WScript.Echo "WSH Versiyonu : " & WScript.Version & " " & _


WScript.BuildVersion & vbcr & "Script Dosyasi: " WScript.ScriptName


WScript.Quit


 


 


800A0400 hatasinin bir diger nedeni de açiklama satirlarinin basina ' (tek tirnak) isareti konulmamasidir. Örnegin;


 


Bu bir açiklama satiridir


 


seklinde kod içerisinde bir satir geçiyorsa, bu satirin basina ' isareti koymazsaniz, yine 800a0400 hatasini alirsiniz. Hatayi gidermek için kod asagidaki sekilde yazilmalidir:


 


' Bu bir açiklama satiridir.


 


800A0400 hatasinin bir diger nedeni de yanlis ya da eksik komut yazilmalarinda gerçeklesir. Örnegin,


 


X= CreateObject("Wscript.Network")


 


Yukaridaki kodda X degiskenine bir deger atamasi yapiliyor. Fakat VBS dilinde deger atamayi SET komutu ile yapildigindan degisken adinin önüne mutlaka SET deyiminin konulmasi gerekir. yani kodun dogrusu su asagidaki sekilde düzeltilmezse yine 800A0400 hatasi alirsiniz.


 


Set x = CreateObject("Wscript.Network")


 


 


Sorunuza gelince, ag ortaminda çalisan Windows Sistemlerinizden üzerindeki donanim, yazilim vb. bilgileri toplamak islevini VMI Script kodlari ile yapabilirsiniz. http://www.microsoft.com/technet/scriptcenter/scripts/default.mspx?mfr=true  adresinde Microsoft'un Script Deposundan farkli kategoride çok sayida örnek VMI Scriptleri bulabilirsiniz. VMI Script kodlari vbs script dosyalari içerisinden gönderilirler. Özellikle VMI - VBS Scriptleri yazmaniz için VBSEDIT isimli araci kesinlikle tavsiye ederim. Çok daha rahat bir arayüzde isteginize uygun scriptler gelistirebilirsiniz.


 


Eger scriptlerle kendinize özel bir uygulama gelistirmek gibi bir niyetiniz yoksa, arkadaslarin önerdikleri 3rd parti uygulamalarla da ag ortamindaki sistemler hakkinda bilgi toplayabilirsiniz.


 


Bunlara bir kaç ilave de ben öneriyorum:


 


Microsoft’un GPInventory aracini denemenizi oneririm. http://www.microsoft.com/downloads/details.aspx?familyid=1D24563D-CAC9-4017-AF14-8DD686A96540&displaylang=en adresinden indirebilirsiniz.


 


Ayrica asagidaki cozumleri de incelemenizi tavsiye ederim:


 


http://www.microsoft.com/turkiye/yey/msia.mspx


LOGINventory


Hyena


www.ocsinventory-ng.org


AdventNet ManageEngine ServiceDesk Plus   


Deksi Network  Inventory


Systemhound


VIT Manager


 


 


Eger ortamda SQL kullaniyorsaniz; gerek VMI Scriptlerle gerekse de bu uygulamalari kullanarak topladiginiz bilgileri SQL veritabani ortamina atip, orada da Database Mail özelligi ile sonuclari bir dosya olarak kendinize mail olarak göndertebilirsiniz. Fakat önerdigimiz uygulamalar içerisinde kendi içerisinde raporlari mail atma yetenegi olanlar da var.


 


iyi calismalar,


 


 


Mesut ALADAG


Technology Director


Microsoft Certified Trainer


www.ITSTACK.com.tr | www.mesutaladag.com | www.cozumpark.com


 

CevapAlıntı
Gönderildi : 07/11/2008 22:39
Paylaş:

Lütfen Giriş yap yada Kayıt ol