Geek Okulu Öğrenme PowerShell'de Nesnelerin Nasıl Kullanılacağını Öğreniyor
Nesneleri anlamak, PowerShell'i “almak” için temel kavramlardan biridir. Nesneleri keşfederken ve PowerShell'i bugün dışarıdaki diğer kabuklardan daha iyi hale getirirken bize katılın.
Serideki önceki makaleleri okuduğunuzdan emin olun:
- PowerShell ile Windows'u Nasıl Otomatikleştireceğinizi Öğrenin
- PowerShell'de Cmdlet'leri Kullanmayı Öğrenme
Ve tüm hafta boyunca dizinin geri kalanı için bizi izlemeye devam edin.
Nesneler
PowerShell'i Bash gibi geleneksel bir Linux kabuğundan, hatta eski komut isteminden ayıran şeyin ne olduğunu hiç merak ettiniz mi? Bu sorunun cevabı gerçekten basit: geleneksel kabukları çıktı metni, bu da biçimlendirme ve filtreleme gibi şeyleri zorlaştırıyor. Tabii ki, işi yapmanıza yardımcı olacak araçlar var (akla gelip durun), ama günün sonunda, herhangi bir ağır metin ayrıştırma yapmak istiyorsanız, aşağıdaki gibi normal ifadeleri bilmeniz gerekir. elinin arkası.
PowerShell, alttaki Net çerçevesinden yararlanır ve metin yerine nesneleri kullanarak farklı bir yaklaşım sergiler. Nesneler sadece bir şeyin temsilidir. Onlar, onları kullanmak için bir parça ve eylem topluluğudur. Bisikletin parçalarına ve bunları nasıl kullanabileceğimize bakalım..
Net'teki nesneler iki küçük fark haricinde aynıdır: “Parçalar” özellikleri ve “Talimatlar” olarak adlandırılır. yöntemleri. Bir Windows Hizmetini bir nesne olarak temsil etmek istiyorsak, bunu üç özellik kullanarak tanımlamanın uygun olduğuna karar verebiliriz: Hizmet Adı, Durum ve Açıklama. Ayrıca hizmetle etkileşime geçmemiz gerekiyor, bu nedenle nesneye bir Başlat, Durdur ve Duraklat yöntemi verebiliriz..
Bir nesnenin özelliklerini ve yöntemlerini Get-Member cmdlet'ine ileterek görebilirsiniz. PowerShell cmdlet'inin çıkardığı nesneler .Net çerçevesindeki türlerin büyük ölçüde altındadır, ancak C # gibi bir dil kullanmanız veya PSObject türünü kullanmanız gerekirse kendi nesnelerinizi oluşturabilirsiniz.
Boru Hattı
Bir komut satırına sahip çok sayıda Linux kabuğu vardır, bu da bir komutun boru hattındaki bir sonraki komuta girdi olarak gönderdiği metni göndermenize olanak sağlar. PowerShell, bir cmdlet'in çıkardığı nesneleri almanıza ve bunları boru hattındaki bir sonraki cmdlet'e giriş olarak geçirmenize izin vererek bunu bir sonraki seviyeye götürür. İşin püf noktası, bir cmdlet'in ne tür bir nesne döndürdüğünü bilmektir; bu, Get-Member cmdlet'ini kullanırken gerçekten kolaydır..
Hizmet Al | Get-Üye
Bu makalenin kapsamı dışındaki nedenlerden dolayı, özellikler ve yöntemler ortak olarak sınıf üyeleri olarak adlandırılır; bu, bir nesnenin sahip olduğu tüm yöntem ve özelliklerin bir listesini almak için neden Üye Üye cmdlet'ini kullandığınızı açıklar. Bununla birlikte, Get-Member cmdlet'i, altta yatan nesne türü olan başka bir önemli bilgiyi de döndürür. Yukarıdaki ekran görüntüsünde, Get-Service'in şu tür nesneleri döndürdüğünü görebiliriz:
System.ServiceProcess.ServiceController
PowerShell, metinlerle değil nesnelerle ilgilendiğinden, tüm cmdlet'ler boru hattı kullanılarak birbirine bağlanamaz [1]. Bu, boru hattından bir System.ServiceProcess.ServiceController nesnesini kabul etmek isteyen bir cmdlet bulmamız gerektiği anlamına gelir.
Get-Command -ParameterType System.ServiceProcess.ServiceController
Stop-Service adında bir cmdlet olduğuna dikkat edin; Yardımına bir göz atalım.
Yardım Alma -Adı Durdurma Hizmeti
InputObject parametresi, giriş olarak bir ServiceController nesneleri dizisi alıyor gibi görünüyor. Genellikle, InputObject adlı bir parametre görürseniz, Boru Hattı'ndan gelen girişi kabul eder, ancak sadece bu parametre için tam yardıma bakalım..
Get-Yardım -Ad Dur Hizmeti-Tam
Şüphelerimiz doğruydu. Yani bu noktada aşağıdakileri biliyoruz:
- Get-Service, ServiceController nesnelerini döndürür
- Stop-Service, bir veya daha fazla ServiceControllers'ı giriş olarak kabul eden InputObject adlı bir parametreye sahiptir..
- InputObject parametresi boru hattı girişini kabul eder.
Bu bilgiyi kullanarak aşağıdakileri yapabiliriz:
Get-Service -Ad 'Apple Mobil Cihaz' | Hizmeti durdur
Bu millet, hepsi bu kadar. Bir dahaki sefere, Boru Hattı'ndaki nesneleri nasıl formatlayabileceğimize, filtreleyebileceğimize ve karşılaştırabileceğimize bakacağız.
Ödev
- Nesne Boru Hattı Üzerinden Okuma
Herhangi bir sorunuz varsa beni @taybgibb tweetleyebilir veya yorum bırakabilirsiniz..