Putty Custom URI ve URL Scheme bookmarklet ile verimlilik arttırın

URL terimine http linkleri sayesinde ne kadar alışmış olsak da, URI terimi birçoğumuza yabancı gelebilir. Basitçe anlatmak gerekirse URI (Uniform Resource Identifier) bir kaynak adresidir. Örneğin https://en.wikipedia.org/wiki/Uniform_Resource_Identifier linki:

  • en.wikipedia.org alan adındaki (host)
  • /wiki/Uniform_Resource_Identifier adresindeki kaynağı (resource)
  • https protokolü ile

adresler. En bilindik URL, URI yapılarından biri günlük kullanımlardan alışkın olduğumuz HTTP linkleridir. Fakat bunun gibi bir sürü protokol var. ftp:// magnet:// gibi. Her program kendisi için bu tarz bir custom uri yapısı tanımlayabilir. Bizlerde bu yazımızda windows üzerinde putty kullanımımızı kolaylaştırmak için regedit aracılığıyla özel bir uri scheme tanımlayacağız.

Putty için özel bir protokol oluşturmadan için Custom URI mantığının Windows üzerinde nasıl çalıştığını anlamak için öncelikle cmd.exe için basit bir test yapalım. regedit kullanarak alert:// diye bir protokol oluşturacağız. alert://deneme gibi URI ler artık otomatik olarak bir cmd penceresi açık deneme parametresini cmd’ye geçirecek. Örneğin bu ayarları yaptıktan sonra alert://deneme linkine bastığınızda aşağıdaki gibi bir cmd ekranı ile karşılaşmanız gerekiyor:

Yapmamız gereken ayarlar ise şu şekilde:

Bunları el ile yapmak istemiyorsanız aşağıdaki metni notepad’e yapıştırıp .reg uzantılı olarak kaydederek çalıştırırsanız aynı sonucu elde edersiniz.

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\alert] @="URL:Alert Protocol" "URL Protocol"=""
[HKEY_CLASSES_ROOT\alert\shell] [HKEY_CLASSES_ROOT\alert\shell\shell]
[HKEY_CLASSES_ROOT\alert\shell\shell\command] @="\"c:\windows\system32\cmd.exe\" /k echo \"%1\""

Bu şekilde kaydedip çalıştırdıktan sonra alert:// adreslerinin artık cmd penceresi açtığını görüyoruz. Browserınızda çalışmadıysa başlat > çalıştır ile de deneyebilirsiniz:

Çıktı şu şekilde olmalı:

Yalnız burada fark ettiğimiz bir detay var. cmd.exe ye parametre alert:// olarak geçiriliyor. Biz bunu putty için kullanmak istediğimizden bu stringi temizleyip putty.exe ye doğrudan ip adresi olarak vermemiz gerekecek. Şu anda alert://deneme komutunu çalıştırdığımızda arka planda cmd.exe /k echo "alert://deneme/" komutu çalışıyor. Bunu ekran çıktısında görebiliyoruz. putty için bir protokol geliştirirken ise yapmak istediğimiz putty://ipadresi şeklindeki url yapılarında putty.exe ipadresi şeklinde bir komut çalıştırabilmek. Fakat yukarıdaki alert  protokolündeki gibi bir yöntem izlersek gibi şu haliyle putty.exe putty://ipadresi/ şeklinde çalışır. Kısacası bu parametreyi temizlememiz gerekiyor. 

Bunun için pputty.bat isimli bir batch script oluşturup bunu bu parametre temizleme işlemini yapmamız gerekiyor. Bu scripte her yerden ulaşabilmek için c:\windows\pputty.bat olarak kaydetmek mantıklı içeriği ise şu şekilde:

set p=%1
set p2="%p:~9,-2%"
echo %p2%
start putty %p2%

Bu kısa scriptin yaptığı baştaki 4 karakterle sonradaki 2 karakteri temizleyerek parametreyi p2 değişkenine alıyor. sonrasında da putty yi çalıştırıyor. 

Tabi bu script tek başına bir işe yaramıyor. Buna regedit ile  oluşturacağımız protokole bağlamamız gerekiyor. Bunun için yukarıdaki işlemlerin aynısı putty klasörü için yapıyoruz fakat komut olarak:

“c:\windows\system32\cmd.exe” /c pputty “%1”

veriyoruz. Böylece putty:// için yapılan her istek pputty.bat üzerinden putty.exe ye yönlendirilmiş olacak.

elle yapmak istemezseniz kaydedip çalıştırarak aynı sonuca erişebileceğiniz putty.reg dosyasının içeriği şöyle:

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\putty] "URL Protocol"=""
@="URL:Putty Protocol" [HKEY_CLASSES_ROOT\putty\shell]
[HKEY_CLASSES_ROOT\putty\shell\open]
[HKEY_CLASSES_ROOT\putty\shell\open\command] @="\"c:\windows\system32\cmd.exe\" /c pputty \"%1\""

Bu işlemlerden sonrada putty://ipadresi gibi linkler oluşturarak bunlar üzerinden putty ye rahatlıkla ulaşabilirsiniz. Bu işlemi kolaylaştırmak için bookmarklet de kullanabiliriz. Bunu sık kullanılanlar toolbarına sürükleyip bırakarak o an aktif olan domaine putty kullanarak bağlanabilirsiniz:

ek olarak istediğiniz her komutu exec://komut1 & komut2 şeklinde çalıştırmanızı sağlayacak exec protokolü için ise dosyalar şöyle:

pexec.bat:

set p=%1
set p2=%p:~8,-2%
echo %p2%
%p2%

exec.reg:

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\exec] "URL Protocol"=""
@="URL:Exec Protocol" [HKEY_CLASSES_ROOT\exec\shell]
[HKEY_CLASSES_ROOT\exec\shell\open]
[HKEY_CLASSES_ROOT\exec\shell\open\command] @="\"c:\windows\system32\cmd.exe\" /k pexec.bat \"%1\""

.bat dosyalarını c:\windows altına atmayı unutmayın. Dosya olarak indirmek isterseniz:

Kaynak:
https://docs.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/platform-apis/aa767914(v=vs.85)

Bir yanıt yazın

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