Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Kısa açıklama
Tüm PowerShell nesneleri tarafından kullanılabilen PowerShell'in iç üyeleri hakkında bilgi sağlar.
Uzun açıklama
Nesneler oluşturulduğunda, PowerShell her nesneye bazı "gizli" özellikler ve yöntemler ekler. Bu özellikler ve yöntemler, özgün üyeler olarak bilinir. Bu iç üyeler normalde görünümden gizlenir. Bu gizli üyeler, Force parametresi kullanılarak Get-Memberile görülebilir.
Nesne görünümleri
İç üyeler, nesnenin görünümünü temsil eden bir MemberSet özellikleri kümesi içerir. MemberSet özellikleri hakkında daha fazla bilgi için bkz. PSMemberSet.
Her PowerShell nesnesi aşağıdaki özellikleri içerir.
psbasepsbaseMemberSet, uzantı veya uyarlama olmadan temel nesnenin üyelerini içerir. Nesne türüne bağlı olarak, bir[psobject]örneği tarafından sarmalanmış bir .NET nesnesi örneği olabilir veya sarmalayıcı yoksa giriş nesnesinin kendisi olabilir.psadaptedpsadaptedMemberSet, varsa temel nesneyi ve uyarlanmış üyeleri gösterir. Uyarlanan üyeler Genişletilmiş Tür Sistemi (ETS) tarafından eklenir.psextendedpsextendedMemberSetyalnızcaTypes.ps1xml dosyaları tarafından eklenen üyeleri ve Add-Member cmdlet'ini gösterir. Herhangi bir nesne çalışma zamanındaAdd-Membercmdlet'i kullanılarak genişletilebilir.psobjectpsobjectMemberSet, yöntemler, özellikler ve nesne hakkındaki diğer bilgileri içeren herhangi bir nesne için zengin bir yansıma kaynağıdır.
Örnekler
Bu örnekte, $hash bir kullanıcı hakkında bilgi içeren bir karma tablodur.
Get-Member parametresi, nesnenin iç üyelerini gösterir.
$hash = @{
Age = 33
Name = 'Bob'
}
$hash | Get-Member -Force -MemberType MemberSet, CodeProperty
TypeName: System.Collections.Hashtable
Name MemberType Definition
---- ---------- ----------
pstypenames CodeProperty System.Collections.ObjectModel.Collection`1[[System.String, System.Private.CoreLib, Version=7…
psadapted MemberSet psadapted {Item, IsReadOnly, IsFixedSize, IsSynchronized, Keys, Values, SyncRoot, Count, Add,…
psbase MemberSet psbase {Item, IsReadOnly, IsFixedSize, IsSynchronized, Keys, Values, SyncRoot, Count, Add, Cl…
psextended MemberSet psextended {}
psobject MemberSet psobject {Members, Properties, Methods, ImmediateBaseObject, BaseObject, TypeNames, get_Membe…
psobject kullanmak, Get-Memberkullanmaya benzer, ancak daha fazla esneklik sağlar. Örneğin, bir nesnenin özelliklerini ve değerlerini numaralandırabilirsiniz.
$hash.psobject.Properties | Select-Object Name, MemberType, Value
Name MemberType Value
---- ---------- -----
IsReadOnly Property False
IsFixedSize Property False
IsSynchronized Property False
Keys Property {Age, Name}
Values Property {33, Bob}
SyncRoot Property {[Age, 33], [Name, Bob]}
Count Property 2
Bunu, karma tablo PSCustomObjectdönüştürerek oluşturulan nesneyle karşılaştırın.
$user = [pscustomobject]$hash
$user.psobject.Properties | Select-Object Name, MemberType, Value
Name MemberType Value
---- ---------- -----
Age NoteProperty 33
Name NoteProperty Bob
Karma tablodaki anahtarların PSCustomObjectözelliklerine dönüştürüldüğüne dikkat edin. Yeni özellikler artık psextendedMemberSetöğesinin bir parçasıdır.
$user | Get-Member -Force -MemberType MemberSet, CodeProperty
TypeName: System.Management.Automation.PSCustomObject
Name MemberType Definition
---- ---------- ----------
pstypenames CodeProperty System.Collections.ObjectModel.Collection`1[[System.String, System.Private.CoreLib, Version=7…
psadapted MemberSet psadapted {ToString, GetType, Equals, GetHashCode}
psbase MemberSet psbase {ToString, GetType, Equals, GetHashCode}
psextended MemberSet psextended {Age, Name}
psobject MemberSet psobject {Members, Properties, Methods, ImmediateBaseObject, BaseObject, TypeNames, get_Membe…
Tür bilgileri
pstypenames
CodeProperty devralma sırasına göre nesne türü hiyerarşisini listeler. Mesela:
$file = Get-Item C:\temp\test.txt
$file.pstypenames
System.IO.FileInfo
System.IO.FileSystemInfo
System.MarshalByRefObject
System.Object
Çıktı, en özel nesne türü System.IO.FileInfoile başlar ve en genel tür System.Object'e kadar devam eder.
Methods
PowerShell, tüm PowerShell nesnelerine iki gizli yöntem ekler. Bu yöntemler Get-Member -Force komutu veya sekme tamamlama kullanılarak görünmez.
ForEach() ve Where()
ForEach() ve Where() yöntemleri tüm PowerShell nesneleri tarafından kullanılabilir.
Ancak, koleksiyonlarla çalışırken en kullanışlı olanlardır. Bu yöntemleri kullanma hakkında daha fazla bilgi için bkz. about_Arrays.
Özellikler
Tüm skaler türlerde temel türdeki Sayısı veya Uzunluğu özellikleri yoktur. PowerShell, eksik özelliği tüm skaler türler için iç üye olarak ekler.
Not
Başlatılmamış değişkenler otomatik olarak $nullşeklinde tanımlanır.
$null skaler ve kendisine ait Sayısı ve Uzunluğu 0'dır.
Sayısı ve Uzunluğu özellikleri benzer olsa da, veri türüne bağlı olarak farklı çalışabilirler. Örneğin, bir dizenin Uzunluğu dizedeki karakter sayısıdır. Count özelliği, nesnenin örnek sayısıdır.
PS> $str = 'string'
PS> $str.Length
6
PS> $str.Count
1
Bu özellikler hakkında daha fazla bilgi için bkz. about_Properties.
Dizi dizinleme skaler türleri
Bir nesne dizine alınan bir koleksiyon olmadığında, ilk öğeye erişmek için dizin işlecini kullanmak nesnenin kendisini döndürür. İlk öğenin dışındaki dizin değerleri $nulldöndürür.
PS> (2)[0]
2
PS> (2)[-1]
2
PS> (2)[1] -eq $null
True
PS> (2)[0,0] -eq $null
True
Daha fazla bilgi için bkz. about_Operators.
new() türler için yöntem
PowerShell 5.0 sürümünden başlayarak, PowerShell tüm .NET türleri için statik bir new() yöntemi ekler. Aşağıdaki örneklerde aynı sonuç elde edilmektedir.
$expression = New-Object -TypeName regex -ArgumentList 'pattern'
$expression = [regex]::new('pattern')
new() yönteminin kullanılması, New-Objectkullanmaktan daha iyi performans gösterir.
Daha fazla bilgi için bkz. about_Classes.
PowerShell