Update-TypeData
세션에서 확장 형식 데이터를 업데이트.
Syntax
Update-TypeData
[[-AppendPath] <String[]>]
[-PrependPath <String[]>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Update-TypeData
[-MemberType <PSMemberTypes>]
[-MemberName <String>]
[-Value <Object>]
[-SecondValue <Object>]
[-TypeConverter <Type>]
[-TypeAdapter <Type>]
[-SerializationMethod <String>]
[-TargetTypeForDeserialization <Type>]
[-SerializationDepth <Int32>]
[-DefaultDisplayProperty <String>]
[-InheritPropertySerializationSet <Nullable`1>]
[-StringSerializationSource <String>]
[-DefaultDisplayPropertySet <String[]>]
[-DefaultKeyPropertySet <String[]>]
[-PropertySerializationSet <String[]>]
-TypeName <String>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Update-TypeData
[-Force]
[-TypeData] <TypeData[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
cmdlet은 Update-TypeData
파일을 메모리로 다시 로드하고 새 확장 형식 데이터를 추가하여 세션의 Types.ps1xml
확장 형식 데이터를 업데이트합니다.
기본적으로 PowerShell은 필요에 따라 확장 형식 데이터를 로드합니다. 매개 변수 Update-TypeData
가 없으면 추가한 모든 형식 파일을 포함하여 세션에 로드된 모든 Types.ps1xml
파일을 다시 로드합니다. 매개 변수 Update-TypeData
를 사용하여 새 형식 파일을 추가하고 확장 형식 데이터를 추가하고 바꿀 수 있습니다.
cmdlet을 Update-TypeData
사용하여 모든 형식 데이터를 미리 로드할 수 있습니다. 이 기능은 형식을 개발하고 테스트 목적으로 새 형식을 로드하려는 경우에 특히 유용합니다.
Windows PowerShell 3.0부터 파일을 사용하지 Types.ps1xml
않고 세션의 확장 형식 데이터를 추가하고 바꾸는 데 사용할 Update-TypeData
수 있습니다. 파일 없이 동적으로 추가된 유형 데이터는 현재 세션에만 추가됩니다. 모든 세션에 형식 데이터를 추가하려면 PowerShell 프로필에 명령을 추가 Update-TypeData
합니다. 자세한 내용은 about_Profiles를 참조하세요.
또한 Windows PowerShell 3.0부터 cmdlet을 사용하여 현재 세션에서 확장 형식을 가져와서 cmdlet을 사용하여 Get-TypeData
현재 세션에서 Remove-TypeData
확장 형식을 삭제할 수 있습니다.
속성에서 발생하거나 명령에 속성을 추가하여 발생하는 예외는 Update-TypeData
오류를 보고하지 않습니다. 서식을 지정하고 출력하는 동안 많은 일반 형식에서 발생하는 예외를 표시하지 않습니다. .NET 속성을 가져오는 경우 다음 예제와 같이 메서드 구문을 대신 사용하여 예외 제거를 해결할 수 있습니다.
"hello".get_Length()
메서드 구문은 .NET 속성에서만 사용할 수 있습니다. cmdlet을 실행하여 추가된 속성은 Update-TypeData
메서드 구문을 사용할 수 없습니다.
PowerShell의 Types.ps1xml
파일에 대한 자세한 내용은 about_Types.ps1xml을 참조 하세요.
예제
예제 1: 확장 형식 업데이트
Update-TypeData
이 명령은 세션에서 이미 사용된 파일에서 Types.ps1xml
확장 형식 구성을 업데이트합니다.
예제 2: 형식을 여러 번 업데이트
이 예제에서는 동일한 세션에서 형식 파일의 형식을 여러 번 업데이트하는 방법을 보여줍니다.
첫 번째 명령은 파일에서 확장 형식 구성을 Types.ps1xml
업데이트하고 먼저 파일과 TypesB.types.ps1xml
파일을 처리 TypesA.types.ps1xml
합니다.
두 번째 명령은 파일에서 형식을 TypesA.types.ps1xml
추가하거나 변경한 경우와 같이 다시 업데이트하는 방법을 보여줍니다. 현재 세션의 형식 파일 목록에 이미 있으므로 TypesA.types.ps1xml
파일에 대해 TypesA.types.ps1xml
이전 명령을 반복하거나 매개 변수 없이 명령을 실행할 Update-TypeData
수 있습니다.
Update-TypeData -PrependPath TypesA.types.ps1xml, TypesB.types.ps1xml
Update-TypeData -PrependPath TypesA.types.ps1xml
예제 3: DateTime 개체에 스크립트 속성 추가
이 예제에서는 cmdlet에서 반환된 것과 같이 현재 세션의 System.DateTime 개체에 Quarter 스크립트 속성을 추가하는 데 사용합니다 Update-TypeData
Get-Date
.
Update-TypeData -TypeName "System.DateTime" -MemberType ScriptProperty -MemberName "Quarter" -Value {
if ($this.Month -in @(1,2,3)) {"Q1"}
elseif ($this.Month -in @(4,5,6)) {"Q2"}
elseif ($this.Month -in @(7,8,9)) {"Q3"}
else {"Q4"}
}
(Get-Date).Quarter
Q1
이 Update-TypeData
명령은 TypeName 매개 변수를 사용하여 System.DateTime 형식, MemberName 매개 변수를 사용하여 새 속성의 이름을 지정하고, MemberType 속성을 사용하여 ScriptProperty 형식을 지정하고, Value 매개 변수를 사용하여 연간 분기를 결정하는 스크립트를 지정합니다.
Value 속성의 값은 현재 연간 분기를 계산하는 스크립트입니다. 스크립트 블록은 자동 변수를 사용하여 $this
개체의 현재 인스턴스를 나타내고 In 연산자는 월 값이 각 정수 배열에 표시되는지 여부를 결정합니다. 연산자에 -in
대한 자세한 내용은 about_Comparison_Operators 참조하세요.
두 번째 명령은 현재 날짜의 새 Quarter 속성을 가져옵니다.
예제 4: 기본적으로 목록에 표시되는 형식 업데이트
이 예제에서는 기본적으로 목록에 표시되는 형식의 속성, 즉 속성이 지정되지 않은 경우의 속성을 설정하는 방법을 보여 줍니다. 형식 데이터는 파일에 지정되지 Types.ps1xml
않으므로 현재 세션에서만 유효합니다.
Update-TypeData -TypeName "System.DateTime" -DefaultDisplayPropertySet "DateTime, DayOfYear, Quarter"
Get-Date | Format-List
Thursday, March 15, 2012 12:00:00 AM
DayOfYear : 75
Quarter : Q1
첫 번째 명령은 cmdlet을 Update-TypeData
사용하여 System.DateTime 형식의 기본 목록 속성을 설정합니다. 이 명령은 TypeName 매개 변수를 사용하여 형식을 지정하고 DefaultDisplayPropertySet 매개 변수를 사용하여 목록의 기본 속성을 지정합니다. 선택한 속성에는 이전 예제에서 추가된 새 Quarter 스크립트 속성이 포함됩니다.
두 번째 명령은 cmdlet을 Get-Date
사용하여 현재 날짜를 나타내는 System.DateTime 개체를 가져옵니다. 이 명령은 파이프라인 연산자(|
)를 사용하여 DateTime 개체를 cmdlet으로 Format-List
보냅니다. Format-List
이 명령은 목록에 표시할 속성을 지정하지 않으므로 PowerShell은 명령에 의해 설정된 기본값을 Update-TypeData
사용합니다.
예제 5: 파이프된 개체의 형식 데이터 업데이트
Get-Module | Update-TypeData -MemberType ScriptProperty -MemberName "SupportsUpdatableHelp" -Value {
if ($this.HelpInfoUri) {$True} else {$False}
}
Get-Module -ListAvailable | Format-Table Name, SupportsUpdatableHelp
Name SupportsUpdatableHelp
---- ---------------------
Microsoft.PowerShell.Diagnostics True
Microsoft.PowerShell.Host True
Microsoft.PowerShell.Management True
Microsoft.PowerShell.Security True
Microsoft.PowerShell.Utility True
Microsoft.WSMan.Management True
PSDiagnostics False
PSScheduledJob True
PSWorkflow True
ServerManager True
TroubleshootingPack False
이 예제에서는 개체를 파이프할 때 개체 형식에 대한 확장 형식 데이터를 추가하는 방법을 Update-TypeData
Update-TypeData
보여 줍니다.
이 기술은 cmdlet 또는 메서드를 Get-Member
사용하여 개체 형식을 Get-Type
가져오는 것보다 빠릅니다. 그러나 개체 컬렉션을 파이프하는 Update-TypeData
경우 첫 번째 개체 형식의 형식 데이터를 업데이트한 다음 멤버가 형식에 이미 정의되어 있으므로 컬렉션의 다른 모든 개체에 대한 오류를 반환합니다.
첫 번째 명령은 cmdlet을 Get-Module
사용하여 PSScheduledJob 모듈을 가져옵니다. 이 명령은 명령에서 ListAvailable 매개 변수를 사용할 때 반환되는 ModuleInfoGrouping 형식과 같이 System.Management.Automation.PSModuleInfo 형식의 형식 데이터와 파생된 형식 Get-Module
을 업데이트하는 cmdlet에 모듈 개체 Update-TypeData
를 파이프합니다.
이 Update-TypeData
명령은 가져온 모든 모듈에 SupportsUpdatableHelp 스크립트 속성을 추가합니다. Value 매개 변수의 값은 모듈의 HelpInfoUri 속성이 채워져 있고 그렇지 않으면 반환 $True
하는 $False
스크립트입니다.
두 번째 명령은 목록에 있는 모든 모듈의 Name 및 SupportsUpdatableHelp 속성을 표시하는 cmdlet으로 모듈 개체 Get-Module
Format-Table
를 파이프합니다.
매개 변수
-AppendPath
선택적 .ps1xml
파일의 경로를 지정합니다. 지정한 파일은 기본 제공 파일이 로드된 후 나열된 순서대로 로드됩니다. AppendPath 값을 .에 파이프할 Update-TypeData
수도 있습니다.
Type: | String[] |
Aliases: | PSPath, Path |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Confirm
cmdlet을 실행하기 전에 확인 메시지가 표시됩니다.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DefaultDisplayProperty
다른 속성이 지정되지 않은 경우 cmdlet에서 표시하는 형식의 Format-Wide
속성을 지정합니다.
형식의 표준 또는 확장 속성 이름을 입력합니다. 이 매개 변수의 값은 동일한 명령에 추가되는 형식의 이름이 될 수 있습니다.
이 값은 파일의 형식 Format.ps1xml
에 대해 정의된 넓은 보기가 없는 경우에만 적용됩니다.
이 매개 변수는 Windows PowerShell 3.0에서 도입되었습니다.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DefaultDisplayPropertySet
형식의 속성을 하나 이상 지정합니다. 이러한 속성은 다른 속성이 Format-List
지정되지 않은 경우 , Format-Table
및 Format-Custom
cmdlet에 의해 표시됩니다.
형식의 표준 또는 확장 속성 이름을 입력합니다. 이 매개 변수의 값은 동일한 명령에 추가되는 형식의 이름이 될 수 있습니다.
이 값은 파일의 형식 Format.ps1xml
에 대해 각각 정의된 목록, 테이블 또는 사용자 지정 뷰가 없는 경우에만 적용됩니다.
이 매개 변수는 Windows PowerShell 3.0에서 도입되었습니다.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DefaultKeyPropertySet
형식의 속성을 하나 이상 지정합니다. 이러한 속성은 다른 속성이 Group-Object
지정되지 않은 경우 및 Sort-Object
cmdlet에서 사용됩니다.
형식의 표준 또는 확장 속성 이름을 입력합니다. 이 매개 변수의 값은 동일한 명령에 추가되는 형식의 이름이 될 수 있습니다.
이 매개 변수는 Windows PowerShell 3.0에서 도입되었습니다.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Force
해당 형식에 대해 형식 데이터가 이미 지정된 경우에도 cmdlet에서 지정된 형식 데이터를 사용한다는 것을 나타냅니다.
이 매개 변수는 Windows PowerShell 3.0에서 도입되었습니다.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InheritPropertySerializationSet
serialize되는 속성 집합이 상속되는지 여부를 나타냅니다. 기본값은 $Null
입니다. 이 매개 변수에 허용되는 값은 다음과 같습니다.
$True
. 속성 집합이 상속됩니다.$False
. 속성 집합은 상속되지 않습니다.$Null
. 상속이 정의되지 않았습니다.
이 매개 변수는 SerializationMethod 매개 변수의 값이 있는 경우에만 유효합니다SpecificProperties
. 이 매개 변수의 값이면 $False
PropertySerializationSet 매개 변수가 필요합니다.
이 매개 변수는 Windows PowerShell 3.0에서 도입되었습니다.
Type: | Nullable<T>[Boolean] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-MemberName
속성 또는 메서드의 이름을 지정합니다.
TypeName, MemberType, Value 및 SecondValue 매개 변수와 함께 이 매개 변수를 사용하여 형식의 속성 또는 메서드를 추가하거나 변경할 수 있습니다.
이 매개 변수는 Windows PowerShell 3.0에서 도입되었습니다.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-MemberType
추가하거나 변경할 멤버의 형식을 지정합니다.
TypeName, MemberType, Value 및 SecondValue 매개 변수와 함께 이 매개 변수를 사용하여 형식의 속성 또는 메서드를 추가하거나 변경할 수 있습니다. 이 매개 변수에 허용되는 값은 다음과 같습니다.
- AliasProperty
- CodeMethod
- CodeProperty
- 참고 속성
- ScriptMethod
- ScriptProperty
이러한 값에 대한 자세한 내용은 PSMemberTypes 열거형을 참조 하세요.
이 매개 변수는 Windows PowerShell 3.0에서 도입되었습니다.
Type: | PSMemberTypes |
Accepted values: | NoteProperty, AliasProperty, ScriptProperty, CodeProperty, ScriptMethod, CodeMethod |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PrependPath
선택적 .ps1xml
파일의 경로를 지정합니다. 지정한 파일은 기본 제공 파일이 로드되기 전에 나열된 순서대로 로드됩니다.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PropertySerializationSet
serialize되는 속성의 이름을 지정합니다. SerializationMethod 매개 변수의 값이 SpecificProperties인 경우 이 매개 변수를 사용합니다.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SecondValue
AliasProperty, ScriptProperty, CodeProperty 또는 CodeMethod 멤버에 대한 추가 값을 지정합니다.
TypeName, MemberType, Value 및 SecondValue 매개 변수와 함께 이 매개 변수를 사용하여 형식의 속성 또는 메서드를 추가하거나 변경할 수 있습니다.
MemberType 매개 변수의 값이면 AliasProperty
SecondValue 매개 변수의 값은 데이터 형식이어야 합니다. PowerShell은 별칭 속성의 값을 지정된 형식으로 변환합니다(즉, 캐스트). 예를 들어 문자열 속성의 대체 이름을 제공하는 별칭 속성을 추가하는 경우 별칭 문자열 값을 정수로 변환하기 위해 System.Int32의 SecondValue를 지정할 수도 있습니다.
MemberType 매개 변수의 값이면 ScriptProperty
SecondValue 매개 변수를 사용하여 추가 스크립트 블록을 지정할 수 있습니다. Value 매개 변수 값의 스크립트 블록은 변수의 값을 가져옵니다. SecondValue 매개 변수 값의 스크립트 블록은 변수 값을 설정합니다.
이 매개 변수는 Windows PowerShell 3.0에서 도입되었습니다.
Type: | Object |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SerializationDepth
문자열로 serialize되는 형식 개체의 수준을 지정합니다. 기본값 1
은 개체와 해당 속성을 직렬화합니다. 값은 0
개체를 직렬화하지만 해당 속성은 직렬화하지 않습니다. 값 2
은 개체, 해당 속성 및 속성 값의 모든 개체를 serialize합니다.
이 매개 변수는 Windows PowerShell 3.0에서 도입되었습니다.
Type: | Int32 |
Position: | Named |
Default value: | 1 |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SerializationMethod
형식에 대한 serialization 메서드를 지정합니다. serialization 메서드는 serialize되는 형식의 속성과 직렬화하는 데 사용되는 기술을 결정합니다. 이 매개 변수에 허용되는 값은 다음과 같습니다.
AllPublicProperties
. 형식의 모든 public 속성을 직렬화합니다. SerializationDepth 매개 변수를 사용하여 자식 속성이 serialize되는지 여부를 확인할 수 있습니다.String
. 유형을 문자열로 직렬화합니다. StringSerializationSource를 사용하여 serialization 결과로 사용할 형식의 속성을 지정할 수 있습니다. 그렇지 않으면 개체의 ToString 메서드를 사용하여 형식이 serialize됩니다.SpecificProperties
. 이 형식의 지정된 속성만 직렬화합니다. PropertySerializationSet 매개 변수를 사용하여 serialize되는 형식의 속성을 지정합니다. InheritPropertySerializationSet 매개 변수를 사용하여 속성 집합이 상속되는지 여부와 SerializationDepth 매개 변수를 사용하여 자식 속성이 serialize되는지 여부를 확인할 수도 있습니다.
PowerShell에서 serialization 메서드는 PSStandardMembers 내부 개체에 저장됩니다.
이 매개 변수는 Windows PowerShell 3.0에서 도입되었습니다.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-StringSerializationSource
형식의 속성 이름을 지정합니다. 지정된 속성의 값은 serialization 결과로 사용됩니다. 이 매개 변수는 SerializationMethod 매개 변수의 값이 String인 경우에만 유효합니다.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-TargetTypeForDeserialization
역직렬화될 때 이 형식의 개체가 변환되는 형식을 지정합니다.
이 매개 변수는 Windows PowerShell 3.0에서 도입되었습니다.
Type: | Type |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-TypeAdapter
Microsoft.PowerShell.Cim.CimInstanceAdapter와 같은 형식 어댑터의 형식을 지정합니다. 형식 어댑터를 사용하면 PowerShell에서 형식의 멤버를 가져올 수 있습니다.
이 매개 변수는 Windows PowerShell 3.0에서 도입되었습니다.
Type: | Type |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-TypeConverter
유형 간에 값을 변환할 유형 변환기를 지정합니다. 유형에 대한 유형 변환기를 정의하면 유형 변환기 인스턴스가 변환에 사용됩니다.
System.ComponentModel.TypeConverter 또는 System.Management.Automation.PSTypeConverter 클래스에서 파생된 System.Type 값을 입력합니다.
이 매개 변수는 Windows PowerShell 3.0에서 도입되었습니다.
Type: | Type |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-TypeData
이 cmdlet이 세션에 추가하는 형식 데이터의 배열을 지정합니다. TypeData 개체 또는 TypeData 개체를 가져오는 명령(예: 명령)이 포함된 변수를 Get-TypeData
입력합니다. TypeData 개체를 .에 파이프할 Update-TypeData
수도 있습니다.
이 매개 변수는 Windows PowerShell 3.0에서 도입되었습니다.
Type: | TypeData[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-TypeName
확장할 형식의 이름을 지정합니다.
시스템 네임스페이스의 형식에 대해 짧은 이름을 입력합니다. 그렇지 않으면 전체 형식 이름이 필요합니다. 와일드카드는 지원되지 않습니다.
형식 이름을 .에 파이프할 Update-TypeData
수 있습니다. 개체를 파이프할 Update-TypeData
Update-TypeData
때 개체의 형식 이름과 형식 데이터를 개체 형식으로 가져옵니다.
MemberName, MemberType, Value 및 SecondValue 매개 변수와 함께 이 매개 변수를 사용하여 형식의 속성 또는 메서드를 추가하거나 변경할 수 있습니다.
이 매개 변수는 Windows PowerShell 3.0에서 도입되었습니다.
Type: | String |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Value
속성 또는 메서드의 값을 지정합니다.
, CodeProperty
또는 CodeMethod
ScriptProperty
멤버를 AliasProperty
추가하는 경우 SecondValue 매개 변수를 사용하여 추가 정보를 추가할 수 있습니다.
MemberName, MemberType, Value 및 SecondValue 매개 변수와 함께 이 매개 변수를 사용하여 형식의 속성 또는 메서드를 추가하거나 변경할 수 있습니다.
이 매개 변수는 Windows PowerShell 3.0에서 도입되었습니다.
Type: | Object |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
cmdlet이 실행될 경우 결과 동작을 표시합니다. cmdlet이 실행되지 않습니다.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
입력
AppendPath, TypeName 또는 TypeData 매개 변수의 값이 포함된 문자열을 이 cmdlet으로 파이프할 수 있습니다.
출력
None
이 cmdlet은 출력을 반환하지 않습니다.
관련 링크
PowerShell
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기