PowerShell'den ps1 Dosyası Nasıl Çalıştırılır
PowerShell Komut Satırından Çalıştırma
PowerShell komut satırından bir PowerShell betiğini (.ps1 dosyası) çalıştırmak için:
- PowerShell'i Yönetici olarak başlatın ve
PS>isteminin görünmesini bekleyin. - PowerShell betik dosyanızın bulunduğu dizine gidin.
.\yazın ve ardındanScriptFileName.ps1yazın ve betiği çalıştırmak için Enter tuşuna basın.
PowerShell Komut satırından çalıştırın:
.\test.ps1
<#
test.ps1 has the following command that will
be executed when we will run the script
Write-Host "You've successfully run PowerShell Script."
#>ÇIKTI:
You've successfully run PowerShell Script.Yukarıda belirtilen adımları takip ederek PowerShell betiğini çalıştırmak için bazı önkoşulları yerine getirmelisiniz. Öncelikle PowerShell'i Yönetici olarak çalıştırabilmeniz gerekir. İkinci olarak, PowerShell yürütme ilkesini ByPass edebilmeniz veya bunu izin verilen bir değere ayarlayabilmeniz gerekir.
Şimdi asıl mesele şu: yürütme politikasını neden ayarlamamız veya ByPass yapmamız gerekiyor? Bunun nedeni, PowerShell yürütme politikasının varsayılan davranışı nedeniyle Kısıtlı olarak ayarlanmış olmasıdır; bu, .ps1 dosyasını çalıştıramayacağınız anlamına gelir. Yürütme politikası için aşağıda listelenen birkaç seçeneğimiz var:
Kısıtlı- PowerShell betiğinin çalıştırılmasına izin vermeyen varsayılan seçenektir.Kısıtlanmamış- Herhangi bir komut dosyasını çalıştıramayız; indirilen komut dosyaları için uyarıları gösterir.AllSigned- Yalnızca güvenilir yayıncılardan imzalı komut dosyalarının çalıştırılmasına izin verir.ByPass- Tüm komut dosyalarını herhangi bir uyarı olmadan çalıştırmamızı sağlar.RemoteSigned- Bu seçenek, indirilen komut dosyaları için dijital imza gerektirir. Yerel olarak yazılan komut dosyalarını çalıştırabilir ve indirilen komut dosyalarının engelini kaldırarak bunları imza olmadan çalıştırabiliriz.
Bu seçenekler hakkında daha fazla ayrıntı için bunu kontrol edebilirsiniz. Ayrıca .ps1 dosyasını, komut dosyasına Sağ Tıklayıp PowerShell ile Çalıştır'ı seçerek çalıştırabiliriz.
Windows Komut Satırından Çalıştırma
Windows Komut satırından (cmd.exe) bir PowerShell betiğini çalıştırmak için powershell -noexit komutunu kullanın.
Windows Komut satırından çalıştırın:
powershell -noexit "& ""E:\Test\test.ps1"""
<#
test.ps1 has the following command that will
be executed when we will run the script
Write-Host "You've successfully run PowerShell Script."
#>ÇIKTI:
You've successfully run PowerShell Script.Yukarıdaki komut, belirtilen PowerShell betiğini çalıştırmak için kullanıldı.
Her bir parçasını anlamak için onu parçalara ayıralım.
İlk olarak, PowerShell ortamını başlatmak için powershell'i kullandık, -noexit parametresi ise betiğin yürütülmesi bittikten sonra bile PowerShell penceresini açık tutmak için kullanıldı. Bu şekilde, az önce çalıştırılan script dosyasının ürettiği çıktıyı görebiliriz. Daha sonra komutu, kod bloğunu veya ifadeyi çalıştırmak için & işaretiyle temsil edilen çağrı operatörünü kullandık.
Bu komut
Windows Çalıştır İletişim Kutusu'ndan (Windows tuşu+ R ile açılır) veya yukarıda yaptığımız gibi komut isteminden çalıştırılır.Windows Çalıştır İletişim Kutusu'ndan çalıştırırsanız çıktının PowerShell penceresinde görüneceğini unutmayın. Öte yandan Windows Komut İstemi'nden çalıştırırsanız PowerShell Penceresini açmadan çıktıyı göreceksiniz.
İfadeyi Çağır Cmdlet'ini Kullanma
PowerShell komut satırından bir ps1 dosyasını çalıştırmak için:
- PowerShell'i Yönetici olarak başlatın ve
PS>isteminin görünmesini bekleyin. - PowerShell betik dosyanızın bulunduğu konuma gidin.
- PowerShell betiğini çalıştırmak için
Invoke-Expressioncmdlet'ini kullanın.
Invoke-Expression Cmdlet'ini kullanın:
Invoke-Expression .\test.ps1
<#
test.ps1 has the following command that will
be executed when we will run the script
Write-Host "You've successfully run PowerShell Script."
#>ÇIKTI:
You've successfully run PowerShell Script.Invoke-Expression cmdlet'i, ifadeyi veya komutları yerel bilgisayarımızda çalıştırmak için kullanılır. Verilen dizeyi bir komut olarak çalıştırır veya değerlendirir ve belirtilen komut veya ifadenin sonuçlarını döndürür.
Hepsi PowerShell'den ps1 Dosyasının nasıl çalıştırılacağıyla ilgili.
