Introduction

備忘録。
PowerShellは立ち上がりの遅さが嫌いです。
スクリプトを書く分にはバッチよりも全然いいんですけど。

Resolution

解決策はこちら。

下記の方が教えてくれました。

下のコマンドを全て、管理者権限を付けて起動したPowerShellに貼り付けます。
スクリプトファイルを作る必要はないです。

1
2
3
4
5
6
7
8
$menu = 'コマンドウィンドウをここで開く(管理者)'
$command = "cmd.exe /s /k pushd ""%V"""
'directory', 'directory\background', 'drive' | ForEach-Object {
New-Item -Path "Registry::HKEY_CLASSES_ROOT\$_\shell" -Name runas\command -Force |
Set-ItemProperty -Name '(default)' -Value $command -PassThru |
Set-ItemProperty -Path {$_.PSParentPath} -Name '(default)' -Value $menu -PassThru |
Set-ItemProperty -Name HasLUAShield -Value ''
}

削除する場合は下記。
こちらも、管理者権限を付けて起動したPowerShellに貼り付けます。
スクリプトファイルを作る必要はないです。

1
2
3
'directory', 'directory\background', 'drive' | ForEach-Object {
Remove-Item -Path "Registry::HKEY_CLASSES_ROOT\$_\shell\runas" -Force -Recurse
}