about_Properties
Krátký popis
Popisuje, jak používat vlastnosti objektu v PowerShellu.
Dlouhý popis
PowerShell používá strukturované kolekce informací označovaných jako objekty k reprezentaci položek v úložištích dat nebo stavu počítače. Obvykle pracujete s objekty, které jsou součástí rozhraní Microsoft .NET Framework, ale můžete také vytvářet vlastní objekty v PowerShellu.
Přidružení mezi položkou a jeho objektem je velmi blízko. Při změně objektu obvykle změníte položku, kterou představuje. Když například získáte soubor v PowerShellu, skutečný soubor se nezobrazí. Místo toho získáte FileInfo objekt, který představuje soubor. Když změníte FileInfo objekt, soubor se také změní.
Většina objektů má vlastnosti. Vlastnosti jsou data přidružená k objektu. Různé typy objektů mají různé vlastnosti. Například FileInfo objekt, který představuje soubor, má IsReadOnly vlastnost, která obsahuje $True
, pokud soubor má atribut jen pro čtení a $False
pokud ne. Objekt DirectoryInfo, který představuje adresář systému souborů, má nadřazenou vlastnost, která obsahuje cestu k nadřazené adresáři.
Vlastnosti objektu
K získání vlastností objektu použijte rutinu Get-Member
. Chcete-li například získat vlastnosti FileInfo objektu, použijte rutinu Get-ChildItem
k získání FileInfo objektu, který představuje soubor. Pak pomocí operátoru kanálu (|
) odeslat FileInfo objektu do Get-Member
. Následující příkaz načte powershell.exe
soubor a odešle ho do Get-Member
souboru . Automatická $PSHOME
proměnná obsahuje cestu instalačního adresáře PowerShellu.
Get-ChildItem $PSHOME\powershell.exe | Get-Member
Výstup příkazu vypíše členy FileInfo objektu. Členy zahrnují vlastnosti i metody. Při práci v PowerShellu máte přístup ke všem členům objektů.
Chcete-li získat pouze vlastnosti objektu a nikoli metody, použijte parametr MemberTypeGet-Member
rutiny s hodnotou Property
, jak je znázorněno v následujícím příkladu.
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;}
Po nalezení vlastností je můžete použít v příkazech PowerShellu.
Hodnoty vlastností
I když každý objekt konkrétního typu má stejné vlastnosti, hodnoty těchto vlastností popisují konkrétní objekt. Například každý FileInfo objekt má CreationTime vlastnost, ale hodnota této vlastnosti se liší pro každý soubor.
Nejběžnější způsob, jak získat hodnoty vlastností objektu, je použít přístupový operátor člena (.
). Zadejte odkaz na objekt, například proměnnou, která objekt obsahuje, nebo příkaz, který objekt získá. Potom zadejte operátor (.
) následovaný názvem vlastnosti.
Například následující příkaz zobrazí hodnotu Vlastnosti CreationTimepowershell.exe
souboru. Příkaz Get-ChildItem
vrátí FileInfopowershell.exe file
. Příkaz je uzavřen v závorkách, aby se zajistilo, že se spustí před přístupem k jakýmkoli vlastnostem.
(Get-ChildItem $PSHOME\powershell.exe).CreationTime
Saturday, June 5, 2021 7:07:00 AM
Objekt můžete také uložit do proměnné a pak získat jeho vlastnosti pomocí metody přístupu člena (.
), jak je znázorněno v následujícím příkladu:
$a = Get-ChildItem $PSHOME\powershell.exe
$a.CreationTime
Wednesday, January 24, 2024 1:18:29 AM
K zobrazení hodnot vlastností objektu můžete použít Select-Object
Format-List
také rutiny.
Select-Object
a Format-List
každý z nich má parametr Vlastnosti . Pomocí parametru Property můžete zadat jednu nebo více vlastností a jejich hodnoty. Nebo můžete použít zástupný znak (*
) k reprezentaci všech vlastností.
Například následující příkaz zobrazí hodnoty všech vlastností powershell.exe
souboru.
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
Statické vlastnosti
V PowerShellu můžete použít statické vlastnosti tříd .NET. Statické vlastnosti jsou vlastnosti třídy, na rozdíl od standardních vlastností, což jsou vlastnosti instance objektu.
Pokud chcete získat statické vlastnosti třídy, použijte statický parametr rutiny Get-Member
. Například následující příkaz získá statické vlastnosti System.DateTime
třídy.
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;}
Pokud chcete získat hodnotu statické vlastnosti, použijte následující syntaxi.
[<ClassName>]::<Property>
Například následující příkaz získá hodnotu System.DateTime
třídy.
[System.DateTime]::UtcNow
Výčet přístupu členů
Počínaje PowerShellem verze 3.0, když použijete operátor přístupu člena (.
) pro přístup k vlastnosti, která neexistuje, PowerShell automaticky prozkoumá položky v kolekci a vrátí hodnoty vlastností pro každou položku.
Tento příkaz vrátí hodnotu Vlastnosti DisplayName každé služby, která Get-Service
vrací.
(Get-Service).DisplayName
Application Experience
Application Layer Gateway Service
Windows All-User Install Agent
Application Identity
Application Information
...
Většina kolekcí v PowerShellu má vlastnost Count, která vrací počet položek v kolekci.
(Get-Service).Count
176
Pokud vlastnost existuje u jednotlivých objektů a v kolekci, vrátí se pouze vlastnost kolekce.
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
Další informace najdete v tématu about_Member-Access_Enumeration.