What is PsExec?
Telnet gibi yardımcı programlar ve Symantec'in bilgisayarı gibi uzaktan denetim programları Her yerde uzak sistemlerde program yürütmenize olanak tanır, ancak bu programlar kurmakta sorun olabilir ve erişmek istediğiniz uzak sistemlere istemci yazılımı yüklemenizi gerektirebilir. PsExec, istemci yazılımını el ile yüklemek zorunda kalmadan konsol uygulamaları için tam etkileşimle birlikte diğer sistemlerde işlemleri yürütmenize olanak tanıyan basit bir telnet değiştirme işlemidir. PsExec'in en güçlü kullanımları, uzak sistemlerde etkileşimli komut istemleri başlatmayı ve ipconfig gibi uzak sistemler hakkında bilgi gösterme olanağı olmayan uzaktan etkinleştirme araçlarını içerir.
Not: Bazı virüsten koruma tarayıcıları, araçlardan birine veya daha fazlasına "uzaktan yönetici" virüsü bulaştığını bildirir. PsTool'ların hiçbiri virüs içermiyor, ancak virüsler tarafından kullanılıyorlar, bu yüzden virüs bildirimlerini tetikliyorlar.
Daha fazla bilgi ve aracı indirmek için bakınız.
https://learn.microsoft.com/tr-tr/sysinternals/downloads/psexec
PsExec Kullanımı
PsExec'i kullanmak için, yürütülebilir yolunuz üzerine kopyalamanız yeterlidir. "psexec" yazdıktan sonra kullanım söz dizimi görüntülenir.

Syntax
psexec [\\\\computer[,computer2[,...] | @file]][-u user [-p psswd]][-n s][-r servicename][-h][-l][-s|-e][-x][-i [session]][-c [-f|-v]][-w directory][-d][-<priority>][-g n][-a n,n,...][-accepteula][-nobanner] cmd [arguments]
| Parametre | Tanım |
|---|---|
| -a | Uygulamanın virgülle çalışabileceği ayrı işlemciler, burada 1 en düşük numaralı CPU'dur. Örneğin, uygulamayı CPU 2 ve CPU 4'te çalıştırmak için şunu girin: "-a 2,4" |
| -c | Belirtilen yürütülebilir dosyayı yürütülmek üzere uzak sisteme kopyalayın. Bu seçeneği atlarsanız, uygulamanın uzak sistemdeki sistem yolunda olması gerekir. |
| -D | İşlemin sona ermesini beklemeyin (etkileşimli değildir). |
| -E | Belirtilen hesabın profilini yüklemez. |
| -F | Dosya uzak sistemde zaten mevcut olsa bile belirtilen programı kopyalayın. |
| -i | Uzak sistemdeki belirtilen oturumun masaüstüyle etkileşim kurabilmesi için programı çalıştırın. Oturum belirtilmezse işlem konsol oturumunda çalıştırılır. Konsol uygulamalarını etkileşimli olarak çalıştırmaya çalışırken (yeniden yönlendirilen standart GÇ ile) bu bayrak gereklidir . |
| -h | Hedef sistem Vista veya üzeriyse, işlem varsa hesabın yükseltilmiş belirteciyle çalıştırılır. |
| -L | İşlemi sınırlı kullanıcı olarak çalıştırın (Yönetici istrators grubunu şeritler ve yalnızca Kullanıcılar grubuna atanan ayrıcalıklara izin verir). Windows Vista'da işlem Düşük Bütünlük ile çalışır. |
| -n | Uzak bilgisayarlara bağlanmak için saniyeler içinde zaman aşımını belirtir. |
| -P | Kullanıcı adı için isteğe bağlı parolayı belirtir. Bunu atlarsanız gizli bir parola girmeniz istenir. |
| -r | Oluşturulacak veya etkileşim kurulacak uzak hizmetin adını belirtir. |
| -s | Sistem hesabında uzak işlemi çalıştırın. |
| -U | Uzak bilgisayarda oturum açmak için isteğe bağlı kullanıcı adını belirtir. |
| -v | Belirtilen dosyayı yalnızca daha yüksek bir sürüm numarasına sahipse veya uzak sistemdekinden daha yeniyse kopyalayın. |
| -W | İşlemin çalışma dizinini ayarlayın (uzak bilgisayara göre). |
| -X | Kullanıcı arabirimini Winlogon güvenli masaüstünde görüntüleyin (yalnızca yerel sistem). |
| -Öncelik | İşlemi farklı bir öncelikle çalıştırmak için -low, -belownormal, -abovenormal, -high veya -realtime değerlerini belirtir. Vista'da düşük bellek ve G/Ç önceliğiyle çalışmak için -background kullanın. |
| Bilgisayar | PsExec'i uygulamayı belirtilen uzak bilgisayarda veya bilgisayarlarda çalıştırmaya yönlendirin. Bilgisayar adını atlarsanız, PsExec uygulamayı yerel sistemde çalıştırır ve joker karakter (\\*) belirtirseniz PsExec, geçerli etki alanındaki tüm bilgisayarlarda komutunu çalıştırır. |
| @file | PsExec, dosyasında listelenen bilgisayarların her birinde komutunu yürütür. |
| Cmd | Yürütülecek uygulamanın adı. |
| Bağımsız değişken | Geçirilecek bağımsız değişkenler (dosya yollarının hedef sistemde mutlak yollar olması gerektiğini unutmayın). |
| -accepteula | Bu bayrak, lisans iletişim kutusunun görüntülenmesini gizler. |
| -nobanner | Bu bayrak, başlangıç başlığını ve telif hakkı iletisini gizler. |
Adında boşluk bulunan uygulamaları tırnak içine alabilirsiniz; örneğin,
psexec \\marklap "c:\\long name app.exe"
Giriş yalnızca Enter tuşuna bastığınızda uzak sisteme geçirilir. Ctrl-C yazdıktan sonra uzak işlem sonlandırılır.
Kullanıcı adını atlarsanız, işlem uzak sistemdeki hesabınız bağlamında çalışır, ancak ağ kaynaklarına erişimi olmaz (kimliğine bürünme nedeniyle). Uzak işlemin ağ kaynaklarına erişmesi Domain\User veya farklı bir hesapta çalıştırılması gerekiyorsa söz diziminde geçerli bir kullanıcı adı belirtin. Parola ve komutun uzak sisteme aktarılırken şifrelendiğini unutmayın.
PsExec tarafından döndürülen hata kodları, PsExec tarafından değil, yürüttüğüniz uygulamalara özeldir.
PsExec Örnekler
PsExec'i kullanmak için, yürütülebilir yolunuz üzerine kopyalamanız yeterlidir. Eğer kullanıcınız, karşı makinada yetkili bir hesap ise herhangi bir kullanıcı adı ve parola belirtmenize gerek yoktur.
Aşağıdaki komut, üzerinde \\ip-adresi veya \\hostname etkileşimli bir komut istemi başlatır. İpconfig komutu, /all anahtarıyla uzak sistemde IpConfig yürütür ve sonuçta elde edilen çıkışı yerel olarak görüntüler.
psexec \\ip-address ipconfig /all

access denied hatası alınır ise kullanıcı yetkisiz olduğu anlamına gelmektedir. Yetkili bir kullanıcı ile işlem yapmaya çalışın.
Yukarıdaki örnek gibi, bir çok komutu bu şekilde çalıştırabilirsiniz. Ya da uzak makinada bir komut istemcisi başlatıp aşağıdaki gibi komutları çalıştırabilirsiniz.
psexec -i \\ip-address cmd

Uzak makinaya bağlı iken, komut satırından uzak makinada kullanıcı adı mehmet ve parolası Ankara06. olan bir hesap oluşturalım.
net user mehmet Ankara06. /add

Daha ileri bir örnek vermek gerekirse elimizdeki bir listedeki tüm bilgisayarlarda yazdığımız bir scripti çalıştırabiliriz. Bu scriptin içeriği sizin hayal gücünüze kalmış.
- Computernames: kısmına bilgisayar isimlerini ve ip adresini ekleyin.
- <domain>\administrator : example.local\yetkili kullanıcı adı
- password: Yetki kullanıcının parolası
- \\Myserver: Kullanıcıların ulaşabileceği scriptin adresi.
Ekstra Parametre
- -i Uzak sistemdeki belirtilen oturumun masaüstüyle etkileşim kurabilmesi için programı çalıştırın.
- -h Hedef sistem Vista veya üzeriyse, işlem varsa hesabın yükseltilmiş belirteciyle çalıştırılır.
- -s Sistem hesabında uzak işlemi çalıştırın.
- -d İşlemin sona ermesini beklemeyin (etkileşimli değildir).
- -n Uzak bilgisayarlara bağlanmak için saniyeler içinde zaman aşımını belirtir. (Çok fazla bilgisayar olduğunda zaman kazandıracaktır.)
bat vb. çalıştırmak için.
for /f %f in (c:\computernames.txt) do psexec \\%f -u <domain>\administrator -p <password> \\MyServer\MyShare\UnInstallDCAgent.bat
Vbs script çalıştırmak için.
for /f %f in (c:\computernames.txt) do psexec \\%f -u <domain>\administrator -p <password> CSCRIPT \\MyServer\MyShare\UnInstallDCAgent.vbs
