У меня есть следующий скрипт в файле ps1:
Write-Host "Hello world" -ForegroundColor White -BackgroundColor DarkMagenta
Если я сам открою окно Powershell и вызову скрипт (просто запустив . \ myscript.ps1), то я получу красивый темный пурпурный фон. Однако, если я щелкну правой кнопкой мыши файл ps1 и выберу «Запускать с помощью Powershell», у меня не будет темно-пурпурного фона. Однако другие цвета фона работают нормально.
Что происходит и как заставить их вести себя так же?
Вы видели: stackoverflow.com/questions/36116326/…?
16 цветов консоли определяются ColorTable00
.. ColorTable15
в реестре под HKCU: console или любым другим ярлыком, используемым для запуска приложения.
В этой слегка переработанной таблице показаны обычные записи и две разные записи 05 и 06 для PowerShell.
Blue Green Red
> REG QUERY "hkcu\console" |find /I "ColorTable"
ColorTable00 REG_DWORD 0x000000 0 0 0
ColorTable01 REG_DWORD 0x800000 128 0 0
ColorTable02 REG_DWORD 0x008000 0 128 0
ColorTable03 REG_DWORD 0x808000 128 128 0
ColorTable04 REG_DWORD 0x000080 0 0 128
ColorTable05 REG_DWORD 0x800080 128 0 128
ColorTable06 REG_DWORD 0x008080 0 128 128
ColorTable07 REG_DWORD 0xc0c0c0 192 192 192
ColorTable08 REG_DWORD 0x808080 128 128 128
ColorTable09 REG_DWORD 0xff0000 255 0 0
ColorTable10 REG_DWORD 0x00ff00 0 255 0
ColorTable11 REG_DWORD 0xffff00 255 255 0
ColorTable12 REG_DWORD 0x0000ff 0 0 255
ColorTable13 REG_DWORD 0xff00ff 255 0 255
ColorTable14 REG_DWORD 0x00ffff 0 255 255
ColorTable15 REG_DWORD 0xffffff 255 255 255
Blue Green Red
HKCU\console\%SystemRoot%_System32_WindowsPowerShell_v1.0_powershell.exe
ColorTable05 REG_DWORD 0x562401 1 86 36
ColorTable06 REG_DWORD 0xf0edee 238 237 240
Это на Windows Server 2016. Я могу найти несколько статей, в которых говорится об этом, но у меня нет их решений для работы: leeholmes.com/blog/2008/06/01/powershells-noble-blue