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 でのレジストリキー変更スクリプトを紹介しておきましょう。
キーの確認
レジストリキーを確認します。 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