Bir sistemin yönetici kullanıcısıysanız ve örneğin bir toplu iş betiğine sağ tıklayıp yönetici parolasını girmeden Yönetici olarak çalıştırabildiğinizi biliyor musunuz?
Bunu bir PowerShell betiği ile nasıl yapacağımı merak ediyorum. Parolamı girmek zorunda kalmak istemiyorum; sadece sağ tıklama Yönetici Olarak Çalıştır yöntemini taklit etmek istiyorum.
Şu ana kadar okuduğum her şey yönetici şifresini girmenizi gerektiriyor.
.ps1` dosyaları için "Yönetici olarak çalıştır" içerik menüsü elde etmek için bazı kayıt defteri girdilerini kolayca ekleyebilirsiniz:
New-Item -Path "Registry::HKEY_CLASSES_ROOT\Microsoft.PowershellScript.1\Shell\runas\command" `
-Force -Name '' -Value '"c:\windows\system32\windowspowershell\v1.0\powershell.exe" -noexit "%1"'
(@Shay'den daha basit bir komut dosyasına güncellendi)
Temel olarak HKCR:\Microsoft.PowershellScript.1\Shell\runas\command
adresinde Powershell kullanarak komut dosyasını çağırmak için varsayılan değeri ayarlayın.
Bu davranış tasarım gereğidir. Microsoft, .ps1 dosyalarının en son e-posta virüsü olmasını gerçekten istemediğinden, birden fazla güvenlik katmanı vardır. Bazı insanlar bunu görev otomasyonu kavramına aykırı buluyor, ki bu adil. Vista+ güvenlik modeli, işleri otomatiğe bağlamak ve böylece kullanıcının bunları onaylamasını sağlamaktır.
Ancak, powershell'in kendisini yükseltilmiş olarak başlatırsanız, powershell'i kapatana kadar tekrar parola istemeden toplu iş dosyalarını çalıştırabileceğinden şüpheleniyorum.