about_Properties
Korte beschrijving
Hierin wordt beschreven hoe u objecteigenschappen gebruikt in PowerShell.
Lange beschrijving
PowerShell maakt gebruik van gestructureerde verzamelingen informatie die objecten worden genoemd om de items in gegevensarchieven of de status van de computer weer te geven. Normaal gesproken werkt u met objecten die deel uitmaken van microsoft .NET Framework, maar u kunt ook aangepaste objecten maken in PowerShell.
De koppeling tussen een item en het object is zeer dichtbij. Wanneer u een object wijzigt, wijzigt u meestal het item dat het voorstelt. Wanneer u bijvoorbeeld een bestand in PowerShell krijgt, krijgt u het werkelijke bestand niet. In plaats daarvan krijgt u een FileInfo-object dat het bestand vertegenwoordigt. Wanneer u het FileInfo-object wijzigt, wordt het bestand ook gewijzigd.
De meeste objecten hebben eigenschappen. Eigenschappen zijn de gegevens die zijn gekoppeld aan een object. Verschillende typen objecten hebben verschillende eigenschappen. Een FileInfo-object, dat een bestand vertegenwoordigt, heeft bijvoorbeeld $False
Een DirectoryInfo-object , dat een bestandssysteemmap vertegenwoordigt, heeft een bovenliggende eigenschap die het pad naar de bovenliggende map bevat.
Objecteigenschappen
Gebruik de Get-Member
cmdlet om de eigenschappen van een object op te halen. Als u bijvoorbeeld de eigenschappen van een FileInfo-object wilt ophalen, gebruikt u de Get-ChildItem
cmdlet om het FileInfo-object op te halen dat een bestand vertegenwoordigt. Gebruik vervolgens een pijplijnoperator (|
) om het FileInfo-object naar te Get-Member
verzenden. Met de volgende opdracht wordt het pwsh.exe
bestand opgeslagen en verzonden naar Get-Member
. De $PSHOME
automatische variabele bevat het pad van de Installatiemap van PowerShell.
Get-ChildItem $PSHOME\pwsh.exe | Get-Member
De uitvoer van de opdracht bevat de leden van het FileInfo-object . Leden bevatten zowel eigenschappen als methoden. Wanneer u in PowerShell werkt, hebt u toegang tot alle leden van de objecten.
Als u alleen de eigenschappen van een object en niet de methoden wilt ophalen, gebruikt u de parameter MemberType van de Get-Member
cmdlet met een waarde van Property
, zoals wordt weergegeven in het volgende voorbeeld.
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;}
Nadat u de eigenschappen hebt gevonden, kunt u deze gebruiken in uw PowerShell-opdrachten.
Eigenschapswaarden
Hoewel elk object van een specifiek type dezelfde eigenschappen heeft, beschrijven de waarden van deze eigenschappen het specifieke object. Elk FileInfo-object heeft bijvoorbeeld een eigenschap CreationTime, maar de waarde van die eigenschap verschilt voor elk bestand.
De meest voorkomende manier om de waarden van de eigenschappen van een object op te halen, is door de operator voor lidtoegang (.
) te gebruiken. Typ een verwijzing naar het object, zoals een variabele die het object bevat of een opdracht waarmee het object wordt opgehaald. Typ vervolgens de operator (.
) gevolgd door de naam van de eigenschap.
Met de volgende opdracht wordt bijvoorbeeld de waarde van de eigenschap CreationTime van het pwsh.exe
bestand weergegeven. De Get-ChildItem
opdracht retourneert een FileInfo-object dat de pwsh.exe file
. De opdracht staat tussen haakjes om ervoor te zorgen dat deze wordt uitgevoerd voordat er eigenschappen worden geopend.
(Get-ChildItem $PSHOME\pwsh.exe).CreationTime
Tuesday, June 14, 2022 5:17:14 PM
U kunt een object ook opslaan in een variabele en vervolgens de eigenschappen ophalen met behulp van de methode voor lidtoegang (.
), zoals wordt weergegeven in het volgende voorbeeld:
$a = Get-ChildItem $PSHOME\pwsh.exe
$a.CreationTime
Wednesday, November 13, 2024 10:12:26 PM
U kunt de en Select-Object
cmdlets ook gebruiken Format-List
om de eigenschapswaarden van een object weer te geven.
Select-Object
en Format-List
elk een eigenschapsparameter hebben. U kunt de parameter Eigenschap gebruiken om een of meer eigenschappen en de bijbehorende waarden op te geven. U kunt ook het jokerteken (*
) gebruiken om alle eigenschappen weer te geven.
Met de volgende opdracht worden bijvoorbeeld de waarden van alle eigenschappen van het bestand pwsh.exe weergegeven.
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
Statische eigenschappen
U kunt de statische eigenschappen van .NET-klassen gebruiken in PowerShell. Statische eigenschappen zijn eigenschappen van klasse, in tegenstelling tot standaardeigenschappen, die eigenschappen van een object zijn.
Gebruik de statische parameter van de Get-Member
cmdlet om de statische eigenschappen van een klasse op te halen. Met de volgende opdracht worden bijvoorbeeld de statische eigenschappen van de System.DateTime
klasse ophaalt.
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;}
Gebruik de volgende syntaxis om de waarde van een statische eigenschap op te halen.
[<ClassName>]::<Property>
Met de volgende opdracht wordt bijvoorbeeld de waarde opgehaald van de statische eigenschap UtcNow van de System.DateTime
klasse.
[System.DateTime]::UtcNow
Opsomming voor lidtoegang
Als u vanaf PowerShell 3.0 de operator voor lidtoegang (.
) gebruikt om toegang te krijgen tot een eigenschap die niet bestaat, wordt in PowerShell automatisch de items in de verzameling opgesomd en wordt de waarde van de eigenschap voor elk item geretourneerd.
Met deze opdracht wordt de waarde geretourneerd van de eigenschap DisplayName van elke service die Get-Service
wordt geretourneerd.
(Get-Service).DisplayName
Application Experience
Application Layer Gateway Service
Windows All-User Install Agent
Application Identity
Application Information
...
De meeste verzamelingen in PowerShell hebben een eigenschap Count die het aantal items in de verzameling retourneert.
(Get-Service).Count
176
Als er een eigenschap bestaat op de afzonderlijke objecten en in de verzameling, wordt alleen de eigenschap van de verzameling geretourneerd.
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
Zie about_Member-Access_Enumeration voor meer informatie.