ค้นหาเว็บไซต์

อัปเดต TypeData (Microsoft.PowerShell.Utility)


Update-TypeData

โมดูล :
Microsoft.PowerShell.Utility

อัพเดตข้อมูลชนิดขยายในเซสชัน

ไวยากรณ์

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

คำอธิบาย

Update-TypeData cmdlet จะอัปเดตข้อมูลประเภทเพิ่มเติมในเซสชันโดยการโหลดไฟล์ Types.ps1xml ลงในหน่วยความจำและเพิ่มข้อมูลประเภทขยายใหม่

ตามค่าเริ่มต้น PowerShell จะโหลดข้อมูลชนิดขยายตามที่จำเป็น หากไม่มีพารามิเตอร์ Update-TypeData จะโหลดไฟล์ Types.ps1xml ทั้งหมดที่เคยโหลดในเซสชันซ้ำ รวมถึงไฟล์ประเภทใดๆ ที่คุณเพิ่มด้วย คุณสามารถใช้พารามิเตอร์ของ Update-TypeData เพื่อเพิ่มไฟล์ประเภทใหม่และเพิ่มและแทนที่ข้อมูลประเภทขยาย

Update-TypeData cmdlet สามารถใช้เพื่อโหลดข้อมูลประเภททั้งหมดล่วงหน้าได้ คุณลักษณะนี้มีประโยชน์อย่างยิ่งเมื่อคุณกำลังพัฒนาประเภทและต้องการโหลดประเภทใหม่เหล่านั้นเพื่อการทดสอบ

เริ่มต้นใน Windows PowerShell 3.0 คุณสามารถใช้ Update-TypeData เพื่อเพิ่มและแทนที่ข้อมูลประเภทขยายในเซสชันโดยไม่ต้องใช้ไฟล์ Types.ps1xml พิมพ์ข้อมูลที่เพิ่มแบบไดนามิก กล่าวคือ ไม่มีไฟล์ จะถูกเพิ่มในเซสชันปัจจุบันเท่านั้น หากต้องการเพิ่มข้อมูลประเภทลงในเซสชันทั้งหมด ให้เพิ่มคำสั่ง Update-TypeData ลงในโปรไฟล์ PowerShell ของคุณ สำหรับข้อมูลเพิ่มเติม โปรดดู about_Profiles

นอกจากนี้ เริ่มต้นใน Windows PowerShell 3.0 คุณสามารถใช้ Get-TypeData cmdlet เพื่อรับประเภทขยายในเซสชันปัจจุบันและ cmdlet Remove-TypeData เพื่อลบประเภทขยายจาก เซสชันปัจจุบัน

ข้อยกเว้นที่เกิดขึ้นในคุณสมบัติ หรือจากการเพิ่มคุณสมบัติลงในคำสั่ง Update-TypeData ไม่ต้องรายงานข้อผิดพลาด นี่เป็นการระงับข้อยกเว้นที่อาจเกิดขึ้นในประเภททั่วไปหลายประเภทระหว่างการจัดรูปแบบและการส่งออก หากคุณได้รับคุณสมบัติ .NET คุณสามารถหลีกเลี่ยงการระงับข้อยกเว้นได้โดยใช้ไวยากรณ์ของวิธีการแทน ดังที่แสดงในตัวอย่างต่อไปนี้:

"hello".get_Length()

โปรดทราบว่าไวยากรณ์ของวิธีการสามารถใช้ได้กับคุณสมบัติ .NET เท่านั้น คุณสมบัติที่ถูกเพิ่มโดยการเรียกใช้ cmdlet Update-TypeData ไม่สามารถใช้ไวยากรณ์ของวิธีการได้

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับไฟล์ Types.ps1xml ใน PowerShell โปรดดู about_Types.ps1xml

ตัวอย่าง

ตัวอย่างที่ 1: อัปเดตประเภทเพิ่มเติม

Update-TypeData

คำสั่งนี้จะอัปเดตการกำหนดค่าประเภทเพิ่มเติมจากไฟล์ Types.ps1xml ที่ใช้งานแล้วในเซสชัน

ตัวอย่างที่ 2: อัปเดตประเภทหลายครั้ง

ตัวอย่างนี้แสดงวิธีอัปเดตประเภทในไฟล์ประเภทหลายครั้งในเซสชันเดียวกัน

คำสั่งแรกจะอัปเดตการกำหนดค่าประเภทเพิ่มเติมจากไฟล์ Types.ps1xml โดยประมวลผลไฟล์ TypesA.types.ps1xml และ TypesB.types.ps1xml อันดับแรก.

คำสั่งที่สองจะแสดงวิธีอัปเดต TypesA.types.ps1xml อีกครั้ง เช่น คุณอาจต้องดำเนินการหากคุณเพิ่มหรือเปลี่ยนแปลงประเภทในไฟล์ คุณสามารถทำซ้ำคำสั่งก่อนหน้าสำหรับไฟล์ TypesA.types.ps1xml หรือเรียกใช้คำสั่ง Update-TypeData โดยไม่มีพารามิเตอร์ เนื่องจาก TypesA.types.ps1xml อยู่ในรายการไฟล์ประเภทสำหรับเซสชันปัจจุบันแล้ว

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

ตัวอย่างที่ 3: เพิ่มคุณสมบัติสคริปต์ให้กับวัตถุ DateTime

ตัวอย่างนี้ใช้ Update-TypeData เพื่อเพิ่มคุณสมบัติสคริปต์ Quarter ให้กับอ็อบเจ็กต์ System.DateTime ในเซสชันปัจจุบัน เช่น ที่ส่งคืนโดย < รหัส>รับวันที่ cmdlet

$typeDataParams = @{
    TypeName   = 'System.DateTime'
    MemberType = 'ScriptProperty'
    MemberName = 'Quarter'
    Value      = {
        switch ($this.Month) {
            { $_ -in @(1, 2, 3) } { return 'Q1' }
            { $_ -in @(4, 5, 6) } { return 'Q2' }
            { $_ -in @(7, 8, 9) } { return 'Q3' }
            default               { return 'Q4' }
        }
    }
}
Update-TypeData @typeDataParams

(Get-Date).Quarter

Q1

คำสั่ง Update-TypeData ใช้พารามิเตอร์ TypeName เพื่อระบุประเภท the System.DateTime พารามิเตอร์ MemberName เพื่อระบุ ชื่อของคุณสมบัติใหม่ คุณสมบัติ MemberType เพื่อระบุประเภท ScriptProperty และพารามิเตอร์ Value เพื่อระบุสคริปต์ที่กำหนดไตรมาสประจำปี .

ค่าของคุณสมบัติ Value คือสคริปต์ที่คำนวณไตรมาสประจำปีปัจจุบัน บล็อกสคริปต์ใช้ตัวแปรอัตโนมัติ $this เพื่อแสดงอินสแตนซ์ปัจจุบันของออบเจ็กต์ และใช้ตัวดำเนินการ In เพื่อพิจารณาว่าค่าเดือนปรากฏในอาร์เรย์จำนวนเต็มแต่ละตัวหรือไม่ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับตัวดำเนินการ -in โปรดดู about_Comparison_Operators

คำสั่งที่สองรับคุณสมบัติ Quarter ใหม่ของวันที่ปัจจุบัน

ตัวอย่างที่ 4: อัปเดตประเภทที่แสดงในรายการตามค่าเริ่มต้น

ตัวอย่างนี้แสดงวิธีการตั้งค่าคุณสมบัติของประเภทที่แสดงในรายการตามค่าเริ่มต้น กล่าวคือ เมื่อไม่ได้ระบุคุณสมบัติ เนื่องจากข้อมูลประเภทไม่ได้ระบุในไฟล์ Types.ps1xml จึงมีผลเฉพาะในเซสชันปัจจุบันเท่านั้น

Get-Date | Format-list

Update-TypeData -TypeName "System.DateTime" -DefaultDisplayPropertySet @(
    'DateTime'
    'DayOfYear'
    'Quarter'
)

Get-Date | Format-List

DisplayHint : DateTime
Date        : 8/7/2024 12:00:00 AM
Day         : 7
DayOfWeek   : Wednesday
DayOfYear   : 220
Hour        : 10
Kind        : Local
Millisecond : 568
Microsecond : 308
Nanosecond  : 600
Minute      : 34
Month       : 8
Second      : 43
Ticks       : 638586236835683086
TimeOfDay   : 10:34:43.5683086
Year        : 2024
DateTime    : Wednesday, August 7, 2024 10:34:43 AM
Quarter     : Q3


DateTime  : Wednesday, August 7, 2024 10:34:43 AM
DayOfYear : 220
Quarter   : Q3

คำสั่งแรกจะแสดงมุมมองรายการสำหรับคำสั่ง Get-Date ซึ่งส่งออกอ็อบเจ็กต์ System.DateTime ที่แสดงวันที่ปัจจุบัน คำสั่งใช้ตัวดำเนินการไปป์ไลน์ (|) เพื่อส่งวัตถุ DateTime ไปยัง Format-List cmdlet เนื่องจากคำสั่ง Format-List ไม่ได้ระบุคุณสมบัติที่จะแสดงในรายการ PowerShell จะแสดงคุณสมบัติสาธารณะทั้งหมดที่ไม่ได้ซ่อนไว้สำหรับออบเจ็กต์

คำสั่งที่สองใช้ Update-TypeData cmdlet เพื่อตั้งค่าคุณสมบัติรายการเริ่มต้นสำหรับประเภท System.DateTime คำสั่งใช้พารามิเตอร์ TypeName เพื่อระบุประเภทและพารามิเตอร์ DefaultDisplayPropertySet เพื่อระบุคุณสมบัติเริ่มต้นสำหรับรายการ คุณสมบัติที่เลือกมีคุณสมบัติสคริปต์ ไตรมาส ใหม่ที่ถูกเพิ่มในตัวอย่างก่อนหน้านี้

คำสั่งสุดท้ายรับวันที่ปัจจุบันและแสดงในรูปแบบรายการอีกครั้ง โดยจะแสดงเฉพาะคุณสมบัติที่กำหนดไว้ในคำสั่ง Update-TypeData แทนที่จะเป็นรายการคุณสมบัติทั้งหมด

ตัวอย่างที่ 5: ตั้งค่าคุณสมบัติให้ประเภทแสดงในรูปแบบกว้าง

ตัวอย่างนี้สาธิตวิธีการสร้างคุณสมบัติสคริปต์ใหม่และใช้เป็นคุณสมบัติเริ่มต้นที่แสดงเมื่อมีการส่งประเภทไปยัง cmdlet Format-Wide

Get-Command *File* | Format-Wide

Set-AppPackageProvisionedDataFile                            Set-ProvisionedAppPackageDataFile
Set-ProvisionedAppXDataFile                                  Write-FileSystemCache
Write-FileSystemCache                                        Add-PoshGitToProfile
Block-FileShareAccess                                        Clear-FileStorageTier
Close-SmbOpenFile                                            Debug-FileShare
Disable-NetIPHttpsProfile                                    Enable-NetIPHttpsProfile
Get-FileIntegrity                                            Get-FileShare
Get-FileShareAccessControlEntry                              Get-FileStorageTier
Get-NetConnectionProfile                                     Get-NetFirewallHyperVProfile
Get-NetFirewallProfile                                       Get-SmbOpenFile
Get-StorageFileServer                                        Get-SupportedFileSystems
Grant-FileShareAccess                                        New-FileShare
New-NetFirewallHyperVProfile                                 New-ScriptFileInfo
New-ScriptFileInfo                                           New-StorageFileServer
Publish-BCFileContent                                        Remove-FileShare
Remove-NetFirewallHyperVProfile                              Remove-PoshGitFromProfile
Remove-StorageFileServer                                     Repair-FileIntegrity
Revoke-FileShareAccess                                       Set-FileIntegrity
Set-FileShare                                                Set-FileStorageTier
Set-NetConnectionProfile                                     Set-NetFirewallHyperVProfile
Set-NetFirewallProfile                                       Set-StorageBusProfile
Set-StorageFileServer                                        Test-ScriptFileInfo
Test-ScriptFileInfo                                          Unblock-FileShareAccess
Update-ScriptFileInfo                                        Update-ScriptFileInfo
Add-BitsFile                                                 Get-AppLockerFileInformation
Get-FileHash                                                 Get-PSScriptFileInfo
Import-PowerShellDataFile                                    New-FileCatalog
New-PSRoleCapabilityFile                                     New-PSScriptFileInfo
New-PSSessionConfigurationFile                               New-TemporaryFile
Out-File                                                     Set-AppXProvisionedDataFile
Test-FileCatalog                                             Test-PSScriptFileInfo
Test-PSSessionConfigurationFile                              Unblock-File
Update-PSScriptFileInfo                                      FileDialogBroker.exe
FileHistory.exe                                              forfiles.exe
openfiles.exe

$typeDataParams = @{
    TypeName               = 'System.Management.Automation.CommandInfo'
    DefaultDisplayProperty = 'FullyQualifiedName'
    MemberType             = 'ScriptProperty'
    MemberName             = 'FullyQualifiedName'
    Value                  = {
        [OutputType([string])]
        param()

        # For executables, return the path to the application.
        if ($this -is [System.Management.Automation.ApplicationInfo]) {
            return $this.Path
        }

        # For commands defined outside a module, return only the name.
        if ([string]::IsNullOrEmpty($this.ModuleName)) {
            return $this.Name
        }

        # Return the fully-qualified command name "<ModuleName>\<CommandName>"
        return '{0}\{1}' -f $this.ModuleName, $this.Name
    }
}
Update-TypeData @typeDataParams

Get-Command *File* | Format-Wide

Dism\Set-AppPackageProvisionedDataFile                       Dism\Set-ProvisionedAppPackageDataFile
Dism\Set-ProvisionedAppXDataFile                             Storage\Write-FileSystemCache
VMDirectStorage\Write-FileSystemCache                        posh-git\Add-PoshGitToProfile
Storage\Block-FileShareAccess                                Storage\Clear-FileStorageTier
SmbShare\Close-SmbOpenFile                                   Storage\Debug-FileShare
NetworkTransition\Disable-NetIPHttpsProfile                  NetworkTransition\Enable-NetIPHttpsProfile
Storage\Get-FileIntegrity                                    Storage\Get-FileShare
Storage\Get-FileShareAccessControlEntry                      Storage\Get-FileStorageTier
NetConnection\Get-NetConnectionProfile                       NetSecurity\Get-NetFirewallHyperVProfile
NetSecurity\Get-NetFirewallProfile                           SmbShare\Get-SmbOpenFile
Storage\Get-StorageFileServer                                Storage\Get-SupportedFileSystems
Storage\Grant-FileShareAccess                                Storage\New-FileShare
NetSecurity\New-NetFirewallHyperVProfile                     PowerShellGet\New-ScriptFileInfo
PowerShellGet\New-ScriptFileInfo                             Storage\New-StorageFileServer
BranchCache\Publish-BCFileContent                            Storage\Remove-FileShare
NetSecurity\Remove-NetFirewallHyperVProfile                  posh-git\Remove-PoshGitFromProfile
Storage\Remove-StorageFileServer                             Storage\Repair-FileIntegrity
Storage\Revoke-FileShareAccess                               Storage\Set-FileIntegrity
Storage\Set-FileShare                                        Storage\Set-FileStorageTier
NetConnection\Set-NetConnectionProfile                       NetSecurity\Set-NetFirewallHyperVProfile
NetSecurity\Set-NetFirewallProfile                           StorageBusCache\Set-StorageBusProfile
Storage\Set-StorageFileServer                                PowerShellGet\Test-ScriptFileInfo
PowerShellGet\Test-ScriptFileInfo                            Storage\Unblock-FileShareAccess
PowerShellGet\Update-ScriptFileInfo                          PowerShellGet\Update-ScriptFileInfo
BitsTransfer\Add-BitsFile                                    AppLocker\Get-AppLockerFileInformation
Microsoft.PowerShell.Utility\Get-FileHash                    Microsoft.PowerShell.PSResourceGet\Get-PSScriptFileInfo        
Microsoft.PowerShell.Utility\Import-PowerShellDataFile       Microsoft.PowerShell.Security\New-FileCatalog
Microsoft.PowerShell.Core\New-PSRoleCapabilityFile           Microsoft.PowerShell.PSResourceGet\New-PSScriptFileInfo        
Microsoft.PowerShell.Core\New-PSSessionConfigurationFile     Microsoft.PowerShell.Utility\New-TemporaryFile
Microsoft.PowerShell.Utility\Out-File                        Dism\Set-AppXProvisionedDataFile
Microsoft.PowerShell.Security\Test-FileCatalog               Microsoft.PowerShell.PSResourceGet\Test-PSScriptFileInfo       
Microsoft.PowerShell.Core\Test-PSSessionConfigurationFile    Microsoft.PowerShell.Utility\Unblock-File
Microsoft.PowerShell.PSResourceGet\Update-PSScriptFileInfo   C:\WINDOWS\system32\FileDialogBroker.exe
C:\WINDOWS\system32\FileHistory.exe                          C:\WINDOWS\system32\forfiles.exe
C:\WINDOWS\system32\openfiles.exe

คำสั่งแรกใช้ Get-Command cmdlet เพื่อส่งคืนทุกคำสั่งด้วยชื่อที่มีคำว่า File โดยส่งเอาต์พุตไปที่ Format-Wide cmdlet ซึ่งแสดงชื่อของคำสั่งในคอลัมน์

ต่อไป ตัวอย่างใช้ Update-TypeData เพื่อกำหนดทั้ง DefaultDisplayProperty และคุณสมบัติสคริปต์ใหม่สำหรับประเภท CommandInfo ผลลัพธ์สำหรับ Get-Command ส่งคืนอ็อบเจ็กต์ CommandInfo และอ็อบเจ็กต์ที่ได้รับมาจากประเภทนั้น คุณสมบัติสคริปต์ใหม่ FullyQualifiedName ส่งคืนเส้นทางแบบเต็มไปยังแอปพลิเคชันที่ปฏิบัติการได้และชื่อแบบเต็มสำหรับ cmdlets ซึ่งนำหน้าชื่อ cmdlet ด้วยโมดูลที่กำหนด Update-TypeData cmdlet สามารถกำหนดคุณสมบัติสคริปต์ใหม่และใช้เป็น DefaultDisplayProperty ในคำสั่งเดียวกัน

สุดท้าย ผลลัพธ์จะแสดงผลลัพธ์ของ Get-Command ที่แสดงในรูปแบบกว้างหลังจากการอัปเดตประเภท โดยจะแสดงชื่อแบบเต็มสำหรับ cmdlets และเส้นทางแบบเต็มไปยังแอปพลิเคชันที่ปฏิบัติการได้

ตัวอย่างที่ 6: อัปเดตข้อมูลประเภทสำหรับวัตถุไปป์

$typeDataParams = @{
    MemberType = 'ScriptProperty'
    MemberName = 'SupportsUpdatableHelp'
    Value      = {
        [OutputType([bool])]
        param()

        return (-not [string]::IsNullOrEmpty($this.HelpInfoUri))
    }
}
Get-Module Microsoft.PowerShell.Utility | Update-TypeData @typeDataParams

Get-Module -ListAvailable -Name Microsoft.PowerShell.* |
    Format-Table Name, SupportsUpdatableHelp

Name                                      SupportsUpdatableHelp
----                                      ---------------------
Microsoft.PowerShell.Archive                               True
Microsoft.PowerShell.Diagnostics                           True
Microsoft.PowerShell.Host                                  True
Microsoft.PowerShell.Management                            True
Microsoft.PowerShell.PSResourceGet                         True
Microsoft.PowerShell.Security                              True
Microsoft.PowerShell.Utility                               True
Microsoft.PowerShell.Operation.Validation                  True
Microsoft.PowerShell.LocalAccounts                         True

ตัวอย่างนี้แสดงให้เห็นว่าเมื่อคุณไปป์วัตถุไปที่ Update-TypeData, Update-TypeData จะเพิ่มข้อมูลประเภทขยายสำหรับประเภทวัตถุ

เทคนิคนี้เร็วกว่าการใช้ cmdlet Get-Member หรือวิธี Get-Type เพื่อรับประเภทวัตถุ อย่างไรก็ตาม หากคุณไปป์คอลเลกชันของออบเจ็กต์ไปที่ Update-TypeData มันจะอัปเดตข้อมูลประเภทของออบเจ็กต์ประเภทแรก จากนั้นส่งคืนข้อผิดพลาดสำหรับออบเจ็กต์อื่น ๆ ทั้งหมดในคอลเลกชันเนื่องจากมีการกำหนดสมาชิกไว้แล้ว ประเภท

คำสั่งแรกใช้ Get-Module cmdlet เพื่อรับโมดูล Microsoft.PowerShell.Utility คำสั่งไปป์วัตถุโมดูลไปที่ Update-TypeData cmdlet ซึ่งจะอัปเดตข้อมูลประเภทสำหรับประเภท System.Management.Automation.PSModuleInfo และประเภทที่ได้รับมา เช่น เนื่องจากประเภท ModuleInfoGrouping ที่ Get-Module ส่งคืนเมื่อคุณใช้พารามิเตอร์ ListAvailable ในคำสั่ง

คำสั่ง Update-TypeData จะเพิ่มคุณสมบัติสคริปต์ SupportsUpdatableHelp ให้กับโมดูลที่นำเข้าทั้งหมด ค่าของพารามิเตอร์ Value คือสคริปต์ที่ส่งคืน $true หากคุณสมบัติ HelpInfoUri ของโมดูลถูกเติมและ $false มิฉะนั้น

คำสั่งที่สองไปป์วัตถุโมดูลจาก Get-Module ไปยัง Format-Table cmdlet ซึ่งแสดง Name และ SupportsUpdatableHelp คุณสมบัติของโมดูลที่มีอยู่

พารามิเตอร์

-AppendPath

ระบุเส้นทางไปยังไฟล์ .ps1xml เสริม ไฟล์ที่ระบุจะถูกโหลดตามลำดับที่แสดงไว้หลังจากโหลดไฟล์ในตัวแล้ว คุณยังสามารถไพพ์ค่า AppendPath ไปที่ Update-TypeData ได้ด้วย

พิมพ์ :

String[]

นามแฝง :

PSPath, Path

ตำแหน่ง:

0

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

True

ยอมรับอักขระตัวแทน:

False

-Confirm

แจ้งให้คุณยืนยันก่อนเรียกใช้ cmdlet

พิมพ์ :

SwitchParameter

นามแฝง :

cf

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

False

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-DefaultDisplayProperty

ระบุคุณสมบัติของประเภทที่แสดงโดย cmdlet Format-Wide เมื่อไม่ได้ระบุคุณสมบัติอื่น ๆ

พิมพ์ชื่อของคุณสมบัติมาตรฐานหรือคุณสมบัติเพิ่มเติมของชนิด ค่าของพารามิเตอร์นี้สามารถเป็นชื่อของประเภทที่เพิ่มในคำสั่งเดียวกัน

ค่านี้จะมีผลเฉพาะเมื่อไม่มีการกำหนดมุมมองแบบกว้างสำหรับประเภทในไฟล์ Format.ps1xml

พารามิเตอร์นี้ถูกนำมาใช้ใน Windows PowerShell 3.0

พิมพ์ :

String

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-DefaultDisplayPropertySet

ระบุคุณสมบัติของชนิดตั้งแต่หนึ่งรายการขึ้นไป คุณสมบัติเหล่านี้จะแสดงโดย Format-List, Format-Table และ Format-Custom cmdlets เมื่อไม่ได้ระบุคุณสมบัติอื่น ๆ

พิมพ์ชื่อของคุณสมบัติมาตรฐานหรือคุณสมบัติเพิ่มเติมของชนิด ค่าของพารามิเตอร์นี้สามารถเป็นชื่อของประเภทที่เพิ่มในคำสั่งเดียวกัน

ค่านี้จะมีผลเฉพาะเมื่อไม่มีรายการ ตาราง หรือมุมมองที่กำหนดเอง ตามลำดับ ซึ่งกำหนดไว้สำหรับประเภทในไฟล์ Format.ps1xml

พารามิเตอร์นี้ถูกนำมาใช้ใน Windows PowerShell 3.0

พิมพ์ :

String[]

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-DefaultKeyPropertySet

ระบุคุณสมบัติของชนิดตั้งแต่หนึ่งรายการขึ้นไป คุณสมบัติเหล่านี้ถูกใช้โดย cmdlets Group-Object และ Sort-Object เมื่อไม่ได้ระบุคุณสมบัติอื่น ๆ

พิมพ์ชื่อของคุณสมบัติมาตรฐานหรือคุณสมบัติเพิ่มเติมของชนิด ค่าของพารามิเตอร์นี้สามารถเป็นชื่อของประเภทที่เพิ่มในคำสั่งเดียวกัน

พารามิเตอร์นี้ถูกนำมาใช้ใน Windows PowerShell 3.0

พิมพ์ :

String[]

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-Force

บ่งชี้ว่า cmdlet ใช้ข้อมูลประเภทที่ระบุ แม้ว่าจะมีการระบุข้อมูลประเภทสำหรับประเภทนั้นแล้วก็ตาม

พารามิเตอร์นี้ถูกนำมาใช้ใน Windows PowerShell 3.0

พิมพ์ :

SwitchParameter

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-InheritPropertySerializationSet

บ่งชี้ว่าชุดของคุณสมบัติที่เป็นอนุกรมได้รับการสืบทอดมาหรือไม่ ค่าเริ่มต้นคือ $Null ค่าที่ยอมรับได้สำหรับพารามิเตอร์นี้คือ:

  • <รหัส>$จริง. ชุดคุณสมบัติได้รับการสืบทอดมา
  • <รหัส>$เท็จ. ชุดคุณสมบัติไม่ได้รับการสืบทอด
  • <รหัส>$ค่าว่าง. มรดกไม่ได้ถูกกำหนดไว้

พารามิเตอร์นี้ใช้ได้เฉพาะเมื่อค่าของพารามิเตอร์ SerializationMethod เป็น SpecificProperties เมื่อค่าของพารามิเตอร์นี้เป็น $False จำเป็นต้องมีพารามิเตอร์ PropertySerializationSet

พารามิเตอร์นี้ถูกนำมาใช้ใน Windows PowerShell 3.0

พิมพ์ :

มีค่าเป็นโมฆะ[บูลีน]

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-MemberName

ระบุชื่อของคุณสมบัติหรือวิธีการ

ใช้พารามิเตอร์นี้กับพารามิเตอร์ TypeName, MemberType, Value และ SecondValue เพื่อเพิ่มหรือเปลี่ยนแปลงคุณสมบัติหรือเมธอดของ ประเภท

พารามิเตอร์นี้ถูกนำมาใช้ใน Windows PowerShell 3.0

พิมพ์ :

String

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-MemberType

ระบุประเภทของสมาชิกที่จะเพิ่มหรือเปลี่ยนแปลง

ใช้พารามิเตอร์นี้กับพารามิเตอร์ TypeName, MemberType, Value และ SecondValue เพื่อเพิ่มหรือเปลี่ยนแปลงคุณสมบัติหรือเมธอดของ ประเภท ค่าที่ยอมรับได้สำหรับพารามิเตอร์นี้คือ:

  • AliasProperty
  • CodeMethod
  • CodeProperty
  • หมายเหตุคุณสมบัติ
  • ScriptMethod
  • ScriptProperty

สำหรับข้อมูลเกี่ยวกับค่าเหล่านี้ โปรดดูที่ การแจงนับ PSMemberTypes

พารามิเตอร์นี้ถูกนำมาใช้ใน Windows PowerShell 3.0

พิมพ์ :

PSMemberTypes

ค่าที่ยอมรับ:

NoteProperty, AliasProperty, ScriptProperty, CodeProperty, ScriptMethod, CodeMethod

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-PrependPath

ระบุเส้นทางไปยังไฟล์ .ps1xml เสริม ไฟล์ที่ระบุจะถูกโหลดตามลำดับที่ระบุไว้ก่อนที่จะโหลดไฟล์ในตัว

พิมพ์ :

String[]

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-PropertySerializationSet

ระบุชื่อของคุณสมบัติที่เป็นอนุกรม ใช้พารามิเตอร์นี้เมื่อค่าของพารามิเตอร์ SerializationMethod เป็น SpecificProperties

พิมพ์ :

String[]

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-SecondValue

ระบุค่าเพิ่มเติมสำหรับสมาชิก AliasProperty, ScriptProperty, CodeProperty หรือ CodeMethod

ใช้พารามิเตอร์นี้กับพารามิเตอร์ TypeName, MemberType, Value และ SecondValue เพื่อเพิ่มหรือเปลี่ยนแปลงคุณสมบัติหรือเมธอด ประเภท

เมื่อค่าของพารามิเตอร์ MemberType คือ AliasProperty ค่าของพารามิเตอร์ SecondValue จะต้องเป็นประเภทข้อมูล PowerShell แปลง (นั่นคือ แคสต์) ค่าของคุณสมบัตินามแฝงให้เป็นประเภทที่ระบุ ตัวอย่างเช่น หากคุณเพิ่มคุณสมบัตินามแฝงที่ให้ชื่ออื่นสำหรับคุณสมบัติสตริง คุณยังสามารถระบุ SecondValue ของ System.Int32 เพื่อแปลงค่าสตริงนามแฝงเป็น จำนวนเต็ม

เมื่อค่าของพารามิเตอร์ MemberType คือ ScriptProperty คุณสามารถใช้พารามิเตอร์ SecondValue เพื่อระบุบล็อกสคริปต์เพิ่มเติมได้ บล็อกสคริปต์ในค่าของพารามิเตอร์ ค่า รับค่าของตัวแปร บล็อกสคริปต์ในค่าของพารามิเตอร์ SecondValue จะตั้งค่าของตัวแปร

พารามิเตอร์นี้ถูกนำมาใช้ใน Windows PowerShell 3.0

พิมพ์ :

วัตถุ

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-SerializationDepth

ระบุจำนวนประเภทอ็อบเจ็กต์ที่ถูกซีเรียลไลซ์เป็นสตริง ค่าเริ่มต้น 1 ทำให้วัตถุเป็นอนุกรมและคุณสมบัติของมัน ค่า 0 จะทำให้วัตถุเป็นอนุกรม แต่ไม่ใช่คุณสมบัติของวัตถุ ค่า 2 ทำให้วัตถุเป็นอนุกรม คุณสมบัติของมัน และวัตถุใดๆ ในค่าคุณสมบัติ

พารามิเตอร์นี้ถูกนำมาใช้ใน Windows PowerShell 3.0

พิมพ์ :

Int32

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

1

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-SerializationMethod

ระบุวิธีการซีเรียลไลซ์สำหรับประเภท วิธีการซีเรียลไลซ์จะกำหนดคุณสมบัติของประเภทที่จะซีเรียลไลซ์และเทคนิคที่ใช้ในการซีเรียลไลซ์ ค่าที่ยอมรับได้สำหรับพารามิเตอร์นี้คือ:

  • <รหัส>คุณสมบัติสาธารณะทั้งหมด ทำให้คุณสมบัติสาธารณะทั้งหมดของประเภทเป็นอนุกรม คุณสามารถใช้พารามิเตอร์ SerializationDepth เพื่อกำหนดว่าคุณสมบัติย่อยเป็นแบบซีเรียลไลซ์หรือไม่
  • <รหัส>สตริง ทำให้อนุกรมประเภทเป็นสตริง คุณสามารถใช้ StringSerializationSource เพื่อระบุคุณสมบัติประเภทที่จะใช้เป็นผลลัพธ์การทำให้เป็นอนุกรม มิฉะนั้น ชนิดจะถูกทำให้เป็นอนุกรมโดยใช้เมธอด ToString ของออบเจ็กต์
  • <รหัส>คุณสมบัติเฉพาะ ทำให้เป็นอนุกรมเฉพาะคุณสมบัติที่ระบุของประเภทนี้ ใช้พารามิเตอร์ PropertySerializationSet เพื่อระบุคุณสมบัติของประเภทที่ทำให้เป็นอนุกรม คุณยังสามารถใช้พารามิเตอร์ InheritPropertySerializationSet เพื่อตรวจสอบว่าชุดคุณสมบัติได้รับการสืบทอดมาหรือไม่ และใช้พารามิเตอร์ SerializationDepth เพื่อกำหนดว่าคุณสมบัติย่อยเป็นแบบอนุกรมหรือไม่

ใน PowerShell วิธีการทำให้เป็นอนุกรมจะถูกจัดเก็บไว้ในวัตถุภายใน PSStandardMembers

พารามิเตอร์นี้ถูกนำมาใช้ใน Windows PowerShell 3.0

พิมพ์ :

String

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-StringSerializationSource

ระบุชื่อของคุณสมบัติของชนิด ค่าของคุณสมบัติที่ระบุถูกใช้เป็นผลลัพธ์การทำให้เป็นอนุกรม พารามิเตอร์นี้ใช้ได้เฉพาะเมื่อค่าของพารามิเตอร์ SerializationMethod เป็น String

พิมพ์ :

String

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-TargetTypeForDeserialization

ระบุประเภทที่ออบเจ็กต์ประเภทนี้จะถูกแปลงเมื่อมีการดีซีเรียลไลซ์

พารามิเตอร์นี้ถูกนำมาใช้ใน Windows PowerShell 3.0

พิมพ์ :

พิมพ์

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-TypeAdapter

ระบุประเภทของอะแดปเตอร์ประเภท เช่น Microsoft.PowerShell.Cim.CimInstanceAdapter อะแดปเตอร์ชนิดช่วยให้ PowerShell สามารถรับสมาชิกของประเภทได้

พารามิเตอร์นี้ถูกนำมาใช้ใน Windows PowerShell 3.0

พิมพ์ :

พิมพ์

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-TypeConverter

ระบุตัวแปลงประเภทเพื่อแปลงค่าระหว่างประเภทต่างๆ หากมีการกำหนดตัวแปลงชนิดสำหรับประเภท อินสแตนซ์ของตัวแปลงชนิดจะถูกใช้สำหรับการแปลง

ป้อนค่า System.Type ที่ได้มาจากคลาส System.ComponentModel.TypeConverter หรือ System.Management.Automation.PSTypeConverter

พารามิเตอร์นี้ถูกนำมาใช้ใน Windows PowerShell 3.0

พิมพ์ :

พิมพ์

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-TypeData

ระบุอาร์เรย์ของข้อมูลชนิดที่ cmdlet นี้เพิ่มในเซสชัน ป้อนตัวแปรที่มีวัตถุ TypeData หรือคำสั่งที่ได้รับวัตถุ TypeData เช่น คำสั่ง Get-TypeData คุณยังสามารถไปป์วัตถุ TypeData ไปที่ Update-TypeData

พารามิเตอร์นี้ถูกนำมาใช้ใน Windows PowerShell 3.0

พิมพ์ :

ประเภทข้อมูล[]

ตำแหน่ง:

0

ค่าเริ่มต้น:

None

ที่จำเป็น:

True

ยอมรับอินพุตไปป์ไลน์:

True

ยอมรับอักขระตัวแทน:

False

-TypeName

ระบุชื่อของชนิดที่จะขยาย

สำหรับประเภทในเนมสเปซ ระบบ ให้ป้อนชื่อย่อ มิฉะนั้น จะต้องระบุชื่อเต็ม ไม่รองรับไวด์การ์ด

คุณสามารถไปป์ชื่อประเภทไปยัง Update-TypeData เมื่อคุณไปป์วัตถุไปที่ Update-TypeData, Update-TypeData จะได้รับชื่อประเภทของวัตถุและพิมพ์ข้อมูลไปยังประเภทวัตถุ

ใช้พารามิเตอร์นี้กับพารามิเตอร์ MemberName, MemberType, Value และ SecondValue เพื่อเพิ่มหรือเปลี่ยนแปลงคุณสมบัติหรือเมธอดของ ประเภท

พารามิเตอร์นี้ถูกนำมาใช้ใน Windows PowerShell 3.0

พิมพ์ :

String

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

True

ยอมรับอินพุตไปป์ไลน์:

True

ยอมรับอักขระตัวแทน:

False

-Value

ระบุค่าของคุณสมบัติหรือวิธีการ

หากคุณเพิ่มสมาชิก AliasProperty, CodeProperty, ScriptProperty หรือ CodeMethod คุณสามารถใช้ SecondValue เพื่อเพิ่มข้อมูลเพิ่มเติม

ใช้พารามิเตอร์นี้กับพารามิเตอร์ MemberName, MemberType, Value และ SecondValue เพื่อเพิ่มหรือเปลี่ยนแปลงคุณสมบัติหรือเมธอดของ ประเภท

พารามิเตอร์นี้ถูกนำมาใช้ใน Windows PowerShell 3.0

พิมพ์ :

วัตถุ

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-WhatIf

แสดงสิ่งที่จะเกิดขึ้นหาก cmdlet ทำงาน cmdlet ไม่ทำงาน

พิมพ์ :

SwitchParameter

นามแฝง :

wi

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

False

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

อินพุต

สตริง

คุณสามารถไปป์สตริงที่มีค่าของพารามิเตอร์ AppendPath, TypeName หรือ TypeData ไปยัง cmdlet นี้

เอาท์พุต

ไม่มี

cmdlet นี้ส่งคืนไม่มีผลลัพธ์

บทความที่เกี่ยวข้อง