Betiğiniz Sadece Yönetici İle (Elevated) Çalışmaya Nasıl Zorlanır?
•
Güvenlik, ScriptingPowerShell
Mesela disk silecek veya IP sıfırlayacak (Set-NetIPAddress) bir komut fırlattınız. Bu komut normal CMD de sıradan bir kullanıcı üzerinden geçmez. Kullanıcı unutkanlıkla powershell e girip betiği açtığında kıpkırmızı 'Yetki Engeli' duvarlarına çarpar. Güzel bir script, kodun sahibini aşağılamaz; ona yön verir!
Self-Elevation (Kendi Kendini Yüceltme)
Kodun ilk başına altın küpeyi dolarız;
if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) {
Write-Warning "Lutfen Yonetici Olarak (Run As Administrator) calistirin!"
Start-Process PowerShell -Verb RunAs -ArgumentList "-File `"$PSCommandPath`""
Exit
}
İnanılmaz bir manevradır. Betik ilk okuduğunda kullanıcının rütbesini tartar. Administrator değil mi? Zınk diye kendini ezer ('Exit') lakin arkadan hemen kendi kendisine bir yeni konsol açarak o kara ekranı 'RunAs' (UAC kalkanı mühürüyle) tetikleyiverir! Profesyonelliğin şaheseridir.