Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Rövid leírás
Az objektumtulajdonságok PowerShellben való használatát ismerteti.
Hosszú leírás
A PowerShell strukturált információgyűjteményeket, úgynevezett objektumokat használ az adattárak elemeinek vagy a számítógép állapotának megjelenítéséhez. Általában a Microsoft .NET-keretrendszer részét képező objektumokkal dolgozik, de egyéni objektumokat is létrehozhat a PowerShellben.
Az elem és az objektum közötti társítás nagyon szoros. Amikor módosít egy objektumot, általában az általa képviselt elemet módosítja. Ha például a PowerShellben kap egy fájlt, nem kapja meg a tényleges fájlt. Ehelyett egy FileInfo objektumot kap, amely a fájlt jelöli. A FileInfo objektum módosításakor a fájl is megváltozik.
A legtöbb objektum rendelkezik tulajdonságokkal. A tulajdonságok az objektumokhoz társított adatok. A különböző típusú objektumok különböző tulajdonságokkal rendelkeznek. Egy fájlokat képviselő FileInfo-objektum például egy IsReadOnly tulajdonsággal rendelkezik, amely tartalmazza$true, ha a fájl írásvédett attribútummal rendelkezik, és $false ha nem. A fájlrendszerkönyvtárat jelképező DirectoryInfo objektum szülőtulajdonságával rendelkezik, amely a szülőkönyvtár elérési útját tartalmazza.
Objektumtulajdonságok
Egy objektum tulajdonságainak lekéréséhez használja a Get-Member parancsmagot. Például egy FileInfo-objektum tulajdonságainak lekéréséhez használja a Get-ChildItem parancsmagot a fájlokat képviselő FileInfo objektum lekéréséhez. Ezután használjon egy folyamatkezelőt () a | objektum elküldéséhez.Get-Member A következő parancs lekéri a pwsh.exe fájlt, és elküldi a fájlnak Get-Member. Az $PSHOME automatikus változó tartalmazza a PowerShell telepítési könyvtárának elérési útját.
Get-ChildItem $PSHOME\pwsh.exe | Get-Member
A parancs kimenete felsorolja a FileInfo objektum tagjait. A tagok tulajdonságokat és metódusokat is tartalmaznak. Amikor a PowerShellben dolgozik, hozzáférhet az objektumok összes tagához.
Ha csak egy objektum tulajdonságait szeretné lekérni, és nem a metódusokat, használja a paraméterét Get-Memberaz alábbi példában látható módon.
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;}
Miután megtalálta a tulajdonságokat, használhatja őket a PowerShell-parancsokban.
Tulajdonságértékek
Bár egy adott típusú objektum minden objektuma ugyanazokkal a tulajdonságokkal rendelkezik, ezeknek a tulajdonságoknak az értékei az adott objektumot írják le. Például minden FileInfo-objektum rendelkezik CreationTime tulajdonsággal, de ennek a tulajdonságnak az értéke minden fájlban eltér.
Az objektumok tulajdonságainak lekérésének leggyakoribb módja a tagelérési operátor (.). Írja be az objektumra mutató hivatkozást, például az objektumot tartalmazó változót vagy az objektumot lekérő parancsot. Ezután írja be az operátort (.) és a tulajdonság nevét.
Az alábbi parancs például a fájl CreationTimejeleníti meg. A Get-ChildItem parancs egy FileInfo objektumot ad vissza, amely a pwsh.exe file. A parancs zárójelek közé van állítva, hogy minden tulajdonság elérése előtt végrehajtsa a parancsot.
(Get-ChildItem $PSHOME\pwsh.exe).CreationTime
Tuesday, June 14, 2022 5:17:14 PM
Egy objektumot egy változóba is menthet, majd lekérheti annak tulajdonságait a taghozzáférési (.) metódussal, ahogyan az alábbi példában látható:
$a = Get-ChildItem $PSHOME\pwsh.exe
$a.CreationTime
Wednesday, November 13, 2024 10:12:26 PM
Az objektumok tulajdonságértékeit a parancsmagok és Select-Object a Format-List parancsmagok használatával is megjelenítheti.
Select-Objectés Format-List mindegyik tulajdonságparaméterrel rendelkezik. A Tulajdonság paraméter használatával megadhat egy vagy több tulajdonságot és azok értékeit. Vagy használhatja a helyettesítő karaktert (*) az összes tulajdonság megjelenítéséhez.
Az alábbi parancs például a pwsh.exe fájl összes tulajdonságának értékét jeleníti meg.
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
Statikus tulajdonságok
A .NET-osztályok statikus tulajdonságait a PowerShellben használhatja. A statikus tulajdonságok osztálytulajdonságok, ellentétben a standard tulajdonságokkal, amelyek egy objektum tulajdonságai.
Egy osztály statikus tulajdonságainak lekéréséhez használja a paraméterét. Az alábbi parancs például lekéri az osztály statikus tulajdonságait 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;}
Statikus tulajdonság értékének lekéréséhez használja az alábbi szintaxist.
[<ClassName>]::<Property>
Az alábbi parancs például az osztály UtcNow statikus tulajdonságának System.DateTime értékét kapja meg.
[System.DateTime]::UtcNow
Taghozzáférés számbavétele
A PowerShell 3.0-tól kezdve, amikor a taghozzáférési operátort (.) használja egy nem létező tulajdonság eléréséhez, a PowerShell automatikusan számba veszi a gyűjtemény elemeit, és visszaadja az egyes elemek tulajdonságának értékét.
Ez a parancs minden visszaadott szolgáltatás DisplayNameGet-Serviceadja vissza.
(Get-Service).DisplayName
Application Experience
Application Layer Gateway Service
Windows All-User Install Agent
Application Identity
Application Information
...
A legtöbb PowerShell-gyűjtemény rendelkezik egy Darabszám tulajdonsággal, amely visszaadja a gyűjtemény elemeinek számát.
(Get-Service).Count
176
Ha egy tulajdonság az egyes objektumokon és a gyűjteményen található, a rendszer csak a gyűjtemény tulajdonságát adja vissza.
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
További információ: about_Member-Access_Enumeration.