PowerShell에서 객체에 속성을 추가하는 방법

  1. PowerShell에서 해시테이블을 사용하여 사용자 정의 객체 만들기
  2. PowerShell에서 Add-Member를 사용하여 객체에 속성 추가하기
  3. PowerShell에서 Properties.Add()를 사용하여 객체에 속성 추가하기
  4. PowerShell에서 Select-Object를 사용하여 객체에 속성 추가하기
  5. 결론
PowerShell에서 객체에 속성을 추가하는 방법

이 기사에서는 PowerShell에서 객체에 속성을 추가하는 다양한 방법에 대해 깊이 살펴보며, 이는 초보자부터 전문가까지의 PowerShell 사용자에게 필수적인 기술입니다. 우리는 해시 테이블을 사용하여 사용자 정의 객체를 생성하는 간단하면서도 강력한 접근 방식을 탐구하는 것으로 시작합니다.

그 후, 우리는 기존 객체에 동적으로 속성을 추가하기 위한 다목적 도구인 Add-Member cmdlet을 소개합니다. 더 깊이 파고들면서, 객체를 향상시키는 보다 미묘하고 통제된 방법을 제공하는 Properties.Add() 메서드의 복잡성을 밝혀냅니다.

마지막으로, 원래 객체의 상태를 유지하면서 임시 수정을 위해 해시 테이블과 결합된 Select-Object 사용에 대해 논의합니다.

이 포괄적인 가이드는 PowerShell 사용자가 특정 요구에 맞게 객체를 조정할 수 있도록 실제 통찰력과 예제를 제공합니다.

PowerShell에서 해시테이블을 사용하여 사용자 정의 객체 만들기

속성을 객체에 추가하기 전에 먼저 객체를 생성해야 합니다. 이를 수행하는 한 가지 방법은 해시 테이블을 사용하는 것입니다.

간단히 정의하면, 해시 테이블은 PowerShell에서 객체의 속성을 생성하고 할당하는 데 필요한 키 또는 값 쌍의 집합입니다. 이 예제에서는 단일 객체와 그 속성을 나타내는 해시 테이블을 생성하고 있습니다.

해시 테이블 $sampleHashtable이 정의되면, PSCustomObject 유형 가속기를 사용하여 PSCustomObject 클래스의 인스턴스를 생성할 수 있습니다.

코드 스니펫을 실행한 후, 프로그램에서 정의된 속성을 가진 PSCustomObject 유형의 $sampleHashtable 객체를 얻게 됩니다.

예제 1:

$sampleObject = [PSCustomObject]@{
    ID    = 1
    Shape = "Square"
    Color = "Blue"
}

보시다시피, $sampleHashtable을 생성한 후에는 Get-Service와 같은 기본 제공 PowerShell cmdlet에서 온 것처럼 각 속성을 참조할 수 있습니다.

PowerShell에서 Add-Member를 사용하여 객체에 속성 추가하기

PowerShell의 스크립팅 언어로서의 다재다능함은 부분적으로 객체를 동적으로 조작할 수 있는 능력 덕분입니다. 이 기능의 주요 예가 Add-Member cmdlet으로, 사용자가 런타임에 객체에 속성과 메서드를 추가할 수 있게 해줍니다.

Add-Member cmdlet은 PowerShell에서 객체의 인스턴스에 속성, 메서드 또는 이벤트와 같은 멤버를 동적으로 추가하는 데 필수적인 도구입니다. 이 기능은 특정 요구에 맞게 객체를 사용자 정의하거나 추가 정보를 사용하는 데이터 구조를 증대시키는 데 특히 유용합니다.

예제:

$sampleObject | Add-Member -MemberType NoteProperty -Name 'Size' -Value 'Large'
Write-Output $sampleObject

이 예제에서는 미리 정의된 속성을 가진 사용자 정의 PowerShell 객체인 $sampleObject를 생성하는 것부터 시작했습니다. 우리의 목표는 새로운 속성을 추가하여 이 객체를 향상시키는 것이었습니다.

Add-Member cmdlet을 사용하여 $sampleObjectSize라는 이름의 NoteProperty를 값 Large와 함께 추가했습니다. 이 과정은 PowerShell이 객체를 동적으로 확장하는 힘을 보여줍니다.

NoteProperty는 정적 값에 적합하기 때문에 선택되었습니다. 이는 우리의 요구 사항이었습니다.

마지막으로, 업데이트된 객체를 출력하기 위해 Write-Host를 사용하여 새로운 속성의 추가를 효과적으로 보여주었습니다.

출력:

PowerShell을 사용하여 객체에 속성 추가 - 출력 1

PowerShell에서 Properties.Add()를 사용하여 객체에 속성 추가하기

객체를 향상시키는 데 있어 덜 알려졌지만 강력한 방법 중 하나는 Properties.Add() 메서드를 사용하는 것입니다. 이 접근 방식은 사용자 정의 객체를 작업할 때나 보다 통제된 방식으로 객체를 수정해야 할 때 특히 유용합니다.

Properties.Add() 메서드는 기존 PowerShell 객체에 속성을 추가하는 방법입니다. 이 메서드는 기본 .NET 프레임워크의 일부이며, 보다 일반적으로 사용되는 Add-Member cmdlet과 비교하여 더 낮은 수준의 접근 방식을 제공합니다.

예제:

$sampleObject.psobject.Properties.Add([PSNoteProperty]::new('Size', 'Large'))
Write-Host ($sampleObject | Out-String)

이 예제에서는 미리 정의된 속성을 가진 객체 $sampleObject를 생성했습니다.

우리의 목표는 Size라는 이름의 새로운 속성을 추가하여 그것을 향상시키는 것이었습니다. 이를 위해 .psobject.Properties.Add([PSNoteProperty]::new()) 메서드를 사용했습니다.

이 메서드는 Add-Member보다 조금 더 미묘합니다. 새로운 PSNoteProperty 객체를 직접 생성한 다음 객체의 속성 컬렉션에 추가하는 것과 관련이 있습니다.

마지막으로, Write-Host를 사용하여 업데이트된 객체를 출력하여 새로운 속성의 추가를 확인했습니다.

출력:

PowerShell을 사용하여 객체에 속성 추가 - 출력 2

PowerShell에서 Select-Object를 사용하여 객체에 속성 추가하기

또 다른 기술은 해시 테이블(@{})과 결합된 Select-Object를 사용하여 객체에 속성을 추가하는 것입니다. 이 방법은 원래 객체를 수정하지 않고 사용자 정의 뷰를 생성하거나 객체를 확장하는 데 특히 유용합니다.

Select-Object *, @{} 메서드는 기존 객체에 추가 속성으로 확장하여 새로운 객체를 생성하는 데 사용됩니다. 이 접근 방식은 일반적으로 객체의 임시 수정을 위해 사용되며, 예를 들어 표시 목적으로나 데이터를 내보내기 위해 준비할 때 유용합니다.

이는 비파괴적이어서 원래 객체는 변경되지 않습니다.

예제:

$extendedObject = $sampleObject | Select-Object *, @{
    Name       = 'Size'
    Expression = { 'Large' }
}
Write-Host ($extendedObject | Out-String)

이 예제에서는 $sampleObject와 함께 시작하여 Size라는 새로운 속성으로 그것을 증대시키는 것을 목표로 했습니다. 우리의 접근 방식은 원래 객체를 변경하는 것을 포함하지 않아 그 무결성을 유지했습니다.

우리는 $sampleObjectSelect-Object에 파이핑하여 PowerShell에 모든 기존 속성(*)을 가져오고 해시 테이블로 정의된 새로운 속성을 추가하도록 지시함으로써 이를 달성했습니다.

우리의 해시 테이블에서는 새로운 속성의 이름인 Size를 명확하게 지정하고, 표현 블록 내에 그 값을 Large로 할당했습니다. 이 접근 방식은 새로운 객체 $extendedObject를 구축하여 추가 속성으로 풍부하게 만드는 방식으로 특히 우아합니다.

출력:

파워셸을 사용하여 객체에 속성 추가 - 출력 3

결론

이 기사에서는 PowerShell에서 객체에 속성을 추가하는 다양한 방법론을 살펴보았으며, 각 방법은 고유한 장점과 응용 프로그램을 가지고 있습니다. 해시 테이블을 사용하여 사용자 정의 객체를 생성하는 것부터 시작하여 PowerShell에서 객체 속성을 이해하기 위한 기초를 다졌습니다.

그 후, 객체를 동적으로 향상시키기 위한 PowerShell 스크립팅의 필수 요소인 Add-Member cmdlet을 탐구했습니다. Properties.Add() 메서드의 탐구는 속성 조작에 대한 더 깊이 있는 접근 방식을 열어주었습니다.

마지막으로, 해시 테이블과 결합된 Select-Object의 사용은 객체를 확장하는 비파괴적이고 우아한 방법을 보여주었습니다. 간단한 것부터 더 복잡한 것까지 각 방법은 독특한 목적을 가지고 있으며, PowerShell 사용자에게 스크립트에서 객체를 사용자 정의하고 관리할 수 있는 풍부한 도구 키트를 제공합니다.

튜토리얼이 마음에 드시나요? DelftStack을 구독하세요 YouTube에서 저희가 더 많은 고품질 비디오 가이드를 제작할 수 있도록 지원해주세요. 구독하다
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

관련 문장 - PowerShell Object