15Sep

Geek Okulu: İlk Tam PowerShell Komut Dosyanızı Yazma

click fraud protection

Birkaç hafta önce The Geek, bilgisayarınızın en son ne zaman çalıştırıldığını bulmak için komut istemini nasıl kullanabileceğinizi gösterdi. Geek School for PowerShell'in son kurulumunda, aynı şeyi yapmak için tekrar kullanılabilir bir PowerShell komutu yazacağız.

Serideki önceki makaleleri okuduğunuzdan emin olun:

  • Windows'u PowerShell ile Otomatikleştirmeyi Öğrenin
  • PowerShell'de Cmdlet Kullanmayı Öğrenin
  • PowerShell'de Nesneleri Nasıl Kullanacağınızı Öğrenin
  • PowerShell'de Biçimlendirme, Filtreleme ve Karşılaştırmayı Öğrenme
  • Uzaklaştırmayı Kullanmayı ÖğreninPowerShell
  • Bilgisayar Bilgisini Almak İçin PowerShell Kullanma
  • PowerShell'deki Koleksiyonlarla Çalışma
  • PowerShell'de İşleri Nasıl Kullanacağınızı Öğrenin
  • PowerShell'i Genişletmeyi Öğrenin
  • PowerShell Değişkenlerini, Giriş ve Çıkış'ı Öğrenme

İlk Komut Dosyanızı Yazma

Yapmamız gereken ilk şey şu şekildedir:aradığımız bilgilere erişmenin bir yolunu bul. Yönetim bilgileriyle uğraştığımız için muhtemelen Win32_OperatingSystem adlı bir sınıfı olan WMI'yi kullanmaya da bakmanız gerekir; bu sınıf, işletim sisteminiz hakkında son bilgileri içeren ayrıntılı bilgileri görüntülemenizi sağlar.

instagram viewer

Şimdi, aradığımız bilgileri nerede bulabileceğimizi bildiğimizden, İMKB'yi açıp aşağıdakileri yaz.

Get-WmiObject-Sınıf Win32_OperatingSystem -ComputerName localhost |

Select-Object -Property CSName, LastBootUpTime

Not: Kodumu iki çizgiden ayıracağım, böylece ekran görüntüsüne sığdırabilir, ancak tek bir satıra girmekten çekinmeyin.İki satıra bölmeyi seçerseniz, lütfen boru karakterinin 1. satırdaki son karakter olduğundan emin olun.

Şimdi, yeşil "Komut Dosyasını Ç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. Bu, yani LastBootUpTime özelliğine bakarsanız, 2013-03-19 saat 18.226.21'de diyor, ancak bazı nedenlerden dolayı WMI adamları hepsini tek bir dizede birleştirmeye karar verdiler. Neyse ki, daha gelişmiş olmasına rağmen, dizenin elle ayrıştırılması konusunda daha kolay bir yol olduğundan endişelenmemize gerek yok. Kodun Select-Object bölümünü şöyle görünecek şekilde değiştirmeniz gerekir:

Select-Object -Property CSName, @{ n = "Son Önyüklenmiş";

e ={ [Management. ManagementDateTimeConverter]: : ToDateTime( $ _. LastBootUpTime)}}

Burada yaptığımız şey "Last Booted" adlı özel bir özellik oluşturmak ve bu değerin ToDateTime statik çağrısının sonucu olması gerektiğini belirtmektiryöntemi, geçerli boru hattı nesnesinin LastBootUpTime özelliğinde. Kodunuz şimdi şöyle görünmelidir.

Kodun çalıştırılması artık çok daha okunabilir son önyükleme zamanı sağlayacaktır.

Şimdi, komut dosyamızın temel işlevlerinden memnuniyet duyduğumuzdan onu kaydettirmeliyiz. Basitleştirmek için şu şekilde kaydedin:

C: \ Get-LastBootTime.ps1

Şimdi İMKB'nin alt yarısına geçin ve aşağıdakileri yapın:

C: \ Get-LastBootTime.ps1

Harika! Komutanımız beklendiği gibi çalışıyor, ancak yine de senaryomuzda bir sorun var. Son açılış saatini almak istediğimiz bilgisayarın kodunu kodladık. Değerleri kodlamak yerine, bir parametre sağlamalıyız, böylece komut dosyasını kim kullanıyorsa, komut dosyasını hangi bilgisayara karşı çalıştırdığını seçebilir. Bunu yapmak için, senaryonuzun üst kısmına gidin ve aşağıdakileri yapın.

param(
[string] $ BilgisayarAdı
)

Ardından, sabit kodlanmış localhost değerini $ ComputerName değişkeniyle değiştirin. Komut dosyanız şimdi şöyle olmalıdır:

Senaryonuzu kaydedin, ardından İMKB'nin alt yarısına gidin ve betikinizin yardımını görüntüleyin.

yardım C: \ Get-LastBootTime.ps1

Harika, şimdi yeni ComputerName parametresini kullanmak için son önyükleme zamanını almak istediğiniz bilgisayarın adını belirtebiliriz. Ne yazık ki, hâlâ birtakım yanlışlıklar var.Öncelikle, ComputerName parametresi isteğe bağlıdır ve ikincisi, şimdiye kadar gördüğüm en çirkin faydalıdır, bu yüzden bu sorunları çabucak düzeltmeliyim. ComputerName parametresini zorunlu kılmak için, param bloğunun içeriğini aşağıdakine değiştirin.

[Parametre( Zorunlu = $ true)] [dize] $ BilgisayarAdı

Daha iyi bir yardım dosyası hazırlamak için en yaygın yöntem yoruma dayalı yardım kullanmaktır. Bu, yalnızca komut dosyasının başına ekstra uzun bir yorum eklediğimiz anlamına geliyor.

#
. SYNOPSIS
Bilgisayarınızın son çalıştırışını gösterir.
. DESCRIPTION
Bu, bilgisayarınızın son başlatıldığı zamanı elde etmek için bir WMI sarmalayıcı işlevidir.
. PARAMETER ComputerName
Komutu çalıştırmak istediğiniz bilgisayarın adı.
. EXAMPLE
Get-LastBootTime -ComputerName yerelhost
. LINK
www.howtogeek.com
# & gt;

Bütün bunlar bittiğinde, böyle bir komut dosyası bulmalısınız.

Şimdi gidelim ve yeni yardım dosyamıza göz atalım.

Ahhh, harika görünüyorsun!Şimdi senaryomuz tamamlanmış durumda, yapmamız gereken son bir şey var: Test. Bunun için İMKB'den çıkıp PowerShell konsoluna geri döneceğim, böylece herhangi bir anormallik olmadığından emin olabilelim.

Eğer basit bir astarla başlıyorsanız ve bu kılavuzda yaptığımız gibi üzerine bürünüyorsa, kısa sürede asacağınızdan emin olabilirsiniz. Bu sefer herkes için, sonraki Geek Okulu kurulumunda görüşürüz.