18Aug

Geek Okulu: PowerShell'de Nesneleri Nasıl Kullanacağınızı Öğrenin

Nesneleri anlamak, PowerShell'i "almanın" temel kavramlarından biridir. Nesneleri keşfederken ve PowerShell'i bugün orada bulunan kabuklardan daha iyi nasıl yaptıklarını bize katılın.

Serideki önceki makaleleri okuduğunuzdan emin olun:

  • Windows'u PowerShell ile Otomatikleştirme Nasıl Öğrenileceğini Öğrenin
  • PowerShell'de Cmdlet'leri Öğrenmeyi Öğrenin

Ve serinin diğer bölümleri için bütün hafta boyunca durmalısınız.

Nesneleri

Hiç PowerShell'in Bash gibi geleneksel bir Linux kabuğundan veya hatta eski komut isteminden ayrılmasını neyin sağladığını merak ettiniz mi? Cevap çok basit: Geleneksel kabuklar metni çıktılar; bu da biçimlendirme ve filtreleme gibi işleri yapmakta zorluk çeker. Tabii ki, işinizi halletmenize yardımcı olacak araçlar var( sed ve grep aklıma geliyor), ancak günün sonunda, her türden ağır metin ayrıştırma yapmak istiyorsanız, aşağıdaki gibi düzenli ifadeleri bilmelisiniz:elinin arkasında.

PowerShell, altta yatan. Net framework'ü kullanır ve metin yerine nesneleri kullanarak farklı bir yaklaşım benimser. Nesneler sadece bir şeylerin temsilidir. Bunlar, parçaları ve bunları kullanmak için eylemler topluluğudur. Bir bisikletin parçalarına ve bunları nasıl kullanacağımızıza bir göz atalım..Net'teki

Nesneleri iki küçük farklılık hariç aynıdır: "Parçalara" özellikleri ve "Talimatlar" da yöntemleri olarak adlandırılır. Bir Windows Hizmeti'ni bir nesne olarak göstermek istiyorsak, onu üç özellik kullanarak tanımlamaya karar verebiliriz: Hizmet Adı, Durum ve Açıklama. Ayrıca, hizmetle etkileşim kurmamız gerekir, böylece nesneye Başlat, Durdur ve Duraklat yöntemi verilebilir.

Bir nesnenin özelliklerini ve yöntemlerini Get-Member cmdletine aktarılarak nesnenin özelliklerini ve yöntemlerini görebilirsiniz. PowerShell cmdlet'inin çıktı nesneleri. Net çerçevesinden temelde yatan türlerdir, ancak C # gibi bir dili kullanmanız veya PSObject türünü kullanmanız gerekiyorsa kendi nesnelerinizi oluşturabilirsiniz.

Boru Hattı

Boru hattıyla birlikte bir sürü Linux kabukları vardır, bu komutlardan birinin çıktısını girdi olarak boru hattındaki bir sonraki komuta gönderebilmenizi sağlar. PowerShell, bir cmdlet'in çıktısını aldığı nesneleri alıp bunları bir satırdaki sonraki cmdlet'e girmesine izin vererek bunu bir üst düzeye götürür. Hüner, bir cmdlet'in ne tür nesne döndürdüğünü bilmektir; bu, Get-Member cmdlet'i kullanıldığında gerçekten kolaydır.

Alma |Get-Member

Bu makalenin kapsamı dışındaki nedenlerden dolayı özellikler ve yöntemlere ortak sınıf üyeleri denir; bu, bir nesnenin sahip olduğu tüm yöntemlerin ve özelliklerin bir listesini almak için Get-Member cmdlet'i neden kullandığınızın açıklar. Bununla birlikte, Get-Member cmdlet'inde temel nesne türü olan önemli bir başka bilgi parçası da bulunur. Yukarıdaki ekran görüntüsünde, Get-Service'in nesne türlerini döndürdüğünü görebiliriz:

System. ServiceProcess. ServiceController

PowerShell nesneleri metinle değil de nesneleri ele aldığından, tüm cmdlet'leri boru hattı [1] kullanarak birbirine bağlayamaz. Bu, bir System. ServiceProcess. ServiceController nesnesini boru hattından kabul etmek isteyen bir cmdlet bulmamız gerektiği anlamına gelir.

Get-Command -ParameterType System. ServiceProcess. ServiceController

Dur-Service adlı bir cmdlet bulunduğuna dikkat edin;bunun için yardıma bir göz atalım.

Get-Help -Name Stop-Service

InputObject parametresi, bir dizi ServiceController nesnesi girdi gibi görünüyor. Genellikle, InputObject adlı bir parametre görürseniz, bu, Giriş Hattı'ndan gelen girişi kabul eder, ancak emin olun ki bu parametrenin tam yardımına bir göz atalım.

Get-Help -Name Stop-Service -Full

Şüpheleriniz doğruydu. Bu noktada şu noktayı biliyoruz:

  • Get-Service, ServiceController nesnelerini döndürür
  • Durdurma Hizmeti, bir veya daha fazla ServiceController girdi olarak kabul eden InputObject adlı bir parametreye sahiptir.
  • InputObject parametresi, satır içi girişi kabul eder.

Bu bilgileri kullanarak aşağıdakileri yapabiliriz:

Get-Service - 'Apple Mobile Device' -Name 'Apple Mobile Device' |Stop-Service

Hepsi bu seferler için. Bir dahaki sefer, Boru Hattı'ndaki nesneleri nasıl biçimlendirebildiğimizi, filtreleyebileceğinizi ve karşılaştırdırabileceğimizi inceliyoruz.

Ödev

  • Nesne Boru Hattı
'de Okunması

Herhangi bir sorunuz varsa bana @taybgibb'i tweetleyebilir veya sadece bir yorum bırakabilirsiniz.