Kurumsal veya bireysel Windows ortamlarında bazı uygulamaların çalışabilmesi için yönetici yetkisine ihtiyaç duyulabilir. Özellikle eski yazılımlar, donanım yönetim araçları, kamera izleme programları, muhasebe uygulamaları, sürücü veya servis seviyesinde çalışan araçlar standart kullanıcı yetkileriyle açılmayabilir.
Bu durumda en kolay çözüm, ilgili kullanıcıyı yerel yönetici grubuna eklemek gibi görünebilir. Ancak bu yöntem güvenlik açısından ciddi riskler oluşturur. Kullanıcıya tam yönetici yetkisi verildiğinde yalnızca ilgili uygulama değil, sistemdeki tüm yönetimsel işlemler de kullanıcı tarafından yapılabilir hale gelir. Bu da yanlışlıkla sistem ayarlarının değiştirilmesine, zararlı yazılım çalıştırılmasına veya kurum politikalarının ihlal edilmesine neden olabilir.
Bu nedenle amaç, kullanıcıya genel yönetici yetkisi vermeden yalnızca belirli bir uygulamanın yönetici yetkisiyle çalıştırılmasını sağlamaktır. Windows üzerinde bu işlem için farklı yöntemler kullanılabilir. En bilinen yöntemlerden biri runas komutudur. Bunun yanında RunAsSpc ve RunAsRob gibi üçüncü parti araçlar da daha kontrollü çözümler sunabilir.
Runas Nedir?
runas, Windows işletim sistemlerinde yerleşik olarak bulunan bir komut satırı aracıdır. Bu komut sayesinde bir program, oturum açmış kullanıcıdan farklı bir kullanıcı hesabı ile çalıştırılabilir.
Örneğin standart kullanıcı hesabıyla oturum açmış bir kişi, belirli bir uygulamayı yönetici hesabı üzerinden çalıştırmak için runas komutunu kullanabilir.

Temel kullanım örneği:
runas /user:Administrator "C:\Windows\System32\cmd.exe"
Bu komut çalıştırıldığında Windows, Administrator kullanıcısının parolasını ister. Parola doğru girilirse Komut İstemi ilgili kullanıcı hesabı ile açılır.
Runas Komut Sözdizimi
Runas komutunun genel sözdizimi şu şekildedir:
runas /user:KullaniciAdi "program_yolu"
Daha gelişmiş kullanım biçimleri ise şu şekildedir:
runas /user:UserName program [ [/noprofile | /profile] [/env] [/savecred | /netonly] ]
runas /smartcard [/user:UserName] program [ [/noprofile | /profile] [/env] [/savecred] ]
runas /trustlevel:TrustLevel program
Burada kullanılan parametrelerin anlamları şöyledir:
/user:UserName
Programın hangi kullanıcı hesabı ile çalıştırılacağını belirtir.
Kullanıcı adı farklı formatlarda yazılabilir:
/user:localuser
/user:localhost\localuser
/user:DOMAIN\domainuser
/user:domainuser@domain.local
Yerel bir hesap kullanılacaksa:
runas /user:localhost\admin "C:\Windows\System32\cmd.exe"
Domain hesabı kullanılacaksa:
runas /user:DOMAIN\adminuser "C:\Windows\System32\cmd.exe"
veya:
runas /user:adminuser@domain.local "C:\Windows\System32\cmd.exe"
şeklinde kullanılabilir.
program
Çalıştırılacak uygulamayı ifade eder. Bu bir .exe dosyası, yönetim konsolu, betik veya belirli parametrelerle çalışan bir uygulama olabilir.
Örnek:
runas /user:administrator "C:\Program Files\Application\program.exe"
Eğer uygulama yolunda boşluk varsa mutlaka çift tırnak kullanılmalıdır.
/noprofile
Belirtilen kullanıcının profilinin yüklenmemesini sağlar.
Örnek:
runas /noprofile /user:administrator "C:\Windows\System32\cmd.exe"
Bu seçenek uygulamanın daha hızlı açılmasını sağlayabilir. Ancak bazı uygulamalar kullanıcı profiline, AppData dizinine, kayıt defteri ayarlarına veya kullanıcıya özel yapılandırmalara ihtiyaç duyabilir. Bu tür durumlarda uygulama doğru çalışmayabilir.
/profile
Belirtilen kullanıcının profilinin yüklenmesini sağlar. Varsayılan davranış budur.
Örnek:
runas /profile /user:administrator "C:\Windows\System32\cmd.exe"
Uygulamanın kullanıcıya özel ayarları kullanması gerekiyorsa bu seçenek tercih edilebilir.
/env
Mevcut oturumdaki ortam değişkenlerini kullanır.
Örnek:
runas /env /user:DOMAIN\admin "C:\Windows\System32\notepad.exe"
Bu parametre, özellikle script veya otomasyon süreçlerinde mevcut kullanıcı ortamına ait değişkenlerin korunması gereken durumlarda işe yarayabilir.
/netonly
Girilen kimlik bilgilerinin yalnızca uzak kaynaklara erişim için kullanılmasını sağlar.
Örnek:
runas /netonly /user:DOMAIN\admin "C:\Windows\System32\cmd.exe"
Bu seçenek, yerel makinede farklı kullanıcı gibi çalışmadan, ağ üzerindeki kaynaklara farklı kimlik bilgileriyle erişmek için kullanılır.
Örneğin bir kullanıcı kendi bilgisayarında standart yetkiyle çalışırken, uzak bir paylaşım klasörüne veya domain kaynağına farklı bir hesapla erişmek isteyebilir.
/savecred
Girilen kullanıcı bilgilerinin Windows Credential Manager üzerinde saklanmasını sağlar.
Örnek:
runas /user:administrator /savecred "C:\Windows\System32\cmd.exe"
Bu komut ilk çalıştırıldığında parola sorulur. Parola girildikten sonra kimlik bilgisi Windows Credential Manager üzerinde saklanır. Sonraki çalıştırmalarda tekrar parola sorulmadan aynı kullanıcı bilgisi kullanılır.
Ancak bu parametre dikkatli kullanılmalıdır. Çünkü /savecred ile kaydedilen kimlik bilgileri yalnızca belirli bir uygulama için değil, aynı kullanıcı hesabıyla çalıştırılabilecek farklı uygulamalar için de kullanılabilir.
Yani kullanıcı, yalnızca izin verilmesi istenen programı değil, başka bir uygulamayı da aynı kaydedilmiş yönetici bilgileriyle çalıştırabilir. Bu durum ciddi bir güvenlik açığı oluşturur.
/smartcard
Kimlik bilgilerinin akıllı kart üzerinden sağlanmasını belirtir.
Örnek:
runas /smartcard /user:DOMAIN\admin "C:\Windows\System32\cmd.exe"
Akıllı kart kullanılan kurumsal ortamlarda tercih edilebilir.
/showtrustlevels
Kullanılabilecek güven seviyelerini listeler.
runas /showtrustlevels
/trustlevel
Belirli bir güven seviyesiyle program çalıştırmak için kullanılır.
runas /trustlevel:Level "program_yolu"
Bu parametre daha sınırlı güven seviyelerinde uygulama çalıştırmak için kullanılabilir. Ancak günlük yönetici yetkisi ihtiyacında genellikle /user parametresi daha sık kullanılır.
Runas Kullanım Örnekleri
CMD’yi farklı kullanıcı ile açmak
runas /user:administrator "C:\Windows\System32\cmd.exe"
Bu komut, Komut İstemi’ni administrator hesabı ile açar.
Yerel administrator hesabıyla CMD açmak
runas /noprofile /user:localhost\administrator "C:\Windows\System32\cmd.exe"
Bu kullanımda yerel makinedeki administrator hesabı kullanılır.
Domain admin hesabıyla Computer Management açmak
runas /profile /env /user:DOMAIN\admin "mmc %windir%\system32\compmgmt.msc"
Bu komut, Bilgisayar Yönetimi konsolunu domain üzerindeki bir yönetici hesabı ile açar.
Notepad’i farklı kullanıcı ile açmak
runas /env /user:user@domain.local "C:\Windows\System32\notepad.exe"
Belirli bir uygulamayı yönetici hesabıyla açmak
runas /user:administrator "C:\Path\Program.exe"
Eğer program parametre ile çalışacaksa:
runas /user:administrator "C:\Path\Program.exe parameter"
Runas ile Şifreyi Komut İçinde Vermek Mümkün mü?
Runas komutunda en çok karşılaşılan sorulardan biri şudur:
“Parolayı komutun içine yazarak uygulamayı otomatik çalıştırabilir miyim?”
Örneğin aşağıdaki gibi bir kullanım denenebilir:
runas /user:administrator /password:password "C:\Windows\System32\cmd.exe"
Ancak bu kullanım çalışmaz. Windows’un yerleşik runas komutu doğrudan /password parametresi desteklemez. Bunun temel nedeni güvenliktir. Parolanın komut satırında açık şekilde yer alması ciddi bir güvenlik riskidir. Çünkü komut geçmişinde, script dosyasında veya işlem izleme araçlarında parola görüntülenebilir.
Bu nedenle runas komutu kullanıcıdan parolayı interaktif olarak ister.
Runas /savecred Kullanımı
Parolanın her seferinde sorulmaması için runas komutunda /savecred parametresi kullanılabilir.
Örnek:
runas /user:administrator /savecred "C:\Windows\System32\cmd.exe"
İlk çalıştırmada kullanıcıdan parola istenir. Parola doğru girildikten sonra bilgiler Windows Credential Manager üzerinde saklanır. Daha sonraki çalıştırmalarda parola tekrar sorulmaz.
Belirli bir uygulama için örnek kullanım:
runas /user:myadmin /savecred "C:\Path\Program.exe"
Bu yöntem özellikle belirli bir programı standart kullanıcı oturumunda yönetici hesabı ile açmak için pratik görünebilir.
Ancak burada önemli bir güvenlik noktası vardır:
/savecred ile saklanan kimlik bilgileri yalnızca belirli bir uygulamaya bağlı değildir. Kullanıcı bu kaydedilmiş yönetici bilgisini kullanarak farklı uygulamaları da çalıştırabilir. Bu nedenle /savecred, kontrolsüz ortamlarda ve son kullanıcı bilgisayarlarında dikkatli kullanılmalıdır.
/savecred Güvenlik Riski
/savecred kullanımı kolaydır ancak güvenlik açısından risklidir.
Örneğin kullanıcıya yalnızca bir kamera izleme yazılımını yönetici yetkisiyle açma imkânı vermek istediğinizi düşünelim. Eğer bu kullanıcı için yönetici bilgisi /savecred ile kaydedildiyse, kullanıcı farklı bir komutla başka programları da aynı yönetici hesabıyla çalıştırmayı deneyebilir.
Örneğin:
runas /user:administrator /savecred "C:\Windows\System32\cmd.exe"
Bu durumda kullanıcı yönetici yetkili Komut İstemi açabilir. Bu da sistem üzerinde çok geniş yetkilere sahip olması anlamına gelir.
Bu nedenle /savecred yöntemi yalnızca güvenilir, kontrollü ve düşük riskli senaryolarda kullanılmalıdır. Kurumsal ortamlarda ise daha kısıtlayıcı ve denetlenebilir çözümler tercih edilmelidir.
RunAsSpc Nedir?
RunAsSpc, belirli bir programı farklı bir kullanıcı hesabı ile çalıştırmak için kullanılan üçüncü parti bir araçtır. runas komutuna benzer şekilde çalışır ancak bazı ek özellikler sunar.
RunAsSpc ile parola doğrudan parametre olarak verilebilir veya kullanıcı bilgileri şifrelenmiş bir .spc dosyasında saklanabilir.
Basit kullanım örneği:
runasspc.exe /user:myadmin /password:"password" /program:"C:\Path\Program.exe"
Bu komut, belirtilen programı myadmin kullanıcısı ve verilen parola ile çalıştırır.
Ancak burada dikkat edilmesi gereken çok önemli bir nokta vardır: Parolanın komut satırına açık şekilde yazılması güvenli değildir. Bu parola script dosyasında, işlem listesinde, komut geçmişinde veya yetkisiz kişilerin erişebileceği alanlarda görülebilir.
Bu nedenle doğrudan /password parametresi ile kullanım yerine şifrelenmiş dosya yöntemi tercih edilmelidir.
RunAsSpc ile Şifrelenmiş Dosya Kullanımı
RunAsSpc’nin daha güvenli kullanım yöntemlerinden biri, kullanıcı bilgilerini ve yetkilendirilen uygulama bilgisini şifrelenmiş bir .spc dosyasında saklamaktır.
Bu dosya RunAsSpcAdmin adlı grafik arayüz ile oluşturulabilir. Oluşturulan dosyada şu bilgiler yer alır:
- Kullanıcı adı
- Parola
- Domain veya yerel bilgisayar bilgisi
- Çalıştırılmasına izin verilen uygulama yolu
- Uygulama parametreleri
Daha sonra uygulama şu şekilde çalıştırılabilir:
runasspc.exe /cryptfile:"C:\Path\AnyApplicationWithCredentials.spc"
Bu yöntemin avantajı, kimlik bilgilerinin doğrudan komut satırında açık şekilde yazılmamasıdır. Ayrıca .spc dosyası belirli bir uygulama için hazırlanabildiği için yetkilendirme daha kontrollü hale gelir.
Örnek .spc dosyası oluşturma komutu:
runasspc.exe /cryptfile:"C:\Path\Application.spc" /domain:localhost /user:admin /password:"password" /program:"C:\Windows\System32\cmd.exe"
Her uygulama için ayrı bir .spc dosyası oluşturulabilir. Bu sayede farklı uygulamalar için farklı yetkilendirme dosyaları kullanılabilir.
RunAsSpc Kullanım Senaryosu
Örneğin standart kullanıcıların belirli bir kamera izleme yazılımını yönetici yetkisiyle açması gerekiyor olabilir. Kullanıcılara doğrudan yerel admin yetkisi vermek yerine ilgili uygulama için özel bir .spc dosyası oluşturulabilir.
Örnek çalışma komutu:
runasspc.exe /cryptfile:"C:\Tools\CameraApp.spc"
Bu komut bir kısayola veya batch dosyasına eklenebilir. Kullanıcı kısayola tıkladığında yalnızca yetkilendirilen uygulama belirtilen yönetici hesabı ile çalışır.
Bu yöntem, runas /savecred kullanımına göre daha kontrollü bir yaklaşım sunar. Çünkü amaç, tüm uygulamalara yönetici hakkı vermek değil, yalnızca belirli uygulamayı yükseltilmiş yetkiyle çalıştırmaktır.
RunAsSpc’nin Avantajları
RunAsSpc’nin öne çıkan avantajları şunlardır:
- Standart kullanıcıya yerel admin yetkisi verilmesine gerek kalmaz.
- Belirli uygulamalar yönetici hesabıyla çalıştırılabilir.
- Şifrelenmiş
.spcdosyası kullanılabilir. - Farklı uygulamalar için ayrı yetkilendirme dosyaları oluşturulabilir.
- Portable olarak kullanılabilir.
- Kurulum gerektirmeden çalıştırılabilir.
- Kısayol, batch dosyası veya script içine entegre edilebilir.
Ancak yine de dikkat edilmesi gereken nokta, yönetici kimlik bilgisinin bir şekilde bu yapıda kullanılıyor olmasıdır. Bu nedenle dosya izinleri, klasör erişimleri ve kullanıcı yetkileri dikkatli şekilde yapılandırılmalıdır.
RunAsSpc Kullanırken Dikkat Edilmesi Gerekenler
RunAsSpc veya benzer araçları kullanırken aşağıdaki güvenlik önlemleri uygulanmalıdır:
.spcdosyaları herkese açık dizinlerde tutulmamalıdır.- Dosya ve klasör izinleri NTFS seviyesinde sınırlandırılmalıdır.
- Kullanılan yönetici hesabı mümkünse yalnızca ilgili işlem için yetkilendirilmelidir.
- Domain Admin gibi yüksek yetkili hesaplar kullanılmamalıdır.
- Yerel admin hesabı kullanılacaksa parola politikası güçlü olmalıdır.
- Kullanıcıya yalnızca ihtiyacı olan uygulama için erişim verilmelidir.
- Komut satırında açık parola kullanımından kaçınılmalıdır.
- Uygulama yolu değiştirilemeyecek şekilde korunmalıdır.
- Kısayol veya batch dosyası kullanıcı tarafından düzenlenememelidir.
- Loglama ve denetim mekanizmaları aktif olmalıdır.
Özellikle kurum ortamlarında bu tarz çözümler uygulanmadan önce güvenlik ekibi, sistem yöneticileri ve yetki yönetimi politikaları dikkate alınmalıdır.
RunAsRob Alternatifi
RunAsRob, benzer amaçla kullanılan farklı bir araçtır. RunAsSpc’den farklı olarak yaklaşımı biraz daha değişiktir.
RunAsRob bazı senaryolarda kullanıcı hesabını geçici olarak yerel yöneticiler grubuna dahil ederek işlem yaptırabilir. Bu sayede uygulama, farklı bir yönetici hesabı profiliyle değil, kullanıcının kendi profiliyle çalışabilir.
Bu yaklaşımın avantajı şudur:
- Kullanıcının kendi profil ayarları korunur.
- Yazıcılar, ağ paylaşımları, NTFS izinleri ve kullanıcıya özel registry ayarları değişmeden kalır.
- Uygulama, kullanıcının kendi oturum bağlamında çalışabilir.
- Belirli program yolları veya klasörler için yetkilendirme yapılabilir.
RunAsRob ayrıca belirli uygulamaların SYSTEM hesabı altında çalıştırılmasına da imkân verebilir. SYSTEM hesabı yerel makinede standart administrator hesabından daha yüksek yetkilere sahiptir. Bu nedenle bu seçenek çok dikkatli kullanılmalıdır.
SYSTEM hesabı altında çalışan işlemler UAC engeline takılmaz ve birçok sistem dizinine erişebilir. Bu özellik bazı bakım, yedekleme, izleme, sürücü kurulumu veya güncelleme senaryolarında faydalı olabilir. Ancak yanlış yapılandırıldığında ciddi güvenlik açıklarına neden olabilir.
Runas, RunAsSpc ve RunAsRob Karşılaştırması
| Yöntem | Avantaj | Dezavantaj |
|---|---|---|
| Runas | Windows içinde yerleşik gelir, ek kurulum gerekmez | Parolayı doğrudan komutta veremez, otomasyon sınırlıdır |
| Runas /savecred | İlk paroladan sonra tekrar parola sormaz | Kaydedilen kimlik bilgisi farklı uygulamalar için de kullanılabilir |
| RunAsSpc | Belirli uygulama için şifrelenmiş dosya kullanılabilir | Üçüncü parti araçtır, dikkatli yapılandırılmalıdır |
| RunAsRob | Kullanıcının kendi profiliyle yetkili işlem yapılabilir | Yanlış yapılandırılırsa yüksek güvenlik riski oluşturabilir |
| Scheduled Task | Windows’un yerleşik ve kontrollü yöntemlerinden biridir | İlk kurulum ve yetki yapılandırması daha dikkat ister |
Alternatif Güvenli Yöntem: Scheduled Task Kullanımı
Bazı senaryolarda üçüncü parti araçlar yerine Windows Task Scheduler kullanılabilir.
Bir görev, yönetici hesabı ile oluşturulup yalnızca belirli bir uygulamayı çalıştıracak şekilde yapılandırılabilir. Daha sonra standart kullanıcı bu görevi tetikleyebilir.
Bu yaklaşım, özellikle belirli bakım işlemleri, servis restart işlemleri veya tek amaçlı script çalıştırma senaryolarında daha kontrollü olabilir.
Örnek görev çalıştırma komutu:
schtasks /run /tn "ApplicationRunAsAdmin"
Bu yöntemde dikkat edilmesi gereken nokta, görevin yalnızca istenen uygulamayı çalıştırması ve kullanıcı tarafından değiştirilememesidir.
Kurumsal Ortamlarda Önerilen Yaklaşım
Kurumsal yapılarda standart kullanıcılara doğrudan admin yetkisi verilmemelidir. Bunun yerine aşağıdaki prensipler uygulanmalıdır:
- Least Privilege prensibi benimsenmelidir.
- Kullanıcıya yalnızca ihtiyacı olan yetki verilmelidir.
- Yerel admin hesapları merkezi olarak yönetilmelidir.
- Domain Admin hesapları son kullanıcı uygulamaları için kullanılmamalıdır.
- Uygulama bazlı yetkilendirme tercih edilmelidir.
- AppLocker veya Windows Defender Application Control gibi çözümlerle uygulama kontrolü yapılmalıdır.
- Yetkili çalıştırılan uygulamalar loglanmalıdır.
- Kullanıcıların çalıştırabileceği dosya yolları sınırlandırılmalıdır.
- Script, batch ve kısayol dosyaları kullanıcı tarafından değiştirilememelidir.
- Kullanılan yönetici hesabının parolası düzenli olarak değiştirilmelidir.
Örnek Senaryo: Standart Kullanıcı İçin Belirli Programı Yönetici Olarak Çalıştırma
Bir kurumda standart kullanıcıların C:\Program Files\CameraApp\Camera.exe uygulamasını çalıştırması gerekiyor. Ancak uygulama yönetici yetkisi istemektedir.
Riskli yöntem
runas /user:administrator /savecred "C:\Program Files\CameraApp\Camera.exe"
Bu yöntem ilk aşamada çalışır. Ancak kullanıcı aynı kayıtlı kimlik bilgisini başka uygulamalar için de kullanabilir.
Daha kontrollü yöntem
RunAsSpc ile yalnızca ilgili uygulama için .spc dosyası oluşturulabilir:
runasspc.exe /cryptfile:"C:\Tools\CameraApp.spc"
Bu dosya yalnızca ilgili uygulamayı çalıştıracak şekilde hazırlanır. Kullanıcıya doğrudan admin parolası verilmez. Böylece kullanım daha kontrollü hale gelir.
En İyi Uygulamalar
Bu tarz çözümler uygulanırken aşağıdaki maddelere özellikle dikkat edilmelidir:
- Parolalar hiçbir zaman açık metin olarak script içine yazılmamalıdır.
/savecredkullanımı mümkün olduğunca sınırlandırılmalıdır.- Uygulama özelinde yetkilendirme yapılmalıdır.
- Kullanıcıya tam admin hakkı verilmemelidir.
- Kullanılan hesap yalnızca gerekli minimum yetkilere sahip olmalıdır.
- Uygulama dizini kullanıcı tarafından değiştirilememelidir.
- Yetkili çalışacak dosya yolu sabit ve korumalı olmalıdır.
- Kullanıcıların
.exedosyasını değiştirerek farklı bir uygulama çalıştırması engellenmelidir. - Çözüm uygulanmadan önce test ortamında denenmelidir.
- İşlem logları düzenli olarak kontrol edilmelidir.
Windows ortamlarında belirli bir uygulamayı yönetici yetkisiyle çalıştırmak için birden fazla yöntem vardır. Yerleşik runas komutu basit ve hızlı bir çözüm sunar. Ancak /savecred parametresi güvenlik açısından dikkatli kullanılmalıdır. Çünkü kaydedilen yönetici bilgileri yalnızca hedef uygulama için değil, başka uygulamalar için de kullanılabilir.
RunAsSpc gibi araçlar, belirli uygulama ve kimlik bilgilerini şifrelenmiş dosya içerisinde saklayarak daha kontrollü bir yapı sunabilir. RunAsRob ise farklı bir yaklaşım ile kullanıcının kendi profilini koruyarak belirli işlemleri yükseltilmiş yetkilerle çalıştırmaya imkân verebilir.
Ancak hangi yöntem tercih edilirse edilsin, temel prensip değişmez: Kullanıcıya gereğinden fazla yetki verilmemelidir. Amaç, kullanıcıyı yönetici yapmak değil, yalnızca ihtiyaç duyulan uygulamayı güvenli ve kontrollü şekilde çalıştırabilmektir.
Bu nedenle en doğru yaklaşım; uygulama bazlı yetkilendirme, güçlü parola politikası, dosya izinlerinin doğru yapılandırılması, loglama ve minimum yetki prensibinin birlikte uygulanmasıdır.
Download link : https://runasspc.com/index.html