Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Deskripsi singkat
Menjelaskan cara menggunakan properti objek di PowerShell.
Deskripsi panjang
PowerShell menggunakan kumpulan informasi terstruktur yang disebut objek untuk mewakili item di penyimpanan data atau status komputer. Biasanya, Anda bekerja dengan objek yang merupakan bagian dari Microsoft .NET Framework, tetapi Anda juga dapat membuat objek kustom di PowerShell.
Hubungan antara item dan objeknya sangat dekat. Saat Anda mengubah objek, Anda biasanya mengubah item yang diwakilinya. Misalnya, saat Anda mendapatkan file di PowerShell, Anda tidak mendapatkan file aktual. Sebagai gantinya, Anda mendapatkan objek FileInfo yang mewakili file. Saat Anda mengubah objek FileInfo, file juga berubah.
Sebagian besar objek memiliki properti. Properti adalah data yang terkait dengan objek. Jenis objek yang berbeda memiliki properti yang berbeda. Misalnya, objek FileInfo , yang mewakili file, memiliki properti IsReadOnly yang berisi $true jika file memiliki atribut baca-saja dan $false jika tidak. Objek DirectoryInfo , yang mewakili direktori sistem file, memiliki properti Induk yang berisi jalur ke direktori induk.
Properti objek
Untuk mendapatkan properti objek, gunakan Get-Member cmdlet . Misalnya, untuk mendapatkan properti objek FileInfo , gunakan Get-ChildItem cmdlet untuk mendapatkan objek FileInfo yang mewakili file. Kemudian, gunakan operator alur (|) untuk mengirim objek FileInfo ke Get-Member. Perintah berikut mendapatkan powershell.exe file dan mengirimkannya ke Get-Member. Variabel $PSHOME otomatis berisi jalur direktori penginstalan PowerShell.
Get-ChildItem $PSHOME\powershell.exe | Get-Member
Output perintah mencantumkan anggota objek FileInfo . Anggota mencakup properti dan metode. Saat Anda bekerja di PowerShell, Anda memiliki akses ke semua anggota objek.
Untuk mendapatkan hanya properti objek dan bukan metode, gunakan parameter MemberType cmdlet Get-Member dengan nilai Property, seperti yang ditunjukkan dalam contoh berikut.
Get-ChildItem $PSHOME\powershell.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;}
Setelah menemukan properti, Anda bisa menggunakannya di perintah PowerShell Anda.
Nilai properti
Meskipun setiap objek dari jenis tertentu memiliki properti yang sama, nilai properti tersebut menjelaskan objek tertentu. Misalnya, setiap objek FileInfo memiliki properti CreationTime , tetapi nilai properti tersebut berbeda untuk setiap file.
Cara paling umum untuk mendapatkan nilai properti objek adalah dengan menggunakan operator akses anggota (.). Ketik referensi ke objek, seperti variabel yang berisi objek, atau perintah yang mendapatkan objek. Kemudian, ketik operator (.) diikuti dengan nama properti.
Misalnya, perintah berikut menampilkan nilai properti CreationTime file powershell.exe . Perintah Get-ChildItem mengembalikan objek FileInfo yang mewakili powershell.exe file. Perintah diapit dalam tanda kurung untuk memastikan bahwa perintah dijalankan sebelum properti diakses.
(Get-ChildItem $PSHOME\powershell.exe).CreationTime
Saturday, June 5, 2021 7:07:00 AM
Anda juga dapat menyimpan objek dalam variabel lalu mendapatkan propertinya menggunakan metode akses anggota (.), seperti yang ditunjukkan dalam contoh berikut:
$a = Get-ChildItem $PSHOME\powershell.exe
$a.CreationTime
Wednesday, January 24, 2024 1:18:29 AM
Anda juga dapat menggunakan Select-Object cmdlet dan Format-List untuk menampilkan nilai properti objek.
Select-Object dan Format-List masing-masing memiliki parameter Properti . Anda dapat menggunakan parameter Properti untuk menentukan satu atau beberapa properti dan nilainya. Atau, Anda dapat menggunakan karakter kartubebas (*) untuk mewakili semua properti.
Misalnya, perintah berikut menampilkan nilai semua properti powershell.exe file.
Get-ChildItem $PSHOME\powershell.exe | Format-List -Property *
PSPath : Microsoft.PowerShell.Core\FileSystem::C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
PSParentPath : Microsoft.PowerShell.Core\FileSystem::C:\Windows\System32\WindowsPowerShell\v1.0
PSChildName : powershell.exe
PSDrive : C
PSProvider : Microsoft.PowerShell.Core\FileSystem
PSIsContainer : False
Mode : -a----
VersionInfo : File: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
InternalName: POWERSHELL
OriginalFilename: PowerShell.EXE.MUI
FileVersion: 10.0.22621.1 (WinBuild.160101.0800)
FileDescription: Windows PowerShell
Product: Microsoft® Windows® Operating System
ProductVersion: 10.0.22621.1
Debug: False
Patched: False
PreRelease: False
PrivateBuild: False
SpecialBuild: False
Language: English (United States)
BaseName : powershell
Target : {C:\Windows\WinSxS\amd64_microsoft-windows-powershell-exe_31bf3856ad364e35_10.0.22621.3085_none_492
e8ee57da24e0e\powershell.exe}
LinkType : HardLink
Name : powershell.exe
Length : 450560
DirectoryName : C:\Windows\System32\WindowsPowerShell\v1.0
Directory : C:\Windows\System32\WindowsPowerShell\v1.0
IsReadOnly : False
Exists : True
FullName : C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
Extension : .exe
CreationTime : 1/24/2024 1:18:29 AM
CreationTimeUtc : 1/24/2024 7:18:29 AM
LastAccessTime : 1/3/2025 1:36:20 PM
LastAccessTimeUtc : 1/3/2025 7:36:20 PM
LastWriteTime : 1/24/2024 1:18:29 AM
LastWriteTimeUtc : 1/24/2024 7:18:29 AM
Attributes : Archive
Properti statis
Anda dapat menggunakan properti statis kelas .NET di PowerShell. Properti statis adalah properti kelas , tidak seperti properti standar, yang merupakan properti instans objek.
Untuk mendapatkan properti statis kelas, gunakan cmdlet. Misalnya, perintah berikut mendapatkan properti statis kelas System.DateTime .
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;}
Untuk mendapatkan nilai properti statis, gunakan sintaks berikut.
[<ClassName>]::<Property>
Misalnya, perintah berikut mendapatkan nilai properti statis UtcNow dari System.DateTime kelas .
[System.DateTime]::UtcNow
Enumerasi akses anggota
Dimulai di PowerShell 3.0, saat Anda menggunakan operator akses anggota (.) untuk mengakses properti yang tidak ada, PowerShell secara otomatis menghitung item dalam koleksi dan mengembalikan nilai properti untuk setiap item.
Perintah ini mengembalikan nilai properti DisplayName dari setiap layanan yang Get-Service ditampilkan.
(Get-Service).DisplayName
Application Experience
Application Layer Gateway Service
Windows All-User Install Agent
Application Identity
Application Information
...
Sebagian besar koleksi di PowerShell memiliki properti Count yang mengembalikan jumlah item dalam koleksi.
(Get-Service).Count
176
Jika properti ada pada objek individual dan pada koleksi, hanya properti koleksi yang dikembalikan.
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
Untuk informasi selengkapnya, lihat about_Member-Access_Enumeration.