Get-Host

會得到一個代表目前主機程式的物件。

語法

Default (預設值)

Get-Host

Description

Get-Host cmdlet 會得到一個物件,代表承載 PowerShell Windows程式。

預設顯示包含 Windows PowerShell 版本號以及主機目前使用的區域和語言設定,但主機物件則包含大量資訊,包括目前執行的 Windows PowerShell 版本,以及 Windows PowerShell 的文化與使用者介面文化的詳細資訊。 你也可以使用此 cmdlet 自訂主機程式使用者介面的功能,例如文字與背景色。

範例

範例 1:取得 PowerShell 主控台主機的資訊

Get-Host
Name             : ConsoleHost
Version          : 2.0
InstanceId       : e4e0ab54-cc5e-4261-9117-4081f20ce7a2
UI               : System.Management.Automation.Internal.Host.InternalHostUserInterface
CurrentCulture   : en-US
CurrentUICulture : en-US
PrivateData      : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy
IsRunspacePushed : False
Runspace         : System.Management.Automation.Runspaces.LocalRunspace

此指令顯示 PowerShell 主控台的資訊,該主控台是本範例中 PowerShell 目前的主機程式。 它包含主機名稱、主機上執行的 PowerShell 版本,以及目前的文化與使用者介面文化。

Version、UI、CurrentCulture、CurrentUICulture、PrivateData 和 Runspace 屬性各自包含一個物件及其他有用的屬性。 後面的例子將探討這些特性。

範例 2:調整 PowerShell 視窗大小

$H = Get-Host
$Win = $H.UI.RawUI.WindowSize
$Win.Height = 10
$Win.Width  = 10
$H.UI.RawUI.Set_WindowSize($Win)

此指令可將 Windows PowerShell 視窗調整為 10 行 x 10 字元。

範例 3:取得主機的 PowerShell 版本

(Get-Host).Version
Major  Minor  Build  Revision PSSemVerPreReleaseLabel    PSSemVerBuildLabel
-----  -----  -----  -------- -----------------------    ------------------
7      4      0      -1       preview.1

此指令會取得主機中執行的 Windows PowerShell 版本詳細資訊。 你可以看見,但不能改變這些價值觀。

的 Get-Host 屬性包含一個 System.Version 物件。 此指令使用管線運算子(|)將版本物件傳送給 Format-List cmdlet。 指令使用 Format-ListProperty 參數,值為 all*()來顯示版本物件的所有屬性與屬性值。

範例 4:取得主機目前的文化

(Get-Host).CurrentCulture | Format-List
Parent                         : en
LCID                           : 1033
KeyboardLayoutId               : 1033
Name                           : en-US
IetfLanguageTag                : en-US
DisplayName                    : English (United States)
NativeName                     : English (United States)
EnglishName                    : English (United States)
TwoLetterISOLanguageName       : en
ThreeLetterISOLanguageName     : eng
ThreeLetterWindowsLanguageName : ENU
CompareInfo                    : CompareInfo - en-US
TextInfo                       : TextInfo - en-US
IsNeutralCulture               : False
CultureTypes                   : SpecificCultures, InstalledWin32Cultures
NumberFormat                   : System.Globalization.NumberFormatInfo
DateTimeFormat                 : System.Globalization.DateTimeFormatInfo
Calendar                       : System.Globalization.GregorianCalendar
OptionalCalendars              : {System.Globalization.GregorianCalendar}
UseUserOverride                : True
IsReadOnly                     : True

此指令會取得主機中執行的 Windows PowerShell 當前文化設定的詳細資訊。 這也是指令重管回傳 Get-Culture 的資訊。

同樣地, CurrentUICulture 屬性會回傳與 Get-UICulture 回傳相同的物件。

主機物件的 CurrentCulture 屬性包含 一個 System.Globalization.CultureInfo 物件。 此指令使用管線運算子(|)將 CultureInfo 物件傳送給 Format-List cmdlet。 指令 Format-List 使用 Property 參數,值為 all*(),以顯示 CultureInfo 物件的所有屬性與屬性值。

範例 5:取得當前文化的 DateTimeFormat

(Get-Host).CurrentCulture.DateTimeFormat | Format-List
AMDesignator                     : AM
Calendar                         : System.Globalization.GregorianCalendar
DateSeparator                    : /
FirstDayOfWeek                   : Sunday
CalendarWeekRule                 : FirstDay
FullDateTimePattern              : dddd, MMMM dd, yyyy h:mm:ss tt
LongDatePattern                  : dddd, MMMM dd, yyyy
LongTimePattern                  : h:mm:ss tt
MonthDayPattern                  : MMMM dd
PMDesignator                     : PM
RFC1123Pattern                   : ddd, dd MMM yyyy HH':'mm':'ss 'GMT'
ShortDatePattern                 : M/d/yyyy
ShortTimePattern                 : h:mm tt
SortableDateTimePattern          : yyyy'-'MM'-'dd'T'HH':'mm':'ss
TimeSeparator                    : :
UniversalSortableDateTimePattern : yyyy'-'MM'-'dd HH':'mm':'ss'Z'
YearMonthPattern                 : MMMM, yyyy
AbbreviatedDayNames              : {Sun, Mon, Tue, Wed...}
ShortestDayNames                 : {Su, Mo, Tu, We...}
DayNames                         : {Sunday, Monday, Tuesday, Wednesday...}
AbbreviatedMonthNames            : {Jan, Feb, Mar, Apr...}
MonthNames                       : {January, February, March, April...}
IsReadOnly                       : False
NativeCalendarName               : Gregorian Calendar
AbbreviatedMonthGenitiveNames    : {Jan, Feb, Mar, Apr...}
MonthGenitiveNames               : {January, February, March, April...}

此指令會回傳目前用於 Windows PowerShell 文化的 DateTimeFormat 詳細資訊。

主機物件的 CurrentCulture 屬性包含一個 CultureInfo 物件,而 CultureInfo 又擁有許多有用的屬性。 其中, DateTimeFormat 屬性包含一個具有許多實用屬性的 DateTimeFormatInfo 物件。

要找到物件屬性中儲存的物件類型,請使用 Get-Member cmdlet。 要顯示物件的屬性值,請使用 Format-List cmdlet。

範例 6:取得主機的 RawUI 屬性

此指令會顯示主機物件 RawUI 屬性的屬性。 透過更改這些值,你可以改變主機程式的外觀。

(Get-Host).UI.RawUI
ForegroundColor       : Gray
BackgroundColor       : Black
CursorPosition        : 0,28
WindowPosition        : 0,0
CursorSize            : 25
BufferSize            : 120,29
WindowSize            : 120,29
MaxWindowSize         : 120,29
MaxPhysicalWindowSize : 1904,69
KeyAvailable          : True
WindowTitle           : PowerShell 7.3.3

Note

在非Windows平台上,ForegroundColor 和 BackgroundColor預設為 -1,因為在非Windows平台上沒有穩定的方法取得這些選項。

輸入

None

您不能將物件透過管道傳送到此 Cmdlet。

輸出

System.Management.Automation.Internal.Host.InternalHost

此 cmdlet 回傳一個 InternalHost 物件。

備註

$Host自動變數包含回Get-Host傳的物件,你可以用同樣的方式使用它。 同樣地, $PSCulture 和 $PSUICulture auto 變數包含與宿主物件的 CurrentCulture 和 CurrentUICulture 屬性相同的物件。 這些功能可以互換使用。

Note

$Host.PrivateData 中的色彩設定已由 $PSStyle 喜好設定變數取代。 如需詳細資訊,請參閱 about_ANSI_Terminals。

如需詳細資訊,請參閱 about_Automatic_Variables。