読者です 読者をやめる 読者になる 読者になる

tech.guitarrapc.cóm

C#, PowerShell, Unity, Cloud, Serverless Technical Update and Features

Windows 8.1 RTM と Windows Server 2012 R2 で win + x のシェルを コマンドプロンプトから Windows PowerShell に変更する

PowerShell Windows

Windows 8.1 Preview や Windows Server 2012 R2 Preview を触っていた人は PowerShell が Win + x のメニューでデフォルトになっているのを見て喜んだことでしょう。

しかし、 Windows 8.1 RTM や Windows Server 2012 RTM を見ると、Windows 8 / Windows Server 2012 同様に コマンドプロンプトになっているではありませんか。

今回は、これをWindows PowerShell に変更することを考えてみましょう。

GUI で設定

自分のPCだけならGUIで十分ですね。

1.タスクバーを右クリック > プロパティ

2.ナビゲーション > 左下隅を右クリックするか、Windows キー + X キーを押したときに表示されるメニューで、コマンドプロンプトを Windows PowerShell に置き換える(C) が無効になっています。

3.左下隅を右クリックするか、Windows キー + X キーを押したときに表示されるメニューで、コマンドプロンプトを Windows PowerShell に置き換える(C) を有効にして適用します。

4.変更が反映されています。

レジストリから設定

PowerShell を使えば、リモートPCのレジストリ変更も簡単です。

PowerShell でのレジストリキー変更スクリプトを紹介しておきましょう。

Enable-WindowsPowerShellonWinX

キーの確認

レジストリキーを確認します。 H_KEY_CURRENT_USER の以下のキーが該当します。

$PowerShellPath = "registry::HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced"
$PowerShellKey = "DontUsePowerShellOnWinX"

(Get-ItemProperty -Path $PowerShellPath).$PowerShellKey

デフォルト = コマンドプロンプトが有効 では、 1になっています。 この値を0 にすることで、 Windows PowerShell が Win + X で有効になります。

キーの変更

以下のスクリプトで変更が可能です。 変更はExplorer.exeの再起動で読み込まれるため組込んでいます。

  • 中には LogOff/LogOn がいると書かれている記事がありますがExplorerの再起動で足りる場合が多いでしょう。

Win + X で Windows PowerShell を有効にする

$PowerShellPath = "registry::HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced"
$PowerShellKey = "DontUsePowerShellOnWinX"

# Check Win + X Shell Status
(Get-ItemProperty -Path $PowerShellPath).$PowerShellKey

# Enable PowerShell on Win + X
Set-ItemProperty -Path $PowerShellPath -Name $PowerShellKey -Value 0 -PassThru

# Restart Explorer.exe then change take effect
Get-Process | where Name -eq Explorer |Stop-Process -Force -PassThru | %{Start-Process C:\Windows\explorer.exe}

Win + X で Windows PowerShell を無効にする

$PowerShellPath = "registry::HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced"
$PowerShellKey = "DontUsePowerShellOnWinX"

# Check Win + X Shell Status
(Get-ItemProperty -Path $PowerShellPath).$PowerShellKey

# Disable PowerShell on Win + X
Set-ItemProperty -Path $PowerShellPath -Name $PowerShellKey -Value 1 -PassThru

# Restart Explorer.exe then change take effect
Get-Process | where Name -eq Explorer |Stop-Process -Force -PassThru | %{Start-Process C:\Windows\explorer.exe}

まとめ

どうしてこうなった Microsoft