about_Properties
간단한 설명
PowerShell에서 개체 속성을 사용하는 방법을 설명합니다.
자세한 설명
PowerShell은 개체라는 구조적 정보 컬렉션을 사용하여 데이터 저장소의 항목 또는 컴퓨터 상태를 나타냅니다. 일반적으로 Microsoft .NET Framework의 일부인 개체를 사용하지만 PowerShell에서 사용자 지정 개체를 만들 수도 있습니다.
항목과 해당 개체 간의 연결이 매우 가깝습니다. 개체를 변경할 때는 일반적으로 개체가 나타내는 항목을 변경합니다. 예를 들어 PowerShell에서 파일을 가져올 때 실제 파일은 가져올 수 없습니다. 대신 파일을 나타내는 FileInfo 개체를 가져옵니다. FileInfo 개체를 변경하면 파일도 변경됩니다.
대부분의 개체에는 속성이 있습니다. 속성은 개체와 연결된 데이터입니다. 개체 유형에 따라 속성이 다릅니다. 예를 들어 파일을 나타내는 FileInfo 개체에는 $False
속성이 있습니다.
파일 시스템 디렉터리를 나타내는 DirectoryInfo 개체에는 부모 디렉터리에 대한 경로가 포함된 Parent 속성이 있습니다.
개체 속성
개체의 속성을 얻으려면 cmdlet을 Get-Member
사용합니다. 예를 들어 FileInfo 개체의 속성을 얻으려면 cmdlet을 사용하여 Get-ChildItem
파일을 나타내는 FileInfo 개체를 가져옵니다. 그런 다음 파이프라인 연산자(|
)를 사용하여 FileInfoGet-Member
.에 보냅니다. 다음 명령은 파일을 가져와 powershell.exe
서 으로 보냅니다 Get-Member
. 자동 변수에는 $PSHOME
PowerShell 설치 디렉터리의 경로가 포함됩니다.
Get-ChildItem $PSHOME\powershell.exe | Get-Member
명령의 출력에는 FileInfo 개체의 멤버가 나열됩니다. 멤버에는 속성과 메서드가 모두 포함됩니다. PowerShell에서 작업하는 경우 개체의 모든 멤버에 액세스할 수 있습니다.
메서드가 아닌 개체의 속성만 얻으려면 다음 예제와 같이 값이 있는 cmdlet의 Get-Member
MemberTypeProperty
.
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;}
속성을 찾은 후 PowerShell 명령에서 사용할 수 있습니다.
속성 값
특정 형식의 모든 개체에는 동일한 속성이 있지만 해당 속성의 값은 특정 개체를 설명합니다. 예를 들어 모든 FileInfo 개체에는 CreationTime 속성이 있지만 해당 속성의 값은 각 파일에 대해 다릅니다.
개체의 속성 값을 가져오는 가장 일반적인 방법은 멤버 액세스 연산자(.
)를 사용하는 것입니다. 개체를 포함하는 변수 또는 개체를 가져오는 명령과 같은 개체에 대한 참조를 입력합니다. 그런 다음, 연산자(.
)와 속성 이름을 입력합니다.
예를 들어 다음 명령은 파일의 CreationTime 속성 값을 표시합니다 powershell.exe
. 이 Get-ChildItem
명령은 .를 나타내는 FileInfo 개체를 powershell.exe file
반환합니다. 이 명령은 속성에 액세스하기 전에 실행되도록 괄호로 묶습니다.
(Get-ChildItem $PSHOME\powershell.exe).CreationTime
Saturday, June 5, 2021 7:07:00 AM
다음 예제와 같이 변수에 개체를 저장한 다음 멤버 액세스(.
) 메서드를 사용하여 해당 속성을 가져올 수도 있습니다.
$a = Get-ChildItem $PSHOME\powershell.exe
$a.CreationTime
Wednesday, January 24, 2024 1:18:29 AM
및 Select-Object
cmdlet을 Format-List
사용하여 개체의 속성 값을 표시할 수도 있습니다.
Select-Object
각각 Format-List
속성 매개 변수가 있습니다. Property 매개 변수를 사용하여 하나 이상의 속성과 해당 값을 지정할 수 있습니다. 또는 와일드카드 문자(*
)를 사용하여 모든 속성을 나타낼 수 있습니다.
예를 들어 다음 명령은 파일의 모든 속성 값을 표시합니다 powershell.exe
.
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
정적 속성
PowerShell에서 .NET 클래스의 정적 속성을 사용할 수 있습니다. 정적 속성은 개체 인스턴스의 속성인 표준 속성과 달리 클래스의 속성입니다.
클래스의 정적 속성을 얻으려면 cmdlet의 Static 매개 변수를 Get-Member
사용합니다. 예를 들어 다음 명령은 클래스의 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;}
정적 속성의 값을 얻으려면 다음 구문을 사용합니다.
[<ClassName>]::<Property>
예를 들어 다음 명령은 클래스의 UtcNow 정적 속성 System.DateTime
값을 가져옵니다.
[System.DateTime]::UtcNow
멤버 액세스 열거형
PowerShell 3.0부터 멤버 액세스 연산자(.
)를 사용하여 존재하지 않는 속성에 액세스하는 경우 PowerShell은 컬렉션의 항목을 자동으로 열거하고 각 항목에 대한 속성 값을 반환합니다.
이 명령은 반환되는 모든 서비스의 DisplayNameGet-Service
반환합니다.
(Get-Service).DisplayName
Application Experience
Application Layer Gateway Service
Windows All-User Install Agent
Application Identity
Application Information
...
PowerShell의 대부분의 컬렉션에는 컬렉션의 숫자 항목을 반환하는 Count 속성이 있습니다.
(Get-Service).Count
176
개별 개체 및 컬렉션에 속성이 있는 경우 컬렉션의 속성만 반환됩니다.
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
자세한 내용은 about_Member-Access_Enumeration 참조하세요.
참고 항목
PowerShell