Get-Host

获取表示当前主机程序的对象。

语法

Get-Host []

说明

Get-Host cmdlet 获取一个对象,该对象表示托管 Windows PowerShell 的程序。

默认显示包括 Windows PowerShell 版本号以及主机正在使用的当前区域和语言设置,但主机对象包含大量信息,包括有关当前运行的 Windows PowerShell 版本以及 Windows PowerShell 的当前区域性和 UI 区域性的详细信息。 还可以使用此 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 版本以及当前区域性和 UI 区域性。

版本UICurrentCultureCurrentUICulturePrivateDataRunspace 属性各包含具有其他有用属性的对象。 稍后的示例将检查这些属性。

示例 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 行(10 个字符)。

示例 3:获取主机的 PowerShell 版本

(Get-Host).Version

Major  Minor  Build  Revision
-----  -----  -----  --------
7      3      3      -1

此命令获取有关在主机中运行的 Windows PowerShell 版本的详细信息。 可以查看但不更改这些值。

Get-Host 的 Version 属性包含 System.Version 对象。 此命令使用管道运算符(|)将版本对象发送到 Format-List cmdlet。 Format-List 命令使用具有所有值(*)的 Property 参数来显示版本对象的所有属性和属性值。

示例 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 cmdlet 返回的相同信息。

同样,CurrentUICulture 属性返回 Get-UICulture 返回的对象。

主机对象的 CurrentCulture 属性包含 System.Globalization.CultureInfo 对象。 此命令使用管道运算符(|)将 CultureInfo 对象发送到 Format-List cmdlet。 Format-List 命令使用 Property 参数和值全部(*)来显示 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...}

此命令返回有关当前区域性的 DateTimeFormat 的详细信息,该区域性用于 Windows PowerShell。

主机对象的 CurrentCulture 属性包含 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

注意

在非 Windows 平台上,ForegroundColorBackgroundColor 默认为 -1,因为在非 Windows 平台上无法获取这些内容。

输入

None

不能通过管道将对象传递给此 cmdlet。

输出

System.Management.Automation.Internal.Host.InternalHost

此 cmdlet 返回一个 InternalHost 对象。

备注

$Host 自动变量包含 Get-Host 返回的同一对象,你可以以相同的方式使用它。 同样,$PSCulture$PSUICulture 自动变量包含主机对象的 CurrentCulture 和 CurrentUICulture 属性包含的相同对象。 可以互换使用这些功能。

注意

$Host.PrivateData 中的颜色设置已替换为 $PSStyle 首选项变量。 有关详细信息,请参阅 about_ANSI_Terminals

有关详细信息,请参阅 about_Automatic_Variables