web-dev-qa-db-ja.com

PowerShellショートカットの「デフォルト」の色でpowershell.exeを起動するにはどうすればよいですか?

プレインストールされたショートカットの1つから起動すると、PowerShellウィンドウの素敵な青い色が表示されます。ただし、powershell.exeを手動で起動すると、これらの色は表示されず、黒/白が表示されます:(

これは、デフォルトの設定がショートカット(.lnk)ファイルで設定されているためです。

PowerShell shortcut colour settings

Explorerのコンテキストメニューに「PowerShell Prompt Here」というエントリがあります。通常のショートカットと同じ素敵な色を使用してPowerShellを起動したいと思います。黒はひどく、異なる色のウィンドウを使用するのは混乱します(特に、昔ながらのコマンドウィンドウを黒で頻繁に開いている場合は特にそうです!)。

これを設定しようとすると、これまでに2つの問題が見つかりました。

  1. PowerShell内から色を設定すると、特定の値(ConsoleColor列挙型)のみが許可され、デフォルトのショートカットの値と一致するものはありません。
  2. PSプロファイル内で色を設定すると、後で書き込まれたテキストのみが新しい背景色を尊重します。 「cls」を追加すると、開始時に元の色の不快なフラッシュが発生します。

PowerShellをコマンドラインから起動する方法はありますか(つまり、エクスプローラーのコンテキストメニュー項目としてレジストリに埋め込むことができます)、ショートカットと同じ設定を使用しますか?

33
Danny Tuppeny

これは本当に簡単な方法です:

1. .LNKをPATHEXT変数に追加します。

スタート-> "sysdm.cpl"を実行->詳細設定->環境変数

システム変数を下にスクロールし、PATHEXTをダブルクリックします

.LNKを追加します。以下に示すように:

Path Extension

2デフォルトの「Windows Powershell.lnk」をコピーします

Copy-Item "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories\Windows PowerShell\Windows PowerShell.lnk" "C:\Windows\System32\powershell.lnk"

3.実行プロンプトから「powershell」と入力すると、デフォルトのコンソールの色/構成が表示されます。

C:\ Windows\System32の.lnkを好みに合わせてさらにカスタマイズできます。

これは、許容される拡張子のリストに.lnkを追加し、デフォルトでc:\ windows\system32が検索パス(PATHシステム変数)の最初の項目であるためにのみ機能することに注意してください。

これは、cmd.exeを介して起動された場合、コンソールをカスタマイズしません。

4. [ここでPowershellを実行]コンテキストメニューからこれを機能させるには、これを.regファイルとして保存し、インポートします。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\Shell\PowerShellHere\command]
@="C:\\WINDOWS\\system32\\cmd.exe /c start powershell -NoExit \"cd '%1';(get-Host).ui.rawui.windowtitle = 'Oompa Loompa'\""

[HKEY_CLASSES_ROOT\Directory\Shell\PowerShellHere\command]
@="C:\\WINDOWS\\system32\\cmd.exe /c start powershell -NoExit \"cd '%1';(get-Host).ui.rawui.windowtitle = 'Oompa Loompa'\""

Cmd.exeを使用して「start」を呼び出し、powershell.lnkを起動し、現在の作業ディレクトリを引数として渡します。まだアドレスバーから機能しないようです。 45分前に家に帰るべきでしたが、あなたの問題は解決するのが楽しかったです! :)

ボーナスポイント:Powershellに送信されたコマンドをスレッド化できます。そのため、Powershellコンソールのtitle属性を変更する場合:

\"cd '%1';(get-Host).ui.rawui.windowtitle = 'Oompa Loompa'"

コマンド間にセミコロンを追加するだけです。

ハッピーシェリング

22
Rex Hardin

プロファイルスクリプト($ profileが指す)を編集し、希望の色を自分で設定します。

# set regular console colors
[console]::backgroundcolor = "darkmagenta"
[console]::foregroundcolor = "darkyellow"

# set special colors

$p = $Host.privatedata

$p.ErrorForegroundColor    = "Red"
$p.ErrorBackgroundColor    = "Black"
$p.WarningForegroundColor  = "Yellow"
$p.WarningBackgroundColor  = "Black"
$p.DebugForegroundColor    = "Yellow"
$p.DebugBackgroundColor    = "Black"
$p.VerboseForegroundColor  = "Yellow"
$p.VerboseBackgroundColor  = "Black"
$p.ProgressForegroundColor = "Yellow"
$p.ProgressBackgroundColor = "DarkCyan"

# clear screen
clear-Host
31
x0n

concfg tool および scoop を使用して、Powershellの色とフォントをインストールすると非常に便利だとわかりました。

  1. Scoopをインストールします。

    iex (new-object net.webclient).downloadstring('https://get.scoop.sh')
    
  2. Concfgをインストールします。

    scoop install concfg
    
  3. インストール Solarized theme

    concfg import solarized
    

著者のおかげです!

11
Artyom

システムメニュー(ウィンドウの左上にあるPowerShellアイコン)をクリックし、[デフォルト]をクリックします。ここでデフォルトの色を変更することができ、PowerShell Prompt Hereコマンドで尊重されます。

From: https://superuser.com/a/523017/109736

6
Marc Stober

これを行う正しい方法は、レジストリを使用することです

cd hkcu:/console
$0 = '%systemroot%_system32_windowspowershell_v1.0_powershell.exe'
ni $0 -f
sp $0 ColorTable00 0x00562401
sp $0 ColorTable07 0x00f0edee
5
Steven Penny
  1. regeditコマンドを実行してレジストリエディターを開きます
  2. HKEY_CURRENT_USER > CONSOLEおよび念のためにエクスポートしてフォルダ全体をバックアップします
  3. フォルダーを削除する

Powershellを再起動します。配色はデフォルトにリセットされている必要があります。

注:PowerShellに関連する他の設定(またはコマンドプロンプト、Git Bashなど)を保持する場合は、コンソールフォルダーをさらに調べて適切なキーを削除してください

3
rak

これが私の解決策でした(システムとして起動するスクリプトに色を設定する)。あなたが必要とする以上のものがあるかもしれません(私自身の答えを見てください):

https://superuser.com/questions/891519/using-psexec-to-launch-powershell-session-as-system-with-specific-window-attrib

1
montag

@ rex-hardin excellent answer に基づいて、ここでregeditコンテンツを改善してアイコンを追加し、PowerShellネイティブ引数を使用して正しいパスで開始します。

コンテキストメニューは、ディレクトリの背景を右クリックしたとき、およびディレクトリアイコンを直接右クリックしたときに有効になります。

もちろん、デフォルトの背景とまったく同じ青色の背景を持つコンソールも実行します。

1.「.LNK」拡張子を%PATHEXT%環境変数に追加します

これにより、システムは.lnk拡張子(ショートカットの隠し拡張子)でファイルを実行できます

2.デフォルトのPowerShellショートカットリンクをpowershellファイルとしてsystem32にコピーします

これにより、powershellコマンドがsystem32フォルダー(%PATH%にある)からショートカットを起動できます。

エクスプローラー(コピー+名前の変更)または以下のコマンドラインを使用します。

Copy-Item "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories\Windows PowerShell\Windows PowerShell.lnk" "C:\Windows\System32\powershell.lnk"

3.以下のコードをpowershell_here.regファイルに追加して実行します。

powershell_here.reg

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\directory\background\Shell\PowerShell]
@="PowerShell Here"
"Icon"="%SystemRoot%\\system32\\WindowsPowerShell\\v1.0\\powershell.exe"

[HKEY_CLASSES_ROOT\directory\background\Shell\PowerShell\command]
@="cmd.exe /c start powershell -NoExit -NoProfile -Command Set-Location -LiteralPath '%V'"

[HKEY_CLASSES_ROOT\directory\Shell\PowerShell]
@="PowerShell here"
"Icon"="%SystemRoot%\\system32\\WindowsPowerShell\\v1.0\\powershell.exe"

[HKEY_CLASSES_ROOT\directory\Shell\PowerShell\command]
@="cmd.exe /c start powershell -NoExit -NoProfile -Command Set-Location -LiteralPath '%L'"

enter image description here

0
Donatello