Windows 10'da PowerShell Komut Dosyalarını Otomatik Çalıştırma
PowerShell, kötü amaçlı komut dosyalarının ve komutların yürütülmesini engelleyen birçok farklı güvenlik katmanına sahiptir. Örneğin, PowerShell yürütme politikasını değiştirmediğiniz sürece internetten indirdiğiniz bir betiği varsayılan olarak çalıştıramazsınız. Başka bir güvenlik önlemi, bir komut dosyasını çift tıklatarak çalıştırmanızı engeller. PS1 komut dosyalarını PowerShell ile ilişkilendiremezsiniz ve bir komut dosyasını çalıştırmanın tek yolu, komut dosyasına sağ tıklayıp çalıştır seçeneğini seçmektir. Çift tıkladığınızda Not Defteri'nde açılacaktır. Bu, bir güvenlik önlemi açısından harikadır ancak zamanlanmış bir görev çalıştırıldığında bir PowerShell betiğinin yürütülmesini istiyorsanız can sıkıcıdır. Çözüm basittir. PowerShell betiklerini otomatik olarak çalıştırmak için toplu betik kullanabilirsiniz.
Toplu Komut Dosyası
Windows 10'da PowerShell betiklerini otomatik olarak çalıştırmak için ihtiyacınız olan toplu komut dosyası aşağıdadır. Her PowerShell betiğinin kendi Toplu Betiğine ihtiyacı olacaktır.
Sözdizimi
@ECHO OFF
PowerShell.exe -Command "Path to script"
PAUSE"Komut dosyası yolu"nu, yürütmek istediğiniz PowerShell betiğinin gerçek yolu ile değiştirin. Aşağıdaki örneği düşünün;
Örnek
@ECHO OFF
PowerShell.exe -Command "C:\Reminder-Scripts\Milk\Buy-Milk.ps1"
PAUSE
Not Defteri'ni açın ve komut dosyasını içine yapıştırın. Dosyayı .bat uzantısıyla kaydedin.
Bu toplu iş dosyalarının yaptığı şey, PowerShell'i açması ve ardından işaret ettiğiniz betiği çalıştırmasıdır. Hala masaüstünüzdeki bir PowerShell betiğine çift tıklayıp PowerShell'de otomatik olarak çalışmasını sağlayamazsınız. Geçerli dosya bir Komut İstemi penceresi açacak ve 'Devam etmek için herhangi bir tuşa basın' mesajını gösterecektir. Bir tuşa bastığınızda ancak o zaman PowerShell betiği çalışır. Komut dosyasının sizin müdahalenize gerek kalmadan çalışmasını tercih ediyorsanız, yukarıdaki komut dosyasını düzenleyin ve 'PAUSE' satırını kaldırın. Şöyle görünmeli;
@ECHO OFF
PowerShell.exe -Command "Path to script"Görev Zamanlayıcı ve PowerShell Komut Dosyaları
Zamanlanmış bir göreve yönelik bir eylem olarak otomatik olarak bir PowerShell betiğini çalıştırmak istediğinizi varsayıyoruz. Bunu gerçekleştirmek için öncelikle yukarıda gösterildiği gibi PowerShell betiğini çalıştırmak üzere karşılık gelen bir Batch betiği oluşturmanız gerekir. Daha sonra, zamanlanmış bir görev oluşturduğunuzda, bir tetikleyiciye yanıt olarak gerçekleştirmesi gereken Eylem altında Toplu komut dosyasını seçin. Bu aslında PowerShell betiğini çalıştıracaktır.
Burada örnek olarak Görev Zamanlayıcı'yı kullandık ancak başka bir otomasyon uygulaması kullanıyorsanız Toplu komut dosyasını çağırmanız gerekecektir. Bunun tek istisnası, kullandığınız otomasyon uygulamasının PowerShell'i açıp ardından PowerShell betiğine yönlendirebilmesidir.
