Bazen Powershell’in sunduğu default çıktılar tam anlamıyla sizin istediğiniz çıktılar olmayabilir. Bu durumda Powershell’in çıktılarını özelleştirmeniz gerekebilir. Buna bir örnek vermek gerekirse;
Diyelim, Get-Process komutunu kullanıyoruz ve bu komutun çıktıları bizim için yeterli değil.
Get-Process
Yukarıdaki örnekte olduğu gibi Get-Process komutunun çıktılarından oluşan ve çeşitli değerler içeren bir tablo bulunuyor. Bu tablonun öğelerinin yanı sıra örneğin PM (Physical Memory) ve VM’nin (Virtual Memory) toplamını da ayrı bir sütunda görmek istiyorsam bunun için Custom bir Obje oluşturmak bir alternative çözüm. Bunu sadece bir tablo görünümü için değil daha sonra kullanabileceğim bir veri olarak da istiyorum.
Bunu nasıl başarabiliriz görelim.
get-process | foreach{
$elemanlar = @{ Name = $_.name; PM = $_.pm; VM= $_.vm; TotalMemory=$_.pm+$_.vm }
$obje = New-Object -TypeName PSObject -Property $elemanlar
$obje | select NAME,PM,VM,TotalMemory
}
Gördüğünüz gibi TotalMemory sütununu biz “uydurduk”. Bunu; yeni bir obje oluşturup bu objenin “Property”lerini özelleştirerek yaptık. PM ve VM zaten Powershell tarafından bana sunulmuştu. Ben de bu 2 değerin toplamını TotalMemory olarak ayrı bir “Property” haline getirdim. Oluşturduğum bu Property’leri tıpkı Powershell’in kendi cmdlet’lerinin elemanlarına bakarken yaptığım gibi Get-Member komutu ile de görebilirim.
$obje | Get-Member
Sorular icin bakionur@bakionur.com