PowerShell Komut Dosyalarını Çalıştırma Sanatında Ustalaşmak: Kapsamlı Adım Adım Kılavuz
Başlık: PowerShell Betiğinin Nasıl Çalıştırılacağı konusunda Uzmanlaşmak İçin 5 Temel Adım
PowerShell betiğini çalıştırmaya çalışırken hiç kafa karıştırıcı bir sorunla karşılaştınız mı? Eğer öyleyse, o zaman bu makale tam size göre! Herhangi bir PowerShell betiğini sorunsuz bir şekilde yürütmek için 5 önemli adımda size yol göstereceğim. Bu makalenin sonunda PowerShell betiklerini çalıştırmanın inceliklerine ilişkin içgörüler elde edecek ve bir dahaki sefere karşınıza çıkabilecek engelleri aşacaksınız. O halde hadi dalalım!
# 1. PowerShell Betiklerinin Temellerini Anlamak
Bir PowerShell betiğinin nasıl çalıştırılacağını öğrenmeden önce, PowerShell'in ne olduğunu ve betik kavramını anlamak önemlidir. PowerShell, Microsoft için özel olarak tasarlanmış, kullanıcılara Windows işletim sistemleri üzerinde tam kontrol sağlayan güçlü bir kodlama dilidir.
PowerShell'deki bir komut dosyası, tek bir birim olarak çalıştırılabilen, tekrarlanan görevleri otomatikleştiren veya yalnızca sistem yöneticilerinin hayatını kolaylaştıran, bir metin dosyasına (.ps1 dosya uzantısına sahip) yazılan bir komut dizisidir. Bu ilk adım, PowerShell'in ne olduğu ve yetenekleri konusunda aynı sayfada olmamızı sağlar.
# 2. Yürütme İlkesini Yapılandırma
Varsayılan olarak, PowerShell komut dosyalarının yürütülmesi, kullanıcıları yanlışlıkla kötü amaçlı kod çalıştırmaya karşı korumak için devre dışı bırakılır. Bir betiği çalıştırmak için öncelikle sisteminizde Yürütme Politikasını yapılandırmanız gerekir. Dört tür yürütme politikası vardır:
- Kısıtlı: Hiçbir komut dosyası çalıştırılamaz.
- AllSigned: Yalnızca güvenilir bir yayıncı tarafından imzalanan komut dosyaları çalıştırılabilir.
- RemoteSigned: Yerel olarak oluşturulan komut dosyaları çalıştırılabilir, ancak indirilenler güvenilir bir imza gerektirir.
- Sınırsız: Tüm komut dosyaları herhangi bir kısıtlama olmadan çalıştırılabilir.
Geçerli yürütme ilkesini görüntülemek için PowerShell'i yönetici olarak açın ve aşağıdaki komutu çalıştırın:
Get-ExecutionPolicyYürütme politikasını ayarlamak için aşağıdaki komutu kullanın:
Set-ExecutionPolicy RemoteSignedBu komut, politikayı RemoteSigned olarak ayarlayarak yerel olarak oluşturulan komut dosyalarının çalıştırılmasına olanak tanır. Farklı bir düzey ayarlamak için RemoteSigned'ı daha önce bahsedilen diğer politika düzeylerinden herhangi biriyle değiştirebilirsiniz.
# 3. PowerShell Betiğini Çalıştırma
Yürütme ilkesi yapılandırıldıktan sonra, aşağıdaki yöntemlerden birini kullanarak bir PowerShell betiğini çalıştırabilirsiniz:
- Yöntem 1: Komut dosyasını içeren dizine gidin ve doğrudan yürütün.
PowerShell'i açın ve cd komutunu ve ardından dosya yolunu kullanarak komut dosyanızın bulunduğu klasöre gidin. Örneğin:
cd C:UsersUsernameScriptsDoğru dizine gittikten sonra, çalıştırmak için . ve ardından betiğin tam adını yazın:
.myScript.ps1- Yöntem 2: Komut dosyasını tam yoluyla herhangi bir konumdan yürütün.
Önce betiğin dizinine gitmek yerine, tam yolu sağlayarak betiği herhangi bir yerden çalıştırabilirsiniz. Komut dosyasının tam yolunu yazın ve enter tuşuna basın:
& “C:UsersUsernameScriptsmyScript.ps1”Alternatif olarak, aşağıda gösterildiği gibi Invoke-Expression cmdlet'ini kullanabilirsiniz:
Invoke-Expression -Command “C:UsersUsernameScriptsmyScript.ps1”
# 4. Komut Dosyalarını Parametrelerle Çalıştırma
Birçok PowerShell komut dosyası, yürütme sırasında parametrelerin veya bağımsız değişkenlerin iletilmesini gerektirir. Parametreli bir betiği çalıştırmak için, betiği çalıştırırken betiğin adından sonra gerekli parametreleri eklemeniz yeterlidir. Örneğin:
.myScript.ps1 -Parameter1 “Value1” -Parameter2 “Value2”Bu örnekte betiğe iki parametre aktarıyoruz. Parametre1 ve Parametre2'yi gerçek parametre adlarıyla, Değer1 ve Değer2'yi ise ilgili değerleriyle değiştirin.
# 5. Güvenli Yürütme için Komut Dosyalarını İmzalama
Özellikle hassas verilerle veya kritik sistemlerle çalışırken güvenliği artırmak için PowerShell komut dosyalarınızı güvenilir bir dijital sertifika kullanarak imzalamanız önerilir. Bu, betiğin son imzalanmasından bu yana değiştirilmemesini sağlar ve betiğin yayıncısını doğrular. Bir komut dosyasını imzalamak için şu adımları izleyin:
- Kod imzalama için bir dijital sertifika edinin veya oluşturun (New-SelfSignedCertificate cmdlet'i bir tane oluşturabilir)
- Komut dosyasını imzalamak için Set-AuthenticodeSignature cmdlet'ini kullanın. sertifika
- Get-AuthenticodeSignature cmdlet'ini kullanarak betiğin imzasını doğrulayın
PowerShell komut dosyalarını imzalamaya ilişkin ayrıntılı bir kılavuz için bu [Microsoft belgelerine](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.security/set-authenticodesignature) bakın.
Ve işte karşınızda! Artık herhangi bir PowerShell betiğini çalıştırmak için ihtiyaç duyduğunuz bilgiye sahipsiniz. Şu 5 temel adımı unutmayın: Temel bilgileri anlayın, yürütme politikasını yapılandırın, komut dosyalarını çeşitli şekillerde yürütün, gerektiğinde parametreleri iletin ve komut dosyalarınızı imzalayarak güvenliği sağlayın. Bu yeni keşfedilen uzmanlıkla, görevleri otomatikleştirme ve PowerShell komut dosyalarında daha verimli bir şekilde gezinme yolunda ilerleyeceksiniz.
PowerShell'i komut satırından nasıl çalıştırabilirim?
PowerShell'i komut satırından çalıştırmak için şu basit adımları takip edebilirsiniz:
1. Windows tuşu + R tuşlarına basarak ve 'Çalıştır' iletişim kutusuna cmd yazarak bir Komut İstemi penceresi açın. Komut İstemini açmak için Enter tuşuna basın.
2. Komut İstemi'ne powershell yazın ve Enter'a basın. Bu, Komut İstemi içinde bir PowerShell oturumu başlatacaktır.
3. Bir PowerShell komutunu çalıştırmak için, bunu PowerShell oturumuna yazıp Enter tuşuna basmanız yeterlidir. Aşağıdaki gibi bir komutu doğrudan çalıştırmak için -Command bayrağını da kullanabilirsiniz:
powershell -Command “Get-Process”
4. Komut satırından bir PowerShell betiğini çalıştırmak istiyorsanız, -File bayrağını ve ardından betik dosyanızın yolunu şu şekilde kullanabilirsiniz:
powershell -File “C:pathtoyourscript.ps1”Yürütme ilkelerinin PowerShell'de çalışan komut dosyalarını kısıtlayabileceğini unutmayın. Gerekirse Set-ExecutionPolicy'i kullanarak yürütme politikasını değiştirin:
powershell -Command “Set-ExecutionPolicy RemoteSigned -Force”Artık PowerShell komutlarını ve komut dosyalarını doğrudan komut satırından yürütmeye hazırsınız!
Bir PowerShell betiğini belirli bir yoldan nasıl yürütebilirim?
Belirli bir yoldan bir PowerShell betiğini yürütmek için & (çağrı) operatörünü ve ardından betiğin yolunu kullanmanız gerekir. Bu operatör komut dosyalarını, işlevleri veya ifadeleri çalıştırmanıza olanak tanır.
Bir PowerShell betiğini belirli bir yoldan nasıl yürütebileceğinize dair bir örnek:
1. Bilgisayarınızda arayarak veya Win+X tuşlarına basarak ve menüden Windows PowerShell'i seçerek PowerShell'i açın.
2. cd komutunu kullanarak komut dosyasını içeren klasöre gidin, yerine Gerçek yolla path_to_directory:
cd path_to_directory
“`
3. Once you are in the correct directory, use the & operator followed by the full path to the script:
“`
& .script_name.ps1
“`
Replace “script_name.ps1” with the actual name of your script file. The .\ ensures that you are running the script from the current directory.
Alternatively, you can use the full path to the script without changing the directory:
“`
& “C:specific_pathscript_name.ps1”C:özel_yolscript_adı.ps1'i komut dosyanızın gerçek yoluyla değiştirmeyi unutmayın.
Not: Komut dosyalarını çalıştırmak için uygun yürütme politikasını ayarlamadıysanız, komut dosyasını yürütmeye çalışırken bir hatayla karşılaşabilirsiniz. Bu kısıtlamayı atlamak için aşağıdaki komutu kullanabilirsiniz:
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process -ForceBu komut, yürütme ilkesini yalnızca geçerli PowerShell oturumu için Bypass olarak ayarlayarak komut dosyanızı kısıtlama olmadan çalıştırmanıza olanak tanır.
PowerShell betiğini nasıl kaydedip çalıştırabilirim?
Bir PowerShell betiğini kaydetmek ve yürütmek için şu adımları izleyin:
1. Komut dosyasını oluşturun: Tercih ettiğiniz metin düzenleyicinizi (örneğin Not Defteri) açın ve PowerShell komutlarınızı yazın. Örneğin, ekranda Merhaba Dünya! ifadesini görüntüleyen basit bir komut dosyası oluşturalım:
Write-Host “Hello, World!”2. Komut dosyasını kaydedin: Komut dosyanızı, bir PowerShell komut dosyası olduğunu belirterek .ps1 dosya uzantısıyla kaydedin. Örneğin dosyayı MyScript.ps1 olarak kaydedebilirsiniz.
3. Komut dosyası yürütmeyi etkinleştirin: Varsayılan olarak PowerShell, güvenlik ayarları nedeniyle komut dosyalarının yürütülmesine izin vermez. Betik yürütmeyi etkinleştirmek için yönetici ayrıcalıklarına sahip bir PowerShell penceresi açın ve aşağıdaki komutu çalıştırın:
Set-ExecutionPolicy RemoteSignedBu komut, yürütme politikasını RemoteSigned olarak ayarlayarak yerel olarak oluşturulan komut dosyalarını ve güvenilir bir yayıncı tarafından imzalanmış uzak komut dosyalarını çalıştırmanıza olanak tanır.
4. Komut dosyasını yürütün: cd komutunu kullanarak komut dosyanızı kaydettiğiniz klasöre gidin ve ardından . yazıp ardından komut dosyasının adını yazarak çalıştırın. Örneğin:
cd C:PathToYourScript
.MyScript.ps1Bu adımları tamamladıktan sonra PowerShell betiğiniz yürütülecek ve PowerShell penceresinde çıktıyı (örneğimizde Merhaba, Dünya!) göreceksiniz.
PowerShell betiğini komut satırından çalıştırmanın farklı yöntemleri nelerdir ve bunların avantajları ve dezavantajları nelerdir?
PowerShell betiğini komut satırından çalıştırmanın birkaç yöntemi vardır. Bu yanıtta bu yöntemleri inceleyip avantajlarını ve dezavantajlarını tartışacağız.
1. Komut dosyasının yolunu belirterek doğrudan bir Komut Dosyası çalıştırma
Bir betiği çalıştırmak için komut isteminde veya PowerShell konsolunda betik dosyasının tam yolunu şu şekilde sağlayabilirsiniz:
C:> & “C:ScriptsMyScript.ps1”Avantajları: Bu yöntem, özellikle komut dosyalarını bir dosya gezgininin içerik menüsünden çalıştırmak için basit ve kullanımı kolaydır.
Dezavantajları: Komut dosyasını her çalıştırmak istediğinizde tam yolunu yazmanızı gerektirir.
2. Bir komut dosyasını çalıştırmak için PowerShell.exe'yi kullanma
Komut isteminden bir betiği çalıştırmak için PowerShell yürütülebilir dosyasını kullanabilirsiniz:
C:> powershell.exe -File “C:ScriptsMyScript.ps1”Avantajları: Bu yöntem, PowerShell komut dosyalarının komut isteminden veya toplu iş dosyalarından çalıştırılmasına olanak tanıyarak onu daha çok yönlü hale getirir.
Dezavantajları: Esas olarak PowerShell konsolunda çalışan kullanıcılar için komut dosyalarını çalıştırmak için komut istemini kullanmak daha az kullanışlı görünebilir.
3. Nokta kaynağı kullanarak bir Komut Dosyası Çalıştırma
Nokta kaynak kullanımı, alt kapsam yerine geçerli kapsamdaki bir betiği yükleyip çalıştırdığınız bir tekniktir:
PS C:> . .MyScript.ps1Avantajları: Bu yöntem, komut dosyalarını geçerli oturum kapsamında yürütmenize olanak tanıyarak, komut dosyası tarafından oluşturulan tüm işlevlere, değişkenlere veya takma adlara erişmenize olanak tanır.
Dezavantajlar: Komut dosyası mevcut oturum kapsamında çalıştığından, komut dosyasının zararlı veya istenmeyen komutlar içermesi durumunda ortamınızda istenmeyen değişiklikler meydana gelebilir.
4. Invoke-Command ile bir komut dosyasını çalıştırma
Invoke-Command, bir veya daha fazla uzak bilgisayarda bir komut dosyası bloğunu veya komut dosyasını çalıştırmanıza olanak tanıyan bir cmdlet'tir:
PS C:> Invoke-Command -FilePath “C:ScriptsMyScript.ps1” -ComputerName “RemoteServer1”Avantajları: Bu yöntem, komut dosyalarının uzak sistemlerde yürütülmesi için mükemmeldir ve altyapınızın daha iyi yönetilmesine ve otomasyonuna olanak tanır.
Dezavantajları: Bu yöntemin temel amacı, komut dosyalarını uzak sistemlerde çalıştırmaktır; bu nedenle, komut dosyalarını yerel olarak yürütmek için bunu kullanmak en etkili yaklaşım olmayabilir.
Sonuç olarak, PowerShell betiklerini komut satırından çalıştırmanın farklı yöntemlerini ve bunların potansiyel avantajlarını ve dezavantajlarını anlamak önemlidir. Özel kullanım durumunuz ve gereksinimleriniz için en uygun yöntemi seçmenizi sağlayacaktır.
PowerShell betiklerini komut satırı ortamında güvenli ve verimli bir şekilde çalıştırmak için uygun yürütme ilkesini ve güvenlik ayarlarını nasıl ayarlayabilirim?
PowerShell betiklerini komut satırı ortamında güvenli ve verimli bir şekilde çalıştırmak için uygun yürütme ilkesini ve güvenlik ayarlarını belirlemeniz gerekir. Şu adımları izleyin:
1. PowerShell'i Yönetimsel Ayrıcalıklarla açın: Win+X tuşlarına basın ve Windows PowerShell (Yönetici)'yi seçin veya PowerShell Başlat menüsünde Windows PowerShell'e sağ tıklayın ve Yönetici Olarak Çalıştır'ı seçin.
2. Mevcut Yürütme Politikasını Kontrol Edin: Yürütme politikasını değiştirmeden önce aşağıdaki komutu çalıştırarak mevcut ayarları kontrol edin:
Get-ExecutionPolicy3. Yürütme Politikasını Ayarlayın: Yürütme politikasını değiştirmek için Set-ExecutionPolicy cmdlet'ini ve ardından istenen politika düzeyini kullanın. Göz önünde bulundurulması gereken dört ana politika vardır:
- Kısıtlı: Herhangi bir komut dosyasının çalışmasını engelleyen varsayılan politika.
- AllSigned: Tüm komut dosyalarının güvenilir bir yayıncı tarafından imzalanmasını gerektirir.
- RemoteSigned: Yerel olarak oluşturulan komut dosyaları imzalanmadan çalıştırılabilir, ancak indirilen komut dosyalarının güvenilir bir yayıncı tarafından imzalanması gerekir.
- Kısıtlanmamış: Tüm komut dosyalarının çalıştırılmasına izin verir; güvenlik riskleri nedeniyle önerilmez.
Örneğin, yürütme politikasını RemoteSigned olarak ayarlamak için aşağıdaki komutu çalıştırın:
Set-ExecutionPolicy RemoteSignedNot: Güvenliği ve işlevselliği dengeleyen bir yürütme politikası seçmek önemlidir. RemoteSigned politikası, harici komut dosyalarının imzalanmasını gerektirirken yerel komut dosyası yürütülmesine izin verdiği için çoğu kullanıcı için iyi bir seçimdir.
4. Yeni Yürütme Politikasını Doğrulayın: Yürütme politikasını ayarladıktan sonra Get-ExecutionPolicy komutunu tekrar çalıştırarak değişiklikleri onaylayın.
5. PowerShell Komut Dosyalarınızı İmzalayın (İsteğe Bağlı): Komut dosyalarını AllSigned veya RemoteSigned yürütme politikalarıyla çalıştırmak istiyorsanız, komut dosyanızı imzalamanız gerekir. Güvenilir bir Sertifika Yetkilisi (CA) tarafından verilen kod imzalama sertifikasına sahip komut dosyaları. Genel bir CA'dan sertifika alabilir veya New-SelfSignedCertificate cmdlet'ini kullanarak kendinden imzalı bir sertifika oluşturabilirsiniz.
Doğru yürütme ilkesi ve güvenlik ayarları uygulandığında artık PowerShell komut dosyalarını komut satırı ortamında güvenli ve verimli bir şekilde çalıştırabilirsiniz. Bilinmeyen kaynaklardan komut dosyaları çalıştırırken dikkatli olmayı ve bunları çalıştırmadan önce daima içeriklerini doğrulamayı unutmayın.
Görev Zamanlayıcı, CMD veya toplu iş dosyaları gibi komut satırı araçlarını kullanarak PowerShell komut dosyalarının çalıştırılmasını nasıl zamanlayabilir ve otomatikleştirebilirim?
PowerShell betiklerinin çalışmasını zamanlama ve otomatikleştirme, Görev Zamanlayıcı, CMD veya toplu iş dosyaları gibi çeşitli komut satırı araçları kullanılarak yapılabilir. Bu bağlamda bunu nasıl başaracağımızı tartışalım.
1. Görev Zamanlayıcı:
Görev Zamanlayıcı'yı kullanarak, bir PowerShell betiğini belirli zamanlarda veya etkinliklerde çalıştırmak için bir görev oluşturabilirsiniz. Şu adımları izleyin:
A. Başlat menüsünde arayarak veya Çalıştır iletişim kutusundan (Win + R) 'taskschd.msc' dosyasını çalıştırarak Görev Zamanlayıcı'yı açın.
B. Görev Zamanlayıcı penceresinin sağ tarafındaki Temel Görev Oluştur veya Görev Oluştur seçeneğine tıklayın.
C. Göreviniz için bir ad ve açıklama belirleyin ve ardından İleri'yi tıklayın.
D. PowerShell betiğini başlatmak için kullanmak istediğiniz tetikleyiciyi seçin (ör. günlük, haftalık veya bir etkinlikle ilgili) ve ardından İleri'yi tıklayın.
e. Planlama ayarlarını gereksinimlerinize göre yapılandırın ve İleri'ye tıklayın.
F. Bir program başlat eylemini seçin ve İleri'yi tıklayın.
G. Program/script alanına 'powershell.exe' yazın. Bağımsız değişken ekle (isteğe bağlı) alanına '-ExecutionPolicy Bypass -File C:pathtoyourscript.ps1″' yazın (yolu, PowerShell betiğinizin gerçek yoluyla değiştirin). Ardından “İleri”yi tıklayın.
H. Görev ayarlarınızı gözden geçirin ve görevi oluşturmak için Bitir'i tıklayın.
2. CMD:
Aşağıdaki komutu yazarak Komut İsteminden (CMD) bir PowerShell betiğini çalıştırabilirsiniz:
powershell.exe -ExecutionPolicy Bypass -File “C:pathtoyourscript.ps1”Verilen yolu betiğinizin gerçek yolu ile değiştirin.
3. Toplu iş dosyaları:
Toplu iş dosyalarını kullanarak bir PowerShell betiğinin yürütülmesini otomatikleştirmek için şu adımları izleyin:
A. Yeni bir metin dosyası oluşturun ve uzantıyı '.bat' olarak değiştirin.
B. Toplu iş dosyasını Notepad gibi bir metin düzenleyiciyle açın.
C. Toplu iş dosyasına aşağıdaki komutu ekleyin:
powershell.exe -ExecutionPolicy Bypass -File “C:pathtoyourscript.ps1”Verilen yolu betiğinizin gerçek yolu ile değiştirin.
D. Toplu iş dosyasını kaydedin ve kapatın.
Artık PowerShell betiğini yürütmek için toplu iş dosyasını çalıştırabilirsiniz veya hatta yukarıda belirtilenlere benzer adımları izleyerek Görev Zamanlayıcı'yı kullanarak bu toplu iş dosyasını zamanlayabilirsiniz.