Select-Object

Nesneleri veya nesne özelliklerini seçer.

Sözdizimi

Select-Object
      [-InputObject <PSObject>]
      [[-Property] <Object[]>]
      [-ExcludeProperty <String[]>]
      [-ExpandProperty <String>]
      [-Unique]
      [-CaseInsensitive]
      [-Last <Int32>]
      [-First <Int32>]
      [-Skip <Int32>]
      [-Wait]
      [<CommonParameters>]
Select-Object
      [-InputObject <PSObject>]
      [[-Property] <Object[]>]
      [-ExcludeProperty <String[]>]
      [-ExpandProperty <String>]
      [-Unique]
      [-CaseInsensitive]
      [-Skip <Int32>]
      [-SkipLast <Int32>]
      [<CommonParameters>]
Select-Object
      [-InputObject <PSObject>]
      [-Unique]
      [-CaseInsensitive]
      [-Wait]
      [-Index <Int32[]>]
      [<CommonParameters>]
Select-Object
      [-InputObject <PSObject>]
      [-Unique]
      [-CaseInsensitive]
      [-SkipIndex <Int32[]>]
      [<CommonParameters>]

Description

Cmdlet bir Select-Object nesnenin veya nesne kümesinin belirtilen özelliklerini seçer. Ayrıca benzersiz nesneleri, belirtilen sayıda nesneyi veya bir dizide belirtilen konumdaki nesneleri seçebilir.

Bir koleksiyondaki nesneleri seçmek için First, Last, Unique, Skip ve Index parametrelerini kullanın. Nesne özelliklerini seçmek için Özellik parametresini kullanın. Özellikleri seçtiğinizde, Select-Object yalnızca belirtilen özelliklere sahip yeni nesneler döndürür.

Windows PowerShell 3.0'dan başlayarak, Select-Object komutların kullanılmayan nesneleri oluşturmasını ve işlemesini engelleyen bir iyileştirme özelliği içerir.

Komut işlem hattında First veya Index parametreleriyle kullandığınızda Select-Object PowerShell, seçilen nesne sayısına ulaşıldığında nesneleri oluşturan komutu durdurur. Bu iyileştirme davranışını kapatmak için Wait parametresini kullanın.

Örnekler

Örnek 1: Özelliğe göre nesneleri seçme

Bu örnek, işlem nesnelerinin Ad, Kimlik ve çalışma kümesi (WS) özelliklerine sahip nesneler oluşturur.

Get-Process | Select-Object -Property ProcessName, Id, WS

Örnek 2: Özelliğe göre nesneleri seçme ve sonuçları biçimlendirme

Bu örnek, bilgisayardaki işlemler tarafından kullanılan modüller hakkında bilgi alır. İşlemi bilgisayara almak için cmdlet'ini kullanır Get-Process .

cmdlet'ini Select-Object kullanarak tarafından her System.Diagnostics.Process örneğin Modules özelliğinde yer alan örnek dizisini [System.Diagnostics.ProcessModule] verirGet-Process.

cmdlet'in Select-Object Property parametresi işlem adlarını seçer. Bu, her [System.Diagnostics.ProcessModule] örneğe bir ProcessName NoteProperty ekler ve geçerli işlemin ProcessName özelliğinin değeriyle doldurur.

Son olarak, Format-List cmdlet bir listedeki her işlemin adını ve modüllerini görüntülemek için kullanılır.

Get-Process Explorer |
    Select-Object -Property ProcessName -ExpandProperty Modules |
    Format-List

ProcessName       : explorer
ModuleName        : explorer.exe
FileName          : C:\WINDOWS\explorer.exe
BaseAddress       : 140697278152704
ModuleMemorySize  : 3919872
EntryPointAddress : 140697278841168
FileVersionInfo   : File:             C:\WINDOWS\explorer.exe
                    InternalName:     explorer
                    OriginalFilename: EXPLORER.EXE.MUI
                    FileVersion:      10.0.17134.1 (WinBuild.160101.0800)
                    FileDescription:  Windows Explorer
                    Product:          Microsoft Windows Operating System
                    ProductVersion:   10.0.17134.1
...

Örnek 3: En fazla belleği kullanan işlemleri seçme

Bu örnek, en çok bellek kullanan beş işlemi alır. Get-Process cmdlet'i bilgisayardaki işlemleri alır. cmdlet, Sort-Object işlemleri bellek (çalışma kümesi) kullanımına göre sıralar ve Select-Object cmdlet sonuçta elde edilen nesne dizisinin yalnızca son beş üyesini seçer.

Wait parametresi, cmdlet'ini Sort-Object içeren komutlarda gerekli değildir çünkü Sort-Object tüm nesneleri işler ve sonra bir koleksiyon döndürür. İyileştirme Select-Object yalnızca işlenirken nesneleri tek tek döndüren komutlar için kullanılabilir.

Get-Process | Sort-Object -Property WS | Select-Object -Last 5

Handles  NPM(K)    PM(K)      WS(K) VS(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
2866     320       33432      45764   203   222.41   1292 svchost
577      17        23676      50516   265    50.58   4388 WINWORD
826      11        75448      76712   188    19.77   3780 Ps
1367     14        73152      88736   216    61.69    676 Ps
1612     44        66080      92780   380   900.59   6132 INFOPATH

Örnek 4: Diziden benzersiz karakterler seçme

Bu örnek, bir karakter dizisinden benzersiz karakterler almak için benzersiz parametresini Select-Object kullanır.

"a","b","c","a","A","a" | Select-Object -Unique

a
b
c
A

Örnek 5: Diğer parametrelerle '-Unique' kullanma

Benzersiz parametre, diğer Select-Object parametreler uygulandıktan sonra değerleri filtreler. Örneğin, bir dizideki ilk öğe sayısını seçmek için first parametresini kullanırsanız, Benzersiz yalnızca seçilen değerlere uygulanır ve dizinin tamamına uygulanmaz.

"a","a","b","c" | Select-Object -First 2 -Unique

a

Bu örnekte, İlk, dizideki ilk 2 öğe olarak seçer"a","a". Benzersiz öğesine uygulanır "a","a" ve benzersiz değer olarak döndürür a .

Örnek 6: '-CaseInsensitive' parametresini kullanarak benzersiz dizeler seçin

Bu örnek, bir dizi dizeden benzersiz dizeler almak için büyük/küçük harfe duyarlı olmayan karşılaştırmalar kullanır.

"aa", "Aa", "Bb", "bb" | Select-Object -Unique -CaseInsensitive

aa
Bb

Örnek 7: Olay günlüğünde en yeni ve en eski olayları seçme

Bu örnek, Windows PowerShell olay günlüğündeki ilk (en yeni) ve son (en eski) olayları alır.

Get-WinEvent , Windows PowerShell günlüğündeki tüm olayları alır ve değişkene $a kaydeder. Ardından cmdlet'ine $a Select-Object kanal oluşturulur. komutu, Select-Object değişkendeki olay dizisinden olayları seçmek için Index parametresini $a kullanır. İlk olayın dizini 0'dır. Son olayın dizini eksi 1 içindeki $a öğe sayısıdır.

$a = Get-WinEvent -LogName "Windows PowerShell"
$a | Select-Object -Index 0, ($a.count - 1)

Örnek 8: İlk nesne dışında tümünü seçme

Bu örnek, ilki dışında Servers.txt dosyalarında listelenen bilgisayarların her birinde yeni bir PSSession oluşturur.

Select-Object bilgisayar adları listesindeki ilk bilgisayar dışında tümünü seçer. Sonuçta elde edilen bilgisayar listesi, cmdlet'in ComputerName parametresinin New-PSSession değeri olarak ayarlanır.

New-PSSession -ComputerName (Get-Content Servers.txt | Select-Object -Skip 1)

Örnek 9: Dosyaları yeniden adlandırın ve gözden geçirmek için birkaç dosya seçin

Bu örnek, salt okunur özniteliğine sahip metin dosyalarının temel adlarına bir "-ro" soneki ekler ve ardından kullanıcının efektin bir örneğini görebilmesi için ilk beş dosyayı görüntüler.

Get-ChildItemsalt okunur dosyaları almak için ReadOnly dinamik parametresini kullanır. Sonuçta elde edilen dosyalar Rename-Item , dosyayı yeniden adlandıran cmdlet'ine aktarılır. Yeniden adlandırılan dosyaları cmdlet'ine Select-Object göndermek için passThru parametresini Rename-Item kullanır ve bu da görüntü için ilk 5'i seçer.

parametresi, Select-Object PowerShell'in ilk beş salt okunur metin dosyasını aldıktan sonra cmdlet'ini durdurmasını Get-ChildItem engeller. Bu parametre olmadan yalnızca ilk beş salt okunur dosya yeniden adlandırılabilir.

Get-ChildItem *.txt -ReadOnly |
    Rename-Item -NewName {$_.BaseName + "-ro.txt"} -PassThru |
    Select-Object -First 5 -Wait

Örnek 10: -ExpandProperty parametresinin karmaşıklıklarını gösterme

Bu örnekte ExpandProperty parametresinin karmaşıklıkları gösterilmektedir.

Oluşturulan çıkışın bir örnek dizisi [System.Int32] olduğunu unutmayın. Örnekler Çıkış Görünümü'nde standart biçimlendirme kurallarına uygundur. Bu, Tüm Genişletilmiş özellikler için geçerlidir. Çıktısı alınan nesneler belirli bir standart biçime sahipse, genişletilmiş özellik görünür olmayabilir.

# Create a custom object to use for the Select-Object example.
$object = [pscustomobject]@{Name="CustomObject";Expand=@(1,2,3,4,5)}
# Use the ExpandProperty parameter to Expand the property.
$object | Select-Object -ExpandProperty Expand -Property Name

1
2
3
4
5

# The output did not contain the Name property, but it was added successfully.
# Use Get-Member to confirm the Name property was added and populated.
$object | Select-Object -ExpandProperty Expand -Property Name | Get-Member

TypeName: System.Int32

Name        MemberType   Definition
----        ----------   ----------
CompareTo   Method       int CompareTo(System.Object value), int CompareTo(int value), ...
Equals      Method       bool Equals(System.Object obj), bool Equals(int obj), bool IEq...
GetHashCode Method       int GetHashCode()
GetType     Method       type GetType()
GetTypeCode Method       System.TypeCode GetTypeCode(), System.TypeCode IConvertible.Ge...
ToBoolean   Method       bool IConvertible.ToBoolean(System.IFormatProvider provider)
ToByte      Method       byte IConvertible.ToByte(System.IFormatProvider provider)
ToChar      Method       char IConvertible.ToChar(System.IFormatProvider provider)
ToDateTime  Method       datetime IConvertible.ToDateTime(System.IFormatProvider provider)
ToDecimal   Method       decimal IConvertible.ToDecimal(System.IFormatProvider provider)
ToDouble    Method       double IConvertible.ToDouble(System.IFormatProvider provider)
ToInt16     Method       int16 IConvertible.ToInt16(System.IFormatProvider provider)
ToInt32     Method       int IConvertible.ToInt32(System.IFormatProvider provider)
ToInt64     Method       long IConvertible.ToInt64(System.IFormatProvider provider)
ToSByte     Method       sbyte IConvertible.ToSByte(System.IFormatProvider provider)
ToSingle    Method       float IConvertible.ToSingle(System.IFormatProvider provider)
ToString    Method       string ToString(), string ToString(string format), string ToS...
ToType      Method       System.Object IConvertible.ToType(type conversionType, System...
ToUInt16    Method       uint16 IConvertible.ToUInt16(System.IFormatProvider provider)
ToUInt32    Method       uint32 IConvertible.ToUInt32(System.IFormatProvider provider)
ToUInt64    Method       uint64 IConvertible.ToUInt64(System.IFormatProvider provider)
Name        NoteProperty string Name=CustomObject

Örnek 11: Nesneler üzerinde özel özellikler oluşturma

Aşağıdaki örnekte, herhangi bir nesneye özel özellik eklemek için komutunun Select-Object kullanılması gösterilmektedir. Var olmayan bir özellik adı belirttiğinizde, Select-Object geçirilen her nesnede bu özelliği NoteProperty olarak oluşturur.

$customObject = 1 | Select-Object -Property MyCustomProperty
$customObject.MyCustomProperty = "New Custom Property"
$customObject

MyCustomProperty
----------------
New Custom Property

Örnek 12: Her InputObject için hesaplanan özellikler oluşturma

Bu örnekte, girişinize hesaplanan özellikler eklemek için kullanma Select-Object gösterilmektedir. Property parametresine ScriptBlock geçirilirken geçirilen her nesnede ifadenin değerlendirilmesi ve sonuçların çıkışa eklenmesi neden olurSelect-Object. ScriptBlock içinde değişkenini $_ kullanarak işlem hattındaki geçerli nesneye başvurabilirsiniz.

Varsayılan olarak, Select-Object özelliğin adı olarak ScriptBlock dizesini kullanır. Hashtable kullanarak ScriptBlock'unuzun çıkışını her nesneye eklenen özel bir özellik olarak etiketleyebilirsiniz. öğesine geçirilen Select-Objecther nesneye birden çok hesaplanan özellik ekleyebilirsiniz.

# Create a calculated property called $_.StartTime.DayOfWeek
Get-Process | Select-Object -Property ProcessName,{$_.StartTime.DayOfWeek}

ProcessName  $_.StartTime.DayOfWeek
----         ----------------------
alg                       Wednesday
ati2evxx                  Wednesday
ati2evxx                   Thursday
...

# Add a custom property to calculate the size in KiloBytes of each FileInfo
# object you pass in. Use the pipeline variable to divide each file's length by
# 1 KiloBytes
$size = @{label="Size(KB)";expression={$_.length/1KB}}
# Create an additional calculated property with the number of Days since the
# file was last accessed. You can also shorten the key names to be 'l', and 'e',
# or use Name instead of Label.
$days = @{l="Days";e={((Get-Date) - $_.LastAccessTime).Days}}
# You can also shorten the name of your label key to 'l' and your expression key
# to 'e'.
Get-ChildItem $PSHOME -File | Select-Object Name, $size, $days

Name                        Size(KB)        Days
----                        --------        ----
Certificate.format.ps1xml   12.5244140625   223
Diagnostics.Format.ps1xml   4.955078125     223
DotNetTypes.format.ps1xml   134.9833984375  223

Örnek 13: Hesaplanmış özellikleri kullanmadan karma tablo anahtarlarını seçme

PowerShell 6'da başlayarak, Select-Object karma tablo girişi anahtarlarının özellik olarak seçilmesini destekler. Aşağıdaki örnek, giriş karma tablosu üzerindeki ve name anahtarlarını seçer weight ve çıkışı görüntüler.

@{ name = 'a' ; weight = 7 } | Select-Object -Property name, weight

name weight
---- ------
a         7

Örnek 14: ExpandProperty özgün nesneyi değiştirir

Bu örnekte ExpandProperty parametresini kullanmanın yan etkisi gösterilmektedir. ExpandProperty kullandığınızda, seçili özellikleri özgün nesneye NoteProperty üyeleri olarak ekler. Select-Object

PS> $object = [PSCustomObject]@{
    name = 'USA'
    children = [PSCustomObject]@{
        name = 'Southwest'
    }
}
PS> $object

name children
---- --------
USA  @{name=Southwest}

# Use the ExpandProperty parameter to expand the children property
PS> $object | Select-Object @{n="country"; e={$_.name}} -ExpandProperty children

name      country
----      -------
Southwest USA

# The original object has been altered
PS> $object

name children
---- --------
USA  @{name=Southwest; country=USA}

Gördüğünüz gibi, ExpandProperty parametresi kullanıldıktan sonra ülke özelliği alt nesneye eklendi.

Örnek 15: Giriş nesnesini değiştirmeden genişletilmiş özelliklere sahip yeni bir nesne oluşturma

Yeni bir nesne oluşturup giriş nesnesinden özellikleri kopyalayarak ExpandProperty parametresini kullanmanın yan etkisinden kaçınabilirsiniz.

PS> $object = [PSCustomObject]@{
    name = 'USA'
    children = [PSCustomObject]@{
        name = 'Southwest'
    }
}
PS> $object

name children
---- --------
USA  @{name=Southwest}

# Create a new object with selected properties
PS> $newobject = [PSCustomObject]@{
    country = $object.name
    children = $object.children
}

PS> $newobject

country children
------- --------
USA     @{name=Southwest}

# $object remains unchanged
PS> $object

name children
---- --------
USA  @{name=Southwest}

Parametreler

-CaseInsensitive

Varsayılan olarak, Unique parametresini kullandığınızda cmdlet büyük/küçük harfe duyarlı karşılaştırmalar kullanır. Bu parametreyi kullandığınızda, cmdlet büyük/küçük harfe duyarsız karşılaştırmalar kullanır.

Bu parametre PowerShell 7.4'e eklendi.

Tür:SwitchParameter
Position:Named
Default value:False
Gerekli:False
İşlem hattı girişini kabul et:False
Joker karakterleri kabul et:False

-ExcludeProperty

Bu cmdlet'in işlemden hariç tutulduğu özellikleri belirtir. Joker karakterlere izin verilir.

PowerShell 6'da başlayarak, ExcludeProperty'nin çalışması için Özellik parametresinin eklenmesi artık gerekli değildir.

Tür:String[]
Position:Named
Default value:None
Gerekli:False
İşlem hattı girişini kabul et:False
Joker karakterleri kabul et:True

-ExpandProperty

Seçilecek özelliği belirtir ve bu özelliği genişletmek için bir girişimde bulunulması gerektiğini belirtir. Giriş nesnesi işlem hattında adlı özellik yoksa bir Select-Object hata döndürür.

  • Belirtilen özellik bir diziyse, dizinin her değeri çıkışa eklenir.
  • Belirtilen özellik bir nesneyse, her InputObject için nesne özellikleri genişletilir

Her iki durumda da çıkış nesnelerinin Türü genişletilmiş özelliğin Type değeriyle eşleşir.

Not

ExpandProperty kullanılırken bir yan etki vardır. seçili Select-Object özellikleri özgün nesneye NoteProperty üyeleri olarak ekler.

Property parametresi belirtilirse, Select-Object seçilen her özelliği çıktısı alınan her nesneye Bir NoteProperty olarak eklemeyi dener.

Uyarı

Bu ada sahip bir özellik zaten var olduğundan bir özelliğin işlenemediğine ilişkin bir hata alırsanız aşağıdakileri göz önünde bulundurun. ExpandPropertySelect-Object kullanılırken mevcut bir özelliğin değiştirilebileceğini unutmayın. Diğer bir deyişle:

  • Genişletilmiş nesne aynı ada sahip bir özelliğe sahipse, komut bir hata döndürür.
  • Selected nesnesi, Genişletilmiş nesnenin özelliğiyle aynı ada sahip bir özelliğe sahipse, komut bir hata döndürür.
Tür:String
Position:Named
Default value:None
Gerekli:False
İşlem hattı girişini kabul et:False
Joker karakterleri kabul et:False

-First

Giriş nesneleri dizisinin başından seçilebilecek nesne sayısını belirtir.

Tür:Int32
Position:Named
Default value:None
Gerekli:False
İşlem hattı girişini kabul et:False
Joker karakterleri kabul et:False

-Index

Dizideki nesneleri dizin değerlerine göre seçer. Dizinleri virgülle ayrılmış bir listeye girin. Bir dizideki dizinler 0 ile başlar; burada 0 ilk değeri ve (n-1) son değeri temsil eder.

Tür:Int32[]
Position:Named
Default value:None
Gerekli:False
İşlem hattı girişini kabul et:False
Joker karakterleri kabul et:False

-InputObject

İşlem hattı üzerinden cmdlet'e gönderilecek nesneleri belirtir. Bu parametre nesneleri öğesine yöneltmenizi Select-Objectsağlar.

Nesneleri InputObject parametresine geçirdiğinizde, işlem hattını kullanmak yerine, Select-Object değer bir koleksiyon olsa bile InputObject'i tek bir nesne olarak değerlendirir. koleksiyonları'na Select-Objectgeçirirken işlem hattını kullanmanız önerilir.

Tür:PSObject
Position:Named
Default value:None
Gerekli:False
İşlem hattı girişini kabul et:True
Joker karakterleri kabul et:False

-Last

Giriş nesneleri dizisinin sonundan seçilebilecek nesne sayısını belirtir.

Tür:Int32
Position:Named
Default value:None
Gerekli:False
İşlem hattı girişini kabul et:False
Joker karakterleri kabul et:False

-Property

Seçecek özellikleri belirtir. Bu özellikler çıkış nesnelerine NoteProperty üyeleri olarak eklenir. Joker karakterlere izin verilir. Giriş nesnesi adlı özelliğe sahip değilse, yeni NoteProperty değeri olarak $nullayarlanır.

Property parametresinin değeri yeni bir hesaplanmış özellik olabilir. Hesaplanmış özellik oluşturmak için bir karma tablo kullanın.

Geçerli anahtarlar şunlardır:

  • Ad (veya Etiket) - <string>
  • İfade - <string> veya <script block>

Daha fazla bilgi için bkz . about_Calculated_Properties.

Tür:Object[]
Position:0
Default value:None
Gerekli:False
İşlem hattı girişini kabul et:False
Joker karakterleri kabul et:True

-Skip

Belirtilen öğe sayısını atlar (seçmez). Varsayılan olarak, Skip parametresi nesne koleksiyonunun başından itibaren sayılır. Komut Last parametresini kullanıyorsa, koleksiyonun sonundan sayar.

0'da saymaya başlayan Index parametresinden farklı olarak Skip parametresi 1'de başlar.

PowerShell 7.4'ten başlayarak Skip parametresini SkipLast parametresiyle kullanarak koleksiyonun hem başından hem de sonundan öğeleri atlayabilirsiniz.

Tür:Int32
Position:Named
Default value:None
Gerekli:False
İşlem hattı girişini kabul et:False
Joker karakterleri kabul et:False

-SkipIndex

Dizideki nesneleri dizin değerlerine göre atlar (seçmez). Dizinleri virgülle ayrılmış bir listeye girin. Bir dizideki dizinler 0 ile başlar; burada 0 ilk değeri ve (n-1) son değeri temsil eder.

Bu parametre Windows PowerShell 6.0'da kullanıma sunulmuştur.

Tür:Int32[]
Position:Named
Default value:None
Gerekli:False
İşlem hattı girişini kabul et:False
Joker karakterleri kabul et:False

-SkipLast

Liste veya dizinin sonunda belirtilen öğe sayısını atlar (seçmez). Atla'yı Last parametresiyle birlikte kullanmakla aynı şekilde çalışır.

0'da saymaya başlayan Index parametresinden farklı olarak SkipLast parametresi 1'de başlar.

PowerShell 7.4'ten başlayarak Skip parametresini SkipLast parametresiyle kullanarak koleksiyonun hem başından hem de sonundan öğeleri atlayabilirsiniz.

Tür:Int32
Position:Named
Default value:None
Gerekli:False
İşlem hattı girişini kabul et:False
Joker karakterleri kabul et:False

-Unique

Giriş nesnelerinin bir alt kümesi aynı özelliklere ve değerlere sahipse, alt kümenin yalnızca tek bir üyesinin seçilmesi gerektiğini belirtir.

Diğer filtreleme parametreleri uygulandıktan sonra benzersiz seçim değerleri.

Bu parametre büyük/küçük harfe duyarlıdır. Sonuç olarak, yalnızca karakter büyük/küçük harfe göre farklılık gösteren dizeler benzersiz olarak kabul edilir. Büyük/küçük harfe duyarlı olmayan karşılaştırmalar gerçekleştirmek için CaseInsensitive parametresini ekleyin.

Tür:SwitchParameter
Position:Named
Default value:None
Gerekli:False
İşlem hattı girişini kabul et:False
Joker karakterleri kabul et:False

-Wait

Cmdlet'in iyileştirmeyi kapattığını gösterir. PowerShell komutları komut işlem hattında göründükleri sırayla çalıştırır ve tüm nesneleri oluşturmalarına olanak tanır. Varsayılan olarak, komut Select-Object işlem hattına First veya Index parametrelerine sahip bir komut eklerseniz, PowerShell seçilen nesne sayısı oluşturulur oluşturulmaz nesneleri oluşturan komutu durdurur.

Bu parametre Windows PowerShell 3.0'da kullanıma sunulmuştur.

Tür:SwitchParameter
Position:Named
Default value:None
Gerekli:False
İşlem hattı girişini kabul et:False
Joker karakterleri kabul et:False

Girişler

PSObject

Nesneleri bu cmdlet'e yöneltebilirsiniz.

Çıkışlar

PSObject

Bu cmdlet yalnızca seçili özelliklere sahip giriş nesnelerini döndürür.

Notlar

PowerShell için aşağıdaki diğer adları Select-Objectiçerir:

  • Tüm platformlar:
    • select

en iyi duruma getirme özelliği Select-Object yalnızca işlem hattına işlenen nesneleri yazan komutlar için kullanılabilir. Nesneleri arabelleğe alan ve bunları koleksiyon olarak yazan komutlar üzerinde hiçbir etkisi yoktur. Nesneleri hemen yazmak bir cmdlet tasarımı en iyi uygulamasıdır. Daha fazla bilgi için bkz. Kesinlikle Teşvik Edilen Geliştirme Yönergelerinde İşlem Hattına Tek Kayıtlar Yazma.