Share via


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-TypeDataGet-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-TypeDataUpdate-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 스크립트입니다.

두 번째 명령은 목록에 있는 모든 모듈의 NameSupportsUpdatableHelp 속성을 표시하는 cmdlet으로 모듈 개체 Get-ModuleFormat-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-TableFormat-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. 이 매개 변수의 값이면 $FalsePropertySerializationSet 매개 변수가 필요합니다.

이 매개 변수는 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 매개 변수의 값이면 AliasPropertySecondValue 매개 변수의 값은 데이터 형식이어야 합니다. PowerShell은 별칭 속성의 값을 지정된 형식으로 변환합니다(즉, 캐스트). 예를 들어 문자열 속성의 대체 이름을 제공하는 별칭 속성을 추가하는 경우 별칭 문자열 값을 정수로 변환하기 위해 System.Int32SecondValue를 지정할 수도 있습니다.

MemberType 매개 변수의 값이면 ScriptPropertySecondValue 매개 변수를 사용하여 추가 스크립트 블록을 지정할 수 있습니다. 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-TypeDataUpdate-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또는 CodeMethodScriptProperty멤버를 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

입력

String

AppendPath, TypeName 또는 TypeData 매개 변수의 값이 포함된 문자열을 이 cmdlet으로 파이프할 수 있습니다.

출력

None

이 cmdlet은 출력을 반환하지 않습니다.