Bra*_*rad 10 powershell font color
我们有许多 Windows 2012 服务器核心系统,使用以下命令将 powershell 设置为默认 shell:
$RegPath = "Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\winlogon"
Set-ItemProperty -Confirm -Path $RegPath -Name Shell -Value 'cmd.exe /C start /max PowerShell.exe -noExit'
Run Code Online (Sandbox Code Playgroud)
我发现我们可以使用位于 c:\Windows\System32\WindowsPowerShell\v1.0\profile.ps1 的特殊 powershell 脚本自定义 powershell 字体颜色。该脚本被所有用户使用。
但是现在我想自定义持久的字体和字体大小(同样适用于所有用户)。IE 如果我退出服务器并重新登录,我希望保留设置。同样,如果我以管理员身份登录,或者我自己的帐户 powershell 应该看起来相同 - 使用相同的字体颜色、字体和字体大小。
使用 Powershell ISE 似乎可以使用以下方法设置字体和字体大小:
$psISE.Options.FontName = 'Lucida Sans Console'
$psISE.Options.FontSize = 14
Run Code Online (Sandbox Code Playgroud)
但是,powershell 本身的等价物是什么?
Powershell(不是 ISE)利用“控制台主机”,这是对古老的MS-DOS 命令提示符的稍微更现代的更新。控制台主机是 Microsoft 保持命令提示符与现代版本的 Windows 兼容的方式,但也仍然与旧的控制台应用程序兼容。
当您启动 Powershell.exe 时,csrss.exe 会生成一个名为 conhost.exe 的子进程。此行为与启动 Cmd.exe 时的行为相同。
但由于他们必须保持与旧控制台应用程序的兼容性,因此他们不能过多改变外观和感觉,也不能改变和破坏一堆内部界面。
我并不是说这是不可能的,但它比人们想象的要困难。
里面什么都没有(Get-Host).UI.RawUI。.NET 类中没有任何内容System.Console。
您可以通过执行以下操作来更改注册表中的字体和大小:
(编辑:下划线而不是斜杠)
Set-Location HKCU:\Console
New-Item '.\%SystemRoot%_System32_WindowsPowerShell_v1.0_powershell.exe'
Set-Location '.\%SystemRoot%_System32_WindowsPowerShell_v1.0_powershell.exe'
New-ItemProperty . FaceName -type STRING -value "Lucida Console"
New-ItemProperty . FontFamily -type DWORD -value 0x00000036
New-ItemProperty . FontSize -type DWORD -value 0x000c0000
New-ItemProperty . FontWeight -type DWORD -value 0x00000190
Run Code Online (Sandbox Code Playgroud)
kernel32.dll 中还有一些更改字体的导出:
typedef struct _CONSOLE_FONT {
DWORD index;
COORD dim;
} CONSOLE_FONT;
BOOL WINAPI SetConsoleFont(HANDLE hOutput, DWORD fontIndex);
BOOL WINAPI GetConsoleFontInfo(HANDLE hOutput, BOOL bMaximize, DWORD numFonts, CONSOLE_FONT* info);
DWORD WINAPI GetNumberOfConsoleFonts();
BOOL WINAPI SetConsoleIcon(HICON hIcon);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28648 次 |
| 最近记录: |