PsExec Nedir? Nasıl Kullanılır?
Eski zamanlarda uzak bilgisayarlar üzerinden komut çalıştırmak için Symantec firmasının PC Anywhere yazılımı gibi yazılımlar yoğun kullanılırdı. Son zamanlarda kullanılan sistemlerde özellikle Microsoft tabanlı sistemlerde PowerShell mimarisinin gelişmesiyle birçok işlem PowerShell üzerinden yapılabilir duruma geldi. Yine de bazı durumlarda farklı araçlar kullanmanız gerekiyor. Tabi bu sizin de iş yapış şeklinize bağlı.
PsExec toolu uzaktaki bilgisayarlarda komut çalıştırarak, sonuçlarını komutu çalıştıran bilgisayarda görmemizi sağlar. Tool https://technet.microsoft.com/en-us/sysinternals/psexec.aspx bu adresten indirilebilir. Tool Mark Russunovich tarafından geliştirilmiştir.
Tool CMD üzerinden çalıştırıldığında PsExec komutu çalıştırılınca aşağıdaki ekran karşınıza gelecektir. Bu ekranda komutun kullanımı ve parametreleri bizlere sunulmaktadır. Bu parametrelerin neler yaptığına biraz göz atalım.
Parametre |
Kullanım Amacı |
-a |
Uygulamanın hangi işlemcide uygulanacağı belirlenir. Örnek olarak uygulamayı CPU 1 ve CPU 2 de işletmek için “-a 1,2″ parametresini girmek lazım. |
-c |
Belirtilen programı uzak bilgisayara kopyalar. Eğer boş bırakılırsa uygulamanın uzak sistemde çalıştırılabilir sistem yolu üzerinde bulunması gereklidir. |
-d |
Uygulamanın bitmesini bekleme. |
-e |
Belirlenmiş kullanıcı profilini yükler. |
-f |
Program uzak sistemde yüklü olsa bile kopyalama yapar. |
-i |
Uzak sistemin masaüstü ile etkileşecek şekilde programı çalıştırır. |
-l |
Süreç limitli kullanıcı olarak çalıştırır. |
-n |
Uzak bilgisayardan timeout zamanını saniye olarak belirler. |
-p |
Kullanıcı adına şifre belirler. Değer boş geçilirse şifre girişi için bir ekran açar. |
-s |
Uzak süreç Sistem hesabı ile çalışır |
-u |
Uzak bilgisayara giriş için kullanıcı adı belirler. |
-v |
Program eğer uzak bilgisayardakinden yeni veya daha üst versiyonda ise kopyalama işlemi yapar. |
-w |
Sürecin çalışacağı klasörü belirler. |
-x |
Kullanıcı arabirimini Winlogon masaüstünde gösterir. |
-priority |
Sürecin çalışma önceliğini belirler -low, -belownormal, -abovenormal, -high veya -realtime |
computer |
PsExec’in hangi bilgisayar veya bilgisayarlarda çalıştırılacağı belirler. Eğer boş bırakırsanız lokal sistemde çalışır, eğer bilgisayar ismi olarak “\\*” verilirse içinde bulunulan domaindeki bütün bilgisayarlarda uygulama çalıştırılır. |
@file |
PsExec’in yazi dosyasında listelenen her bilgisayar için çalışmasını sağlar |
Şimdi birkaç örnek yapalım test için bağlanmak ve işlemlerimize ait komutları çalıştırmak için aşağıdaki gibi DESKTOP-12T70KJ ismine ve 192.168.1.100 ip adresine sahip bir bilgisayarımız var.
Bu bilgisayarımıza ping atıp erişebilir durumdayız.
Şidi kendi bilgisayarımıza bakalım. Rizasahan isminde Windows 10 işletim sistemine sahip bir bilgisayarımız var. Testlerde Rizasahan isimli bilgisayardan sanal bilgisayarımız üzerine PsExec tool ile bazı işlemler yapacağız.
Öncelikle yukarıdaki adresten tool’u indirelim ve CMD üzerinden Tool dizinine girelim.
Öncelikel uzak işlem yapılacak sanal makinamıza bağlanalım. Bağlantı için \\uzakip veya hostname –u Bigisayarİsmi\Hesap adı –p Parola CMD olarak komutumuzu girelim Yani durum PsExec \\192.168.1.100 –u DESKTOP-12T70KJ\Administrator –p Password1 CMD şeklinde olacak. Bu komutla karşı bilgisayar üzerinde CMD promt çalıştırmış olacağız ve yazacağımız komutlar uzak bilgisayar üzerinde çalışacak.
Yukarıda verdiğimiz komut ile aşağıda görüldüğü gibi uzak bilgisayarımız üzerindeki CMD ekranına bağlandık. Artık uzak bilgisayar üzerinde test için bazı işlemler yapabilir durumdayız.
Hostname komutunu çalıştırdığımızda görüldüğü üzere uzak bilgisayarımızın adı çıktı.
Şimdi uzak bilgisayarımız üzerinde bir bat dosyası oluşturalım.
Bat dosyamızın içeriği aşağıdaki gibi. Yani ping atacak ve bunu ping.txt dosyasına kaydedecek.
Uzak bilgisayarımız üzerindeki ping.bat dosyasını çalıştıralım. Uzak bilgisayar üzerinde işlem yaptığımızı CMD promt başlığındaki \\192.168.1.100 ifadesinden anlayabilirsiniz.
Komutumuz çalıştı.
Uzak bilgisayarın C:\ diski üzerinde istediğimiz şekilde ping.txt dosyası oluştu.
Dosyamızın içeriğinde komutumuzun icra ettiği işlemler yer alıyor.
Şimdi örnek olarak uzak bilgisayar üzerinde bir kullanıcı oluşturalım. Öncelikle aşağıda şu anda var olan kullanıcılarımıza göz atalım.
Kullanıcı oluşturmak için net user oluşturulacak kullanıcı adı parola /add yani net user cozumpark Password1 /add şeklinde komutumuzu girelim.
Komutumuz başarı ile tamamlandı.
Kullanıcılarımıza tekrardan baktığımızda Cozumpark isimli kullanıcımızın oluştuğunu görmekteyiz.
Şimdi uzak bilgisayar üzerinde regedit çalıştıralım. Bunun için aşağıdaki komutu uygulayabiliriz.
PsExec –i –d “C:\windows\regedit.exe”
Regedit sorunsuzca çalıştı.
Şimdi farklı örnek olarak aşağıdaki komut ile İnternet Explorer çalıştıralım.
PsExec –i –d “C:\Program Files\Internet Explorer\iexplore.exe”
Ve İnternet Explorer sorunsuzca çalıştı.
Tool bazen bazı durumlarda can kurtarıcı olabiliyor. Bu gün birçok işlem gui ortamdan yapılabilir durumda ancak komutla yapılabilen her işlem Guiden yapılamaz durumda J Umarım yararlı olur. Farklı bir makalemizde görüşmek üzere.