題 Powershell使用“run”執行並使用固定圖標的方式有何不同?


在我的Windows 7上,如果我通過“Win + R”運行PowerShell,“powershell”它將以黑色背景上的白色文本開始,並且設置受到影響 [HKEY_CURRENT_USER\Colors]。例如,我可以輕鬆地將默認的“紅色”顏色更改為更亮:

enter image description here

但是,如果我將這個powershell固定到Windows 7超級棒並通過單擊超級欄圖標啟動它,它將顯示一些瘋狂的藍白顏色,我無法改變O_O:

enter image description here

為什麼這樣的差異,並且是配置固定PowerShell的顏色的任何方式,我可以配置通過“運行”命令啟動的powrshell。


4
2017-12-22 10:23


起源


如果你在每個窗口中運行“$ profile”,它是否顯示相同的配置文件?還是不同的? - Logman
@Logman這是我檢查的第一件事。完全相同的個人資料。你可以自己檢查 - 任何Windows 7都像我描述的那樣:( - grigoryvp
當我這樣做時,字體顏色幾乎或完全匹配。但背景顏色不同:一個是黑色,另一個是深藍色。 - Logman


答案:


TL; DR 

  1. 運行powershell.exe
  2. ALT - 空間  - > 屬性
  3. 根據需要更改您的設置。

powershell.exe是一個控制台程序。當控制台程序運行時,Windows通過查看一堆位置來配置控制台。

首先它看著 捷徑 你啟動的(.LNK文件)。這就是您通常在開始菜單,桌面和任務欄中看到的內容。如果你點擊快捷方式並選擇屬性,你會看到一堆這些選項。

對於未在快捷方式中指定的任何選項(或者如果直接啟動.EXE,沒有快捷方式),Windows將查看註冊表。

我找不到涉及的註冊表項的完整列表,但以下是我所知道的:

HKEY_CURRENT_USER\Console
HKEY_CURRENT_USER\Software\Microsoft\Command Processor
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor

但等等,還有更多!

在控制台窗口中打開“系統”菜單時,您會看到“屬性”和“默認值”。

默認值修改上述註冊表項之一。

這些屬性適用於當前打開的控制台窗口以及啟動它的快捷方式。如果由於直接打開.EXE而未使用快捷方式,則會轉到特殊的註冊表項,例如:

HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe

但那還不是全部!

控制台程序可以修改自己的顏色。例如,在CMD中,您可以執行以下操作:

C:\>color f0

在PowerShell中:

PS> $Host.UI.RawUI.BackgroundColor = 7

這些設置不會以任何方式持久存在。


13
2017-12-22 15:01



這是一個神秘的東西。我相信我錯過了一些細節。希望別人可以幫幫我! - Jay Bazuzi
+1周杰倫,我認為周杰倫說得對,取決於ps的運行方式和位置,窗口打開時會顯示該快捷方式或exe的屬性 - Logman
我檢查了提供的註冊表路徑 - 它們沒有關於固定PowerShell使用的白/藍顏色的任何信息。在其中添加自定義顏色不會影響固定的PowerShell :(。因此問題仍然有效 - 存儲固定的PowerShell設置以及如何更改它們:)。 - grigoryvp
@EyeofHell:你看過快捷方式了嗎?我檢查了我的並確認在那裡設置了白色/藍色配色方案,而不是在註冊表中。我正在編輯我的答案,以便更清楚。 - Jay Bazuzi
這是一個很好的答案。對於它的價值,我個人在powershell配置文件中設置前景色和背景色(Get-Help about_Profiles)。這樣我可以為我的常規帳戶和我的域管理員帳戶使用不同的顏色,所以我希望不要嘗試作為域管理員的愚蠢的事情。 - EBGreen