Geek Okulu İlk Full PowerShell Komut Dosyanızı Yazma
Birkaç hafta önce, Geek, bilgisayarınızın en son ne zaman başladığını bulmak için komut istemini nasıl kullanabileceğinizi gösterdi. GeS School for PowerShell'in bu son kurulumunda, aynı şeyi yapmak için tekrar kullanılabilir bir PowerShell komutu yazacağız..
Serideki önceki makaleleri okuduğunuzdan emin olun:
- PowerShell ile Windows'u Nasıl Otomatikleştireceğinizi Öğrenin
- PowerShell'de Cmdlet'leri Kullanmayı Öğrenme
- PowerShell'de Nesnelerin Nasıl Kullanılacağını Öğrenme
- PowerShell'de Biçimlendirme, Filtreleme ve Karşılaştırmayı Öğrenme
- PowerShell'de Uzaktan Kullanmayı Öğrenin
- Bilgisayar Bilgilerini Almak için PowerShell'i Kullanma
- PowerShell'de Koleksiyonlarla Çalışma
- PowerShell'de İşlerin Nasıl Kullanılacağını Öğrenin
- PowerShell'i Nasıl Genişleteceğinizi Öğrenin
- PowerShell Değişkenlerini, Giriş ve Çıkışlarını Öğrenme
İlk Senaryoyu Yazmak
Yapmamız gereken ilk şey, aradığımız bilgilere erişmenin bir yolunu bulmak. Yönetim bilgileriyle ilgilendiğimiz için, işletim sisteminiz hakkında en son başlattığınız zaman da dahil olmak üzere ayrıntılı bilgileri görüntülemenizi sağlayan, Win32_OperatingSystem adlı bir sınıfa sahip olan WMI kullanmaya bir göz atmamız gerekiyor..
Böylece, aradığımız bilgileri nerede bulabileceğimizi bildiğimize göre, İMKB'yi açıp aşağıdakileri yazın.
Get-WmiObject -Sınıf Win32_OperatingSystem -BilgisayarAdı localhost |
Nesne Seçme -Property CSName, LastBootUpTime
Not: Kodumu, ekran görüntüsüne sığması için iki satıra bölmem gerekti, ancak bunları tek bir satıra yazmaktan çekinmeyin. İki çizgiye ayırmayı seçerseniz, lütfen boru karakterinin satır 1'deki son karakter olduğundan emin olun.
Şimdi yeşil "Script Çalıştır" düğmesine tıklayın veya kodu test etmek için klavyenizdeki F5 tuşuna basın.
WMI zamanları biraz şifreli olabilir. Bununla birlikte, eğer LastBootUpTime özelliğine bakarsanız, 18: 26: 21'de 2013-03-19 diyor, ancak bir nedenle WMI çalışanları tüm bunları tek bir dizgide birleştirmeye karar verdi. Neyse ki bizim için, ipi elle ayrıştırma konusunda endişelenmemize gerek yok, çünkü daha gelişmiş de olsa bunu yapmanın daha kolay bir yolu var. Bunun gibi görünmesi için kodun Select-Object bölümünü değiştirmeniz gerekecek:
Nesne Seçme -Property CSName, @ n = ”Son Önyükleme”;
e = [Management.ManagementDateTimeConverter] :: ToDateTime ($ _. LastBootUpTime)
Burada yaptığımız şey, “Last Booted” adlı bir özel özellik oluşturmak ve değerinin, geçerli pipeline nesnesinin LastBootUpTime özelliğinde ToDateTime statik yönteminin çağrılması sonucu olması gerektiğini belirtmektir. Kodunuz şimdi böyle görünmeli.
Kodun şimdi çalıştırılması, son açılışta çok daha okunaklı bir sonuç verecektir..
Şimdi senaryomuzun temel işlevselliğinden memnunuz, onu kaydetmemiz gerekiyor. Basit olması için, aşağıdaki gibi kaydedelim:
C: \ Get-LastBootTime.ps1
Şimdi İMKB'nin alt yarısına geçin ve aşağıdakileri çalıştırın:
C: \ Get-LastBootTime.ps1
Harika! Senaryomuz beklendiği gibi çalışıyor, ancak senaryomuzda hala bir problem var. Son önyükleme süresini almak istediğimiz bilgisayarın adını kodladık. Kodlama değerleri yerine, bir komut dosyası kullanmalıyız, böylece komut dosyasını kullanan kişi, komut dosyasını çalıştıracak bilgisayarı seçebilir. Bunu yapmak için, komut dosyanızın en üstüne gidin ve aşağıdakileri yapın.
param (
[Dize] $ BilgisayarAdı
)
Ardından, sabit kodlanmış localhost değerini $ ComputerName değişkeni ile değiştirin. Komut dosyanız şimdi şöyle görünmelidir:
Komut dosyanızı kaydedin, ardından İMKB’nin alt kısmına geri dönün ve komut dosyanızın yardımını görüntüleyin..
yardım C: \ Get-LastBootTime.ps1
Müthiş, şimdi yeni ComputerName parametremizi kullanmak için en son önyükleme süresini almak istediğimiz bilgisayarın adını belirleyebiliriz. Ne yazık ki, hala yanlış olan birkaç şey var. Birincisi, ComputerName parametresi isteğe bağlıdır ve ikincisi, bu şimdiye kadar gördüğüm en çirkin yardımcı, bu yüzden bu sorunları hızla çözelim. ComputerName parametresini zorunlu hale getirmek için param bloğunun içeriğini aşağıdakine değiştirin.
[Parametresi (Zorunlu = $ true)] [dize] $ BilgisayarAdı
Daha iyi bir yardım dosyası gelince, en yaygın yöntem yorum tabanlı yardım kullanmaktır. Bu, komut dosyasının en üstüne sadece uzun bir yorum eklediğimiz anlamına gelir.
<#
.ÖZET
PC'nizin en son ne zaman başladığını gösterir.
.AÇIKLAMA
Bu, PC'nizin en son başladığı zamanı elde etmek için bir WMI sarmalayıcı işlevidir.
.PARAMETRE BilgisayarAdı
Komutu çalıştırmak istediğiniz bilgisayarın adı.
.ÖRNEK
Get-LastBootTime -BilgisayarAdı localhost
.LİNK
www.howtogeek.com
#>
Tüm bunlar bittiğinde, böyle bir senaryo yazmalısınız..
Şimdi gidip yeni yardım dosyamızı inceleyelim.
Ahhh, harika görünüyorsun! Şimdi senaryomuz tamamlandıktan sonra yapılacak son bir şey var: test etme. Bunun için İMKB'den çıkacağım ve PowerShell konsoluna geri döneceğim, böylece anomali olmadığından emin olabiliriz.
Basit bir astarla başlarsanız ve sadece bu kılavuzda yaptığımız gibi üzerine inşa etmeye devam ederseniz, hiçbir zaman beklemezsiniz. Hepsi bu kadar millet, hepsi bir sonraki Geek Okulu kurulumunda görüşmek üzere.