Aracılığıyla paylaş


Özellikler_Hakkında

Kısa açıklama

PowerShell'de nesne özelliklerinin nasıl kullanılacağını açıklar.

Uzun açıklama

PowerShell, veri depolarındaki öğeleri veya bilgisayarın durumunu göstermek için nesneler olarak adlandırılan yapılandırılmış bilgi koleksiyonlarını kullanır. Genellikle, Microsoft .NET Framework'ün parçası olan nesnelerle çalışırsınız, ancak PowerShell'de özel nesneler de oluşturabilirsiniz.

Bir öğe ile nesnesi arasındaki ilişki çok yakın. Bir nesneyi değiştirdiğinizde, genellikle temsil ettiği öğeyi değiştirirsiniz. Örneğin, PowerShell'de bir dosya aldığınızda gerçek dosyayı alamazsınız. Bunun yerine, dosyayı temsil eden bir FileInfo nesnesi alırsınız. FileInfo nesnesini değiştirdiğinizde, dosya da değişir.

Çoğu nesnenin özellikleri vardır. Özellikler, bir nesneyle ilişkili verilerdir. Farklı nesne türleri farklı özelliklere sahiptir. Örneğin, bir dosyayı temsil eden FileInfo nesnesinin, dosya salt okunur özniteliğine sahipse , değilse $true değerini içeren $false özelliği vardır. Bir dosya sistemi dizinini temsil eden DirectoryInfo nesnesi, üst dizinin yolunu içeren Parent özelliğine sahiptir.

Nesne özellikleri

Bir nesnenin özelliklerini almak için Get-Member cmdlet'ini kullanın. Örneğin, FileInfo nesnesinin özelliklerini almak için Get-ChildItem cmdlet'ini kullanarak dosyayı temsil eden FileInfo nesnesini alın. Ardından, | nesnesini göndermek için işlem hattı işlecini (Get-Member) kullanın. Aşağıdaki komut pwsh.exe dosyasını alır ve Get-Memberadresine gönderir. $PSHOME otomatik değişkeni, PowerShell yükleme dizininin yolunu içerir.

Get-ChildItem $PSHOME\pwsh.exe | Get-Member

Komutun çıktısı, FileInfo nesnesinin üyelerini listeler. Üyeler hem özellikleri hem de metotları içerir. PowerShell'de çalışırken, nesnelerin tüm üyelerine erişebilirsiniz.

Yöntemlerin değil yalnızca nesnenin özelliklerini almak için, aşağıdaki örnekte gösterildiği gibi cmdlet'in Get-Memberdeğerine sahip Property parametresini kullanın.

Get-ChildItem $PSHOME\pwsh.exe | Get-Member -MemberType Property
TypeName: System.IO.FileInfo

Name              MemberType Definition
----              ---------- ----------
Attributes        Property   System.IO.FileAttributes Attributes {get;set;}
CreationTime      Property   System.DateTime CreationTime {get;set;}
CreationTimeUtc   Property   System.DateTime CreationTimeUtc {get;set;}
Directory         Property   System.IO.DirectoryInfo Directory {get;}
DirectoryName     Property   System.String DirectoryName {get;}
Exists            Property   System.Boolean Exists {get;}
Extension         Property   System.String Extension {get;}
FullName          Property   System.String FullName {get;}
IsReadOnly        Property   System.Boolean IsReadOnly {get;set;}
LastAccessTime    Property   System.DateTime LastAccessTime {get;set;}
LastAccessTimeUtc Property   System.DateTime LastAccessTimeUtc {get;set;}
LastWriteTime     Property   System.DateTime LastWriteTime {get;set;}
LastWriteTimeUtc  Property   System.DateTime LastWriteTimeUtc {get;set;}
Length            Property   System.Int64 Length {get;}
Name              Property   System.String Name {get;}

Özellikleri buldukktan sonra PowerShell komutlarınızda kullanabilirsiniz.

Mülk değerleri

Belirli bir türün her nesnesi aynı özelliklere sahip olsa da, bu özelliklerin değerleri belirli nesneyi açıklar. Örneğin, her FileInfo nesnesinin bir CreationTime özelliği vardır, ancak bu özelliğin değeri her dosya için farklılık gösterir.

Bir nesnenin özelliklerinin değerlerini almanın en yaygın yolu üye erişim işlecini (.) kullanmaktır. Nesneyi içeren bir değişken veya nesneyi alan bir komut gibi nesneye bir başvuru yazın. Ardından işlecini (.) ve ardından özellik adını yazın.

Örneğin, aşağıdaki komut dosyasının pwsh.exe özelliğinin değerini görüntüler. Get-ChildItem komutu, temsil eden bir pwsh.exe file nesnesi döndürür. Komut, herhangi bir özelliğe erişilmeden önce yürütülmesini sağlamak için parantez içine alınır.

(Get-ChildItem $PSHOME\pwsh.exe).CreationTime
Tuesday, June 14, 2022 5:17:14 PM

Ayrıca, aşağıdaki örnekte gösterildiği gibi bir değişkene bir nesne kaydedebilir ve üye erişimi (.) yöntemini kullanarak nesnesinin özelliklerini alabilirsiniz:

$a = Get-ChildItem $PSHOME\pwsh.exe
$a.CreationTime
Wednesday, November 13, 2024 10:12:26 PM

Bir nesnenin özellik değerlerini görüntülemek için Select-Object ve Format-List cmdlet'lerini de kullanabilirsiniz. Select-Object ve Format-List her birinin bir Özelliği parametresi vardır. Bir veya daha fazla özelliği ve bunların değerlerini belirtmek için Özelliği parametresini kullanabilirsiniz. İsterseniz, tüm özellikleri temsil etmek için joker karakteri (*) kullanabilirsiniz.

Örneğin, aşağıdaki komut pwsh.exe dosyasının tüm özelliklerinin değerlerini görüntüler.

Get-ChildItem $PSHOME\pwsh.exe | Format-List -Property *
PSPath              : Microsoft.PowerShell.Core\FileSystem::C:\Program Files\PowerShell\7-preview\pwsh.exe
PSParentPath        : Microsoft.PowerShell.Core\FileSystem::C:\Program Files\PowerShell\7-preview
PSChildName         : pwsh.exe
PSDrive             : C
PSProvider          : Microsoft.PowerShell.Core\FileSystem
PSIsContainer       : False
Mode                : -a---
ModeWithoutHardLink : -a---
VersionInfo         : File:             C:\Program Files\PowerShell\7-preview\pwsh.exe
                      InternalName:     pwsh.dll
                      OriginalFilename: pwsh.dll
                      FileVersion:      7.5.0.101
                      FileDescription:  PowerShell 7
                      Product:          PowerShell
                      ProductVersion:   7.5.0-rc.1 SHA: c0142dde17137e436e302b3c4e93e2d6dc50c5c4+c0142dde17137e436e302b3c4e93e2d6dc50c5c4
                      Debug:            False
                      Patched:          False
                      PreRelease:       False
                      PrivateBuild:     False
                      SpecialBuild:     False
                      Language:         Language Neutral

BaseName            : pwsh
ResolvedTarget      : C:\Program Files\PowerShell\7-preview\pwsh.exe
Target              :
LinkType            :
Name                : pwsh.exe
Length              : 284704
DirectoryName       : C:\Program Files\PowerShell\7-preview
Directory           : C:\Program Files\PowerShell\7-preview
IsReadOnly          : False
Exists              : True
FullName            : C:\Program Files\PowerShell\7-preview\pwsh.exe
Extension           : .exe
CreationTime        : 11/13/2024 10:12:26 PM
CreationTimeUtc     : 11/14/2024 4:12:26 AM
LastAccessTime      : 1/3/2025 1:38:13 PM
LastAccessTimeUtc   : 1/3/2025 7:38:13 PM
LastWriteTime       : 11/13/2024 10:12:26 PM
LastWriteTimeUtc    : 11/14/2024 4:12:26 AM
LinkTarget          :
UnixFileMode        : -1
Attributes          : Archive

Statik özellikler

PowerShell'de .NET sınıflarının statik özelliklerini kullanabilirsiniz. Statik özellikler, bir nesnenin özellikleri olan standart özelliklerden farklı olarak sınıfın özellikleridir.

Bir sınıfın statik özelliklerini almak için cmdlet'in Get-Member parametresini kullanın. Örneğin, aşağıdaki komut System.DateTime sınıfının statik özelliklerini alır.

Get-Date | Get-Member -MemberType Property -Static
TypeName: System.DateTime

Name     MemberType Definition
----     ---------- ----------
MaxValue Property   static datetime MaxValue {get;}
MinValue Property   static datetime MinValue {get;}
Now      Property   datetime Now {get;}
Today    Property   datetime Today {get;}
UtcNow   Property   datetime UtcNow {get;}

Statik özelliğin değerini almak için aşağıdaki söz dizimini kullanın.

[<ClassName>]::<Property>

Örneğin, aşağıdaki komut sınıfının System.DateTime statik özelliğinin değerini alır.

[System.DateTime]::UtcNow

Üye erişim sabit listesi

PowerShell 3.0'dan başlayarak, üye erişim işlecini (.) kullanarak var olmayan bir özelliğe eriştiğinizde, PowerShell koleksiyondaki öğeleri otomatik olarak numaralandırır ve her öğe için özelliğin değerini döndürür.

Bu komut, döndüren her hizmetin Get-Service özelliğinin değerini döndürür.

(Get-Service).DisplayName
Application Experience
Application Layer Gateway Service
Windows All-User Install Agent
Application Identity
Application Information
...

PowerShell'deki çoğu koleksiyon, koleksiyondaki sayı öğelerini döndüren Count özelliğine sahiptir.

(Get-Service).Count
176

Tek tek nesnelerde ve koleksiyonda bir özellik varsa, yalnızca koleksiyonun özelliği döndürülür.

PS> $collection = @(
     [pscustomobject]@{Length = "foo"}
     [pscustomobject]@{Length = "bar"}
)

# PowerShell returns the collection's Length.
$collection.Length
2

# Get the Length property of each item in the collection.
PS> $collection.GetEnumerator().Length
foo
bar

Daha fazla bilgi için bkz. about_Member-Access_Enumeration.

Ayrıca bakınız