Visual Basic Script , PowerShell , Cmd (Komut istemi) gibi araçlar Windowsta birçok işlemi otomatikleştirip kullanım kolaylığı sağlamaya yönelik bileşenlerdir , mesela uzantısı .vbs olan bir script ile
6-7 adımlık bir işlemi tek tık ile yaptırtabilirsiniz yine aynı şekilde bir Powershell komutu ile modern uygulamaları tek tek veya topluca kaldırabilir yada yeniden kurabilirsiniz , Cmd komutları dediğimiz ve uzantısı .bat veya cmd olan scriptler ise oldukça yaygın şekilde kullanılmakta olup yine aynı amaca hizmet etmektedirler. Windowsun sunduğu bu araçları genellikle sistem yöneticileri veya teknik servis elemanları çokça kullansada normal kullanıcılarda faydalanmaktadır. Bazen bu araçlar gerektiği gibi düzgün çalışmayabilir mesela Geçenlerde SMB1 açığını kapatmak için verdiğimiz ve vbs nin şifreli hali olan .vbe uzantılı bir scriptimizin hata verdiği bildirildi , hatada aynen şöyle denmiş : .... İçinde Dosya uzantısı yok
İlk bakışta sanki script hatalı kodlanmış gibi duruyor oysa Scripti denediğimizde herhangi bir hataya rastlamadık. yani script bizim sistemlerimizde çalışıyor fakat arkadaşın sisteminde çalışmıyordu. Bu tür bir hata Vbs deki dosya ilişkilendirmeleri veya servisin düzgün kayıt edilmemesinden kaynaklanmış olabileceğinden aşağıdaki adımların sırası ile uygulanması gereklidir.
1. Komut istemini yönetici yetkilerinde çalıştıralım ve sırası ile aşağıdaki komutları uygulayalım
Regsvr32 vbscript.dll cscript.exe //H:WScript assoc .vbs=VBSFile
Üstteki kodlar bir VBS scriptinin çalışması için gerekli tüm işlemleri uygulamaktadır , ilk kod ile dll register edilmekte , vbs nin doğru programla çağrılması için gerekli ayar yapılmakta ve son olarak .vbs uzantılarının dosya bağlantıları doğrulanmaktdır.
2. Lakin iş bununla bitmez eğer vbs dosyasının çalışması için gerekli registry kayıtlarında bir bozulma varsa üstteki komutlardan sonra aşağıdaki registry kaydınında uygulanması gerekir
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\VBSFile\Shell\Open\Command] @=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\ 00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,57,00,53,00,\ 63,00,72,00,69,00,70,00,74,00,2e,00,65,00,78,00,65,00,20,00,22,00,25,00,31,\ 00,22,00,20,00,25,00,2a,00,00,00
Böylece vbs dosyalarının çalışması için gerekli son işlemde tamamlanmış olacaktır
Tüm bunları tek tek uygulamak zahmetli olacağından sizler için bir VBS scriti kodladık aşağıdaki linkten gerekli dosyayı indirip zipten çıkartın "vbs_fix" klasörünün içerisinde yeralan "vbs_fix.vbe" dosyasını çalıştırın ilk başta aşağıdaki gibi bir bildirim ekranı gelecektir buna tamam diyelim
Ardından "Varsayılan kod merkezi Wscript.exe Olarak ayarlandı" diyen bir ekran gelecektir devam etmek için Bir tuşa basalım , Sonrasında registry kaydının uygulanması işlemi başladığından Ekranları Tamam deyip geçelim (Aşağıdaki resim)
Son ekranda Vbs script Fix uygulandı diye bir bildirim gelecektir. Artık VBS scriptlerinin sorunsuz çalışması gerekir. eğer yine bir hata varsa dosya içerisindeki Beni_oku kısmına bir göz atınız. Eğer Windows Scripting Host ( WSH ) devre dışı ise - Bakınız
- Parametre hatalı sorunu ve çözümü Burada
- MMC Ek bileşeni oluşturamadı hatası Burada
- Vbs de buton görevini yerine getirmiyor Burada
12 Ağustos 2017 Tarihli başlık güncellendi
Normal Vbscript i çalıştırınca hata yoksa ve exe ye çevirince hata ortaya çıkıyorsa (Ki vbs gerçek anlamda exe yapılmaz , sadece geçici klasöre çıkıp oradan çalışır) , sorun exe ye çevirmek için kullandığın yazılımdadır. Bu sitede 1500 - 2000 civarı script ve exe varsa aralarında belkide sadece 1 bilemedin 2 tanesi Vbs den exe ye çevrilmiştir onlarda da o hata yok.
vbs dosyasına admin yetkili kod ekleyip exe'ye çevirince "içinde dosya uzantısı yok" hatası alıyorum, windows'un bütün sürümlerinde denedim ama sorun aynı, farklı vbs admin kodları denedim hepsinde aynı sorun var, bu yazıdaki yöntemde işe yaramadı. hatanın çözümünü çok araştırdım ama bir türlü bulamadım, bir denermisin exe'ye çevirip sendede aynı sorun oluyor mu ?
Faydalı bulmanıza memnun oldum.
çok işime yaradı. Bu sorunda takılıp kalmıştım.
Teşekkürler, selamlar.
Şİmdi daha güzel anladım, teşekkürler aydınlantıcı yorumunuz için iyi ki varsınız.Takibe okumaya devam ediyorum.
Bu hata bütün vbs veya vbe lerde değil sadece bir veya birkaç Vbs veya vbe de meydana geliyor dolayısı ile verilen script sorunsuz çalışacaktır. Yazılar hata alındıktan sonra deneyerek yazıldığından sorun çıkmaz , sanırım siz hatayı almadan sadece mantık yürüttünüz.
Harika, çok güzel yalnız kafam bir şeye takıldı vbe sorunu yaşayan birisi vbs_fix.vbe yi nasıl çalıştıracak.
Rica ederim , umarım işine yarar , selamlar
hah ne zamandır bu lazımdı üstad. tşk
Teşekürler Yunus , bazen bir program yüklesek o bile etki edebiliyor , selamlar
yine çok güzel ve kayda değer bir paylaşım. Hatanın ne zaman baş göstereceği belli olmadığı için linki kaydettim.