PowerShell'i keşfedin
PowerShell bir komut satırı kabuğu ve bir komut dosyası dilidir. PowerShell, yönetim görevlerini otomatikleştirmeye yardımcı olmak için Windows'ta başlatıldı. Artık platformlar arası çalışır ve çeşitli görevler için kullanılabilir.
PowerShell'i benzersiz kılan şey, metin yerine .NET nesnelerini kabul edip döndürmesidir. Bu özellik, bir işlem hattında farklı komutların bağlanmasını kolaylaştırır.
PowerShell ne için kullanılabilir?
PowerShell'in kullanımı, yalnızca Windows olduğu günlerden bu yana artmıştır. Windows görev otomasyonu için hala kullanılır, ancak bugün aşağıdaki gibi görevler için kullanabilirsiniz:
- Bulut yönetimi. PowerShell, bulut kaynaklarını yönetmek için kullanılabilir. Örneğin, bulut kaynakları hakkındaki bilgileri alabilir ve yeni kaynakları güncelleştirebilir veya dağıtabilirsiniz.
- CI/CD. Sürekli Tümleştirme/Sürekli Dağıtım işlem hattının parçası olarak da kullanılabilir.
- Active Directory ve Exchange görevlerini otomatikleştirme. Active Directory'de kullanıcı oluşturma ve Exchange'de posta kutuları gibi Windows'ta neredeyse tüm görevleri otomatikleştirmek için bunu kullanabilirsiniz.
Çok daha fazla kullanım alanı vardır, ancak önceki listede PowerShell'in çok yol kat ettiğini gösteren bir ipucu yer alır.
PowerShell'i kimler kullanır?
PowerShell, çok sayıda rolde çalışan kişilere yardımcı olabilecek güçlü bir araçtır. PowerShell, geleneksel olarak Sistem Yönetici istrator rolü tarafından kullanılmıştır ancak artık kendilerini DevOps, Cloud Ops ve hatta Geliştiriciler olarak adlandıran kişiler tarafından kullanılmaktadır.
PowerShell cmdlet'leri
PowerShell önceden yüklenmiş yüzlerce komutla birlikte gelir. PowerShell komutları cmdlet'ler olarak adlandırılır (command-lets olarak okunur).
Her cmdlet'in adı bir Fiil-İsim çifti içerir. Örneğin, Get-Process
. Bu adlandırma kuralı, cmdlet'in ne yaptığının anlaşılmasını kolaylaştırır. Ayrıca aradığınız komutu bulmayı kolaylaştırır. Kullanılacak cmdlet'i ararken fiil veya isim üzerinde filtreleyebilirsiniz.
PowerShell'i keşfetmek için cmdlet'leri kullanma
PowerShell'i ilk aldığınızda, öğrenmeniz gereken çok şey olduğu için korkutucu olabilir. PowerShell, ihtiyaç duyduğunuzda bir kerede biraz öğrenmenize yardımcı olmak için tasarlanmıştır.
PowerShell, PowerShell'i keşfetmenize yardımcı olan cmdlet'ler içerir. Bu üç cmdlet'i kullanarak hangi komutların kullanılabilir olduğunu, ne yaptıklarını ve hangi türlerde çalıştıklarını keşfedebilirsiniz.
Get-Verb
. Bu komutu çalıştırmak, çoğu komutun bağlı olduğu fiillerin listesini döndürür. Yanıt, bu fiillerin ne yaptığının açıklamasını içerir. Komutların çoğu bu adlandırma kuralını izlediğinden, bir komutun ne yaptığına ilişkin beklentileri belirler. Bu, uygun komutu seçmenize ve bir komut oluştururken ne ad verileceğine yardımcı olur.Get-Command
. Bu komut makinenizde yüklü olan tüm komutların listesini alır.Get-Member
. Nesne tabanlı çıkış üzerinde çalışır ve bir komut için hangi nesne, özellik ve yöntemlerin kullanılabilir olduğunu bulabilir.Get-Help
. Bu komutu bir komutun adıyla bağımsız değişken olarak çağırmak, komutun çeşitli bölümlerini açıklayan bir yardım sayfası görüntüler.
Bu komutları kullanarak PowerShell hakkında bilmeniz gereken neredeyse her şeyi keşfedebilirsiniz.
Fiil
Fiil , PowerShell'de önemli bir kavramdır. Çoğu cmdlet'in izlediği bir adlandırma standardıdır. Ayrıca kendi komutlarınızı yazarken izlemeniz beklenen bir adlandırma standardıdır. Fiil, verileri okumak veya değiştirmek gibi ne yapmaya çalıştığınızı söyler. PowerShell'in standartlaştırılmış bir fiil listesi vardır. Tüm olası fiillerin tam listesini almak için cmdlet'ini Get-Verb
kullanın:
Get-Verb
Cmdlet uzun bir fiil listesi döndürür. Açıklama, fiilin ne yapması gerektiğiyle ilgili bağlam sağlar. Çıktının ilk birkaç satırı aşağıdadır:
Verb AliasPrefix Group Description
---- ----------- ----- -----------
Add a Common Adds a resource to a container, or attaches an item to another item
Clear cl Common Removes all the resources from a container but does not delete the container
Close cs Common Changes the state of a resource to make it inaccessible, unavailable, or unusab…
Copy cp Common Copies a resource to another name or to another container
Enter et Common Specifies an action that allows the user to move into a resource
Exit ex Common Sets the current environment or context to the most recently used context
...
Get-Command ile komutları bulma
Get-Command
Cmdlet, sisteminizde yüklü olan tüm kullanılabilir komutların listesini döndürür. Geri aldığın liste oldukça büyük. Parametreleri veya yardımcı cmdlet'leri kullanarak yanıtı filtreleyerek geri gelen bilgi miktarını sınırlayabilirsiniz.
Ada göre filtrele
Çıkışını Get-Command
farklı parametreler kullanarak filtreleyebilirsiniz. Filtreleme, belirli özelliklere sahip komutları bulmanıza olanak tanır. Name parametresi, belirli bir komutu ada göre bulmanızı sağlar.
Get-Command -Name Get-Process
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Get-Process 7.0.0.0 Microsoft.PowerShell.Management
İşlemlerle çalışan tüm komutları bulmak istiyorsanız ne yapmanız gerekir? Dizenin diğer formlarını eşleştirmek için joker karakter *
kullanabilirsiniz. Örneğin:
Get-Command -Name *-Process
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Debug-Process 7.0.0.0 Microsoft.PowerShell.Management
Cmdlet Get-Process 7.0.0.0 Microsoft.PowerShell.Management
Cmdlet Start-Process 7.0.0.0 Microsoft.PowerShell.Management
Cmdlet Stop-Process 7.0.0.0 Microsoft.PowerShell.Management
Cmdlet Wait-Process 7.0.0.0 Microsoft.PowerShell.Management
İsim ve Fiil üzerinde filtreleme
Fiil ve isim değerlerini filtreleyen başka parametreler de vardır. Komutun adının fiil bölümü en soldaki bölümdür. Fiil, cmdlet tarafından Get-Verb
döndürülen değerlerden biri olmalıdır. Komutun en sağdaki bölümü isim bölümüdür. İsim her şey olabilir.
Fiili filtreleyin. komutunda
Get-Process
fiil bölümü şeklindedirGet
. Fiil bölümünü filtrelemek için Fiil parametresini kullanın.Get-Command -Verb 'Get'
Bu örnekte, fiilini
Get
kullanan tüm komutlar listelenir.İsimlere göre filtreleyin. komutunda
Get-Process
, isim bölümü şeklindedirProcess
. ada göre filtrelemek için İsim parametresini kullanın. Aşağıdaki örnek, harfiyleU
başlayan adları olan tüm cmdlet'leri döndürür.Get-Command -Noun U*
Ayrıca, aramanızı daraltmak için parametreleri birleştirebilirsiniz, örneğin:
Get-Command -Verb Get -Noun U*
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Get-UICulture 7.0.0.0 Microsoft.PowerShell.Utility
Cmdlet Get-Unique 7.0.0.0 Microsoft.PowerShell.Utility
Cmdlet Get-Uptime 7.0.0.0 Microsoft.PowerShell.Utility
Sonuçları filtrelemek için yardımcı cmdlet'leri kullanma
Sonuçları filtrelemek için diğer cmdlet'leri de kullanabilirsiniz.
Select-Object
. Bu çok yönlü komut, bir veya daha fazla nesneden belirli özellikleri seçmenize yardımcı olur. Geri alabileceğiniz öğe sayısını da sınırlayabilirsiniz. Aşağıdaki örnek, geçerli oturumda kullanılabilen ilk 5 komut için Ad ve Kaynak özellik değerlerini döndürür.Get-Command | Select-Object -First 5 -Property Name, Source
Name Source ---- ------ Add-AppPackage Appx Add-AppPackageVolume Appx Add-AppProvisionedPackage Dism Add-AssertionOperator Pester Add-ProvisionedAppPackage Dism
Daha fazla bilgi için bkz . Select-Object.
Where-Object
. Bu cmdlet, döndürülen nesneleri özelliklerin değerlerine göre filtrelemenizi sağlar. komutu, bir özelliğin değerini test eden bir ifade alır. Aşağıdaki örnek ilep
başlayan tüm işlemleriProcessName
döndürür.Get-Process | Where-Object {$_.ProcessName -like "p*"}
cmdlet'i
Get-Process
bir işlem nesneleri koleksiyonu döndürür. Yanıtı filtrelemek için çıktıyı öğesine yöneltinWhere-Object
. Piping, iki veya daha fazla komutun bir kanal|
karakteri aracılığıyla bağlandığı anlamına gelir. Bir komutun çıktısı, sonraki komutun girişi olarak gönderilir. içinWhere-Object
filtre ifadesi, harfiylep
başlayan işlemleri eşleştirmek için işlecini kullanır-like
.
Get-Member ile nesneleri keşfetme
İstediğiniz cmdlet'i bulabildikten sonra, hangi çıkışı ürettiği hakkında daha fazla bilgi edinmek istiyorsunuz. cmdlet'i Get-Member
bir nesnenin türünü, özelliklerini ve yöntemlerini görüntüler. İncelemek istediğiniz çıkışı öğesine yöneltin Get-Member
.
Get-Process | Get-Member
Sonuç, döndürülen türü ve TypeName
nesnenin tüm özelliklerini ve yöntemlerini görüntüler. İşte böyle bir sonucun alıntısı:
TypeName: System.Diagnostics.Process
Name MemberType Definition
---- ---------- ----------
Handles AliasProperty Handles = Handlecount
Name AliasProperty Name = ProcessName
...
MemberType parametresini kullanarak döndürülen bilgileri sınırlayabilirsiniz.
Get-Process | Get-Member -MemberType Method
Varsayılan olarak PowerShell yalnızca birkaç özellik görüntüler. Önceki örnekte ve MemberType
Definition
üyeleri görüntülenmiştirName
. Görmek istediğiniz özellikleri belirtmek için kullanabilirsiniz Select-Object
. Örneğin, yalnızca Name
ve Definition
özelliklerini görüntülemek istiyorsunuz:
Get-Process | Get-Member | Select-Object Name, Definition
Parametre türüne göre arama
Get-Member
bize İşlem türü nesnelerini döndürdüğünü Get-Process
gösterdi. parametresiGet-Command
, İşlem nesnelerini giriş olarak alan diğer komutları bulmak için kullanılabilir.
Get-Command -ParameterType Process
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Debug-Process 7.0.0.0 Microsoft.PowerShell.Managem…
Cmdlet Enter-PSHostProcess 7.1.0.0 Microsoft.PowerShell.Core
Cmdlet Get-Process 7.0.0.0 Microsoft.PowerShell.Managem…
Cmdlet Get-PSHostProcessInfo 7.1.0.0 Microsoft.PowerShell.Core
Cmdlet Stop-Process 7.0.0.0 Microsoft.PowerShell.Managem…
Cmdlet Wait-Process 7.0.0.0 Microsoft.PowerShell.Managem…
Bir komutun çıkış türünü bilmek, aramanızı ilgili komutlar için daraltmanıza yardımcı olabilir.
Ek kaynaklar
PowerShell