Update-TypeData

Memperbarui data jenis yang diperluas dalam sesi.

Sintaks

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>]

Deskripsi

Update-TypeData Cmdlet memperbarui data jenis yang diperluas dalam sesi dengan memuat Types.ps1xml ulang file ke dalam memori dan menambahkan data jenis baru yang diperluas.

Secara default, PowerShell memuat data jenis yang diperluas karena diperlukan. Tanpa parameter, Update-TypeData memuat ulang semua Types.ps1xml file yang telah dimuat dalam sesi, termasuk file jenis apa pun yang Anda tambahkan. Anda dapat menggunakan parameter Update-TypeData untuk menambahkan file jenis baru dan menambahkan dan mengganti data jenis yang diperluas.

Update-TypeData Cmdlet dapat digunakan untuk memuat semua jenis data. Fitur ini sangat berguna ketika Anda mengembangkan jenis dan ingin memuat jenis baru tersebut untuk tujuan pengujian.

Dimulai di Windows PowerShell 3.0, Anda dapat menggunakan Update-TypeData untuk menambahkan dan mengganti data tipe yang diperluas dalam sesi tanpa menggunakan Types.ps1xml file. Ketik data yang ditambahkan secara dinamis, yaitu, tanpa file, ditambahkan hanya ke sesi saat ini. Untuk menambahkan data jenis ke semua sesi, tambahkan Update-TypeData perintah ke profil PowerShell Anda. Untuk informasi selengkapnya, lihat about_Profiles.

Selain itu, dimulai di Windows PowerShell 3.0, Anda dapat menggunakan Get-TypeData cmdlet untuk mendapatkan jenis yang diperluas dalam sesi saat ini dan Remove-TypeData cmdlet untuk menghapus jenis yang diperluas dari sesi saat ini.

Pengecualian yang terjadi di properti, atau dari menambahkan properti ke Update-TypeData perintah, jangan laporkan kesalahan. Ini untuk menekan pengecualian yang akan terjadi dalam banyak jenis umum selama pemformatan dan output. Jika Anda mendapatkan properti .NET, Anda dapat mengatasi penekanan pengecualian dengan menggunakan sintaks metode sebagai gantinya, seperti yang ditunjukkan dalam contoh berikut:

"hello".get_Length()

Perhatikan bahwa sintaks metode hanya dapat digunakan dengan properti .NET. Properti yang ditambahkan dengan menjalankan Update-TypeData cmdlet tidak dapat menggunakan sintaks metode.

Untuk informasi selengkapnya tentang Types.ps1xml file di PowerShell, lihat about_Types.ps1xml.

Contoh

Contoh 1: Memperbarui jenis yang diperluas

Update-TypeData

Perintah ini memperbarui konfigurasi tipe yang diperluas dari Types.ps1xml file yang telah digunakan dalam sesi.

Contoh 2: Memperbarui jenis beberapa kali

Contoh ini menunjukkan cara memperbarui jenis dalam file jenis beberapa kali dalam sesi yang sama.

Perintah pertama memperbarui konfigurasi jenis yang diperluas dari Types.ps1xml file, memproses file dan TypesB.types.ps1xml terlebih TypesA.types.ps1xml dahulu.

Perintah kedua memperlihatkan cara memperbarui TypesA.types.ps1xml lagi, seperti yang mungkin Anda lakukan jika Anda menambahkan atau mengubah jenis dalam file. Anda dapat mengulangi perintah sebelumnya untuk TypesA.types.ps1xml file, atau menjalankan Update-TypeData perintah tanpa parameter, karena TypesA.types.ps1xml sudah ada dalam daftar file jenis untuk sesi saat ini.

Update-TypeData -PrependPath TypesA.types.ps1xml, TypesB.types.ps1xml
Update-TypeData -PrependPath TypesA.types.ps1xml

Contoh 3: Menambahkan properti skrip ke objek DateTime

Contoh ini menggunakan Update-TypeData untuk menambahkan properti skrip Kuartal ke objek System.DateTime dalam sesi saat ini, seperti yang dikembalikan oleh Get-Date cmdlet.

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

Perintah Update-TypeData menggunakan parameter TypeName untuk menentukan jenis System.DateTime , parameter MemberName untuk menentukan nama untuk properti baru, properti MemberType untuk menentukan jenis ScriptProperty , dan parameter Nilai untuk menentukan skrip yang menentukan kuartal tahunan.

Nilai properti Nilai adalah skrip yang menghitung kuartal tahunan saat ini. Blok skrip menggunakan variabel otomatis untuk mewakili instans $this objek saat ini dan operator Dalam untuk menentukan apakah nilai bulan muncul di setiap array bilangan bulat. Untuk informasi selengkapnya tentang -in operator, lihat about_Comparison_Operators.

Perintah kedua mendapatkan properti Kuartal baru dari tanggal saat ini.

Contoh 4: Memperbarui jenis yang ditampilkan dalam daftar secara default

Contoh ini memperlihatkan cara mengatur properti jenis yang ditampilkan dalam daftar secara default, yaitu, ketika tidak ada properti yang ditentukan. Karena data jenis tidak ditentukan dalam Types.ps1xml file, data tersebut hanya efektif dalam sesi saat ini.

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

Perintah pertama menggunakan Update-TypeData cmdlet untuk mengatur properti daftar default untuk jenis System.DateTime . Perintah menggunakan parameter TypeName untuk menentukan jenis dan parameter DefaultDisplayPropertySet untuk menentukan properti default untuk daftar. Properti yang dipilih mencakup properti skrip Kuartal baru yang ditambahkan dalam contoh sebelumnya.

Perintah kedua menggunakan Get-Date cmdlet untuk mendapatkan objek System.DateTime yang mewakili tanggal saat ini. Perintah menggunakan operator alur (|) untuk mengirim objek DateTime ke Format-List cmdlet. Format-List Karena perintah tidak menentukan properti yang akan ditampilkan dalam daftar, PowerShell menggunakan nilai default yang dibuat oleh Update-TypeData perintah .

Contoh 5: Memperbarui data jenis untuk objek yang disalurkan

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

Contoh ini menunjukkan bahwa saat Anda menyalurkan objek ke Update-TypeData, Update-TypeData menambahkan data jenis yang diperluas untuk jenis objek.

Teknik ini lebih cepat daripada menggunakan Get-Member cmdlet atau Get-Type metode untuk mendapatkan jenis objek. Namun, jika Anda menyalurkan kumpulan objek ke Update-TypeData, itu memperbarui jenis data dari jenis objek pertama dan kemudian mengembalikan kesalahan untuk semua objek lain dalam koleksi karena anggota sudah ditentukan pada jenis .

Perintah pertama menggunakan Get-Module cmdlet untuk mendapatkan modul PSScheduledJob. Perintah menyalurkan objek modul ke Update-TypeData cmdlet, yang memperbarui data jenis untuk jenis System.Management.Automation.PSModuleInfo dan jenis yang berasal darinya, seperti jenis ModuleInfoGrouping yang Get-Module kembali saat Anda menggunakan parameter ListAvailable dalam perintah.

Perintah Update-TypeData menambahkan properti skrip SupportsUpdatableHelp ke semua modul yang diimpor. Nilai parameter Nilai adalah skrip yang mengembalikan $True jika properti HelpInfoUri modul diisi dan $False sebaliknya.

Perintah kedua menyalurkan objek modul dari Get-Module ke Format-Table cmdlet, yang menampilkan properti Nama dan DukunganUpdatableHelp dari semua modul dalam daftar.

Parameter

-AppendPath

Menentukan jalur ke file opsional .ps1xml . File yang ditentukan dimuat dalam urutan yang tercantum setelah file bawaan dimuat. Anda juga dapat menyalurkan nilai AppendPath ke Update-TypeData.

Type:String[]
Aliases:PSPath, Path
Position:0
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Confirm

Meminta Anda mengonfirmasi sebelum menjalankan cmdlet.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DefaultDisplayProperty

Menentukan properti tipe yang ditampilkan oleh Format-Wide cmdlet ketika tidak ada properti lain yang ditentukan.

Ketik nama properti standar atau diperluas dari jenis tersebut. Nilai parameter ini bisa menjadi nama jenis yang ditambahkan dalam perintah yang sama.

Nilai ini hanya efektif ketika tidak ada tampilan lebar yang ditentukan untuk jenis dalam Format.ps1xml file.

Parameter ini diperkenalkan di Windows PowerShell 3.0.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DefaultDisplayPropertySet

Menentukan satu atau beberapa properti tipe. Properti ini ditampilkan oleh Format-Listcmdlet , , Format-Tabledan Format-Custom ketika tidak ada properti lain yang ditentukan.

Ketik nama properti standar atau diperluas dari jenis tersebut. Nilai parameter ini bisa menjadi nama jenis yang ditambahkan dalam perintah yang sama.

Nilai ini hanya efektif ketika tidak ada tampilan daftar, tabel, atau kustom, yang masing-masing ditentukan untuk jenis dalam Format.ps1xml file.

Parameter ini diperkenalkan di Windows PowerShell 3.0.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DefaultKeyPropertySet

Menentukan satu atau beberapa properti tipe. Properti ini digunakan oleh Group-Object cmdlet dan Sort-Object ketika tidak ada properti lain yang ditentukan.

Ketik nama properti standar atau diperluas dari jenis tersebut. Nilai parameter ini bisa menjadi nama jenis yang ditambahkan dalam perintah yang sama.

Parameter ini diperkenalkan di Windows PowerShell 3.0.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

Menunjukkan bahwa cmdlet menggunakan data jenis yang ditentukan, bahkan jika data jenis telah ditentukan untuk jenis tersebut.

Parameter ini diperkenalkan di Windows PowerShell 3.0.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InheritPropertySerializationSet

Menunjukkan apakah kumpulan properti yang diserialisasikan diwariskan. Nilai defaultnya adalah $Null. Nilai yang dapat diterima untuk parameter ini adalah:

  • $True. Kumpulan properti diwariskan.
  • $False. Kumpulan properti tidak diwariskan.
  • $Null. Warisan tidak didefinisikan.

Parameter ini hanya valid ketika nilai parameter SerializationMethod adalah SpecificProperties. Ketika nilai parameter ini adalah $False, parameter PropertySerializationSet diperlukan.

Parameter ini diperkenalkan di Windows PowerShell 3.0.

Type:Nullable<T>[Boolean]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MemberName

Menentukan nama properti atau metode.

Gunakan parameter ini dengan parameter TypeName, MemberType, Value, dan SecondValue untuk menambahkan atau mengubah properti atau metode jenis.

Parameter ini diperkenalkan di Windows PowerShell 3.0.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MemberType

Menentukan tipe anggota yang akan ditambahkan atau diubah.

Gunakan parameter ini dengan parameter TypeName, MemberType, Value, dan SecondValue untuk menambahkan atau mengubah properti atau metode jenis. Nilai yang dapat diterima untuk parameter ini adalah:

  • AliasProperty
  • CodeMethod
  • CodeProperty
  • Catatanproperti
  • ScriptMethod
  • ScriptProperty

Untuk informasi tentang nilai-nilai ini, lihat Enumerasi PSMemberTypes.

Parameter ini diperkenalkan di 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

Menentukan jalur ke file opsional .ps1xml . File yang ditentukan dimuat dalam urutan yang tercantum sebelum file bawaan dimuat.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-PropertySerializationSet

Menentukan nama properti yang diserialisasikan. Gunakan parameter ini saat nilai parameter SerializationMethod adalah SpecificProperties.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SecondValue

Menentukan nilai tambahan untuk anggota AliasProperty, ScriptProperty, CodeProperty, atau CodeMethod .

Gunakan parameter ini dengan parameter TypeName, MemberType, Value, dan SecondValue untuk menambahkan atau mengubah properti atau metode jenis.

Ketika nilai parameter MemberType adalah AliasProperty, nilai parameter SecondValue harus berupa jenis data. PowerShell mengonversi (yaitu, mentransmisikan) nilai properti alias ke jenis yang ditentukan. Misalnya, jika Anda menambahkan properti alias yang menyediakan nama alternatif untuk properti string, Anda juga dapat menentukan SecondValue of System.Int32 untuk mengonversi nilai string alias menjadi bilangan bulat.

Saat nilai parameter MemberType adalah ScriptProperty, Anda dapat menggunakan parameter SecondValue untuk menentukan blok skrip tambahan. Blok skrip dalam nilai parameter Nilai mendapatkan nilai variabel. Blok skrip dalam nilai parameter SecondValue mengatur nilai variabel.

Parameter ini diperkenalkan di Windows PowerShell 3.0.

Type:Object
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SerializationDepth

Menentukan berapa banyak tingkat objek jenis yang diserialisasikan sebagai string. Nilai 1 default menserialisasikan objek dan propertinya. Nilai menserialisasikan 0 objek, tetapi bukan propertinya. Nilai serialisasi 2 objek, propertinya, dan objek apa pun dalam nilai properti.

Parameter ini diperkenalkan di Windows PowerShell 3.0.

Type:Int32
Position:Named
Default value:1
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SerializationMethod

Menentukan metode serialisasi untuk jenis tersebut. Metode serialisasi menentukan properti jenis mana yang diserialisasikan dan teknik yang digunakan untuk menserialisasikannya. Nilai yang dapat diterima untuk parameter ini adalah:

  • AllPublicProperties. Menserialisasikan semua properti publik jenis. Anda dapat menggunakan parameter SerializationDepth untuk menentukan apakah properti anak diserialisasikan.
  • String. Menserialisasikan jenis sebagai string. Anda dapat menggunakan StringSerializationSource untuk menentukan properti jenis yang akan digunakan sebagai hasil serialisasi. Jika tidak, jenis diserialisasikan dengan menggunakan metode ToString objek.
  • SpecificProperties. Serialisasi hanya properti yang ditentukan dari jenis ini. Gunakan parameter PropertySerializationSet untuk menentukan properti jenis yang diserialisasikan. Anda juga dapat menggunakan parameter InheritPropertySerializationSet untuk menentukan apakah kumpulan properti diwariskan dan parameter SerializationDepth untuk menentukan apakah properti turunan diserialisasikan.

Di PowerShell, metode serialisasi disimpan di objek internal PSStandardMembers .

Parameter ini diperkenalkan di Windows PowerShell 3.0.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-StringSerializationSource

Menentukan nama properti jenis. Nilai properti yang ditentukan digunakan sebagai hasil serialisasi. Parameter ini hanya valid ketika nilai parameter SerializationMethod adalah String.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-TargetTypeForDeserialization

Menentukan tipe objek jenis ini yang dikonversi ketika dideserialisasi.

Parameter ini diperkenalkan di Windows PowerShell 3.0.

Type:Type
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-TypeAdapter

Menentukan jenis adaptor jenis, seperti Microsoft.PowerShell.Cim.CimInstanceAdapter. Adaptor jenis memungkinkan PowerShell untuk mendapatkan anggota jenis.

Parameter ini diperkenalkan di Windows PowerShell 3.0.

Type:Type
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-TypeConverter

Menentukan pengonversi tipe untuk mengonversi nilai di antara berbagai jenis. Jika pengonversi jenis didefinisikan untuk jenis, instans pengonversi jenis digunakan untuk konversi.

Masukkan nilai System.Type yang berasal dari kelas System.ComponentModel.TypeConverter atau System.Management.Automation.PSTypeConverter.

Parameter ini diperkenalkan di Windows PowerShell 3.0.

Type:Type
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-TypeData

Menentukan array data tipe yang ditambahkan cmdlet ini ke sesi. Masukkan variabel yang berisi objek TypeData atau perintah yang mendapatkan objek TypeData , seperti Get-TypeData perintah. Anda juga dapat menyalurkan objek TypeData ke Update-TypeData.

Parameter ini diperkenalkan di Windows PowerShell 3.0.

Type:TypeData[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-TypeName

Menentukan nama tipe yang akan diperluas.

Untuk jenis di namespace layanan Sistem , masukkan nama pendek. Jika tidak, nama jenis lengkap diperlukan. Kartu bebas tidak didukung.

Anda dapat menyalurkan nama jenis ke Update-TypeData. Saat Anda menyalurkan objek ke Update-TypeData, Update-TypeData mendapatkan nama jenis objek dan mengetik data ke jenis objek.

Gunakan parameter ini dengan parameter MemberName, MemberType, Value, dan SecondValue untuk menambahkan atau mengubah properti atau metode jenis.

Parameter ini diperkenalkan di Windows PowerShell 3.0.

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Value

Menentukan nilai properti atau metode.

Jika Anda menambahkan AliasProperty, , CodePropertyScriptProperty, atau CodeMethod anggota, Anda dapat menggunakan parameter SecondValue untuk menambahkan informasi tambahan.

Gunakan parameter ini dengan parameter MemberName, MemberType, Value, dan SecondValue untuk menambahkan atau mengubah properti atau metode jenis.

Parameter ini diperkenalkan di Windows PowerShell 3.0.

Type:Object
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

Menunjukkan apa yang akan terjadi jika cmdlet berjalan. Cmdlet tidak dijalankan.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Input

String

Anda dapat menyalurkan string yang berisi nilai parameter AppendPath, TypeName, atau TypeData ke cmdlet ini.

Output

None

Cmdlet ini tidak mengembalikan output.