Adicione a opção 'Abrir o PowerShell aqui como administrador' ao menu de contexto da pasta

15

Eu estava procurando uma maneira de abrir um prompt elevado do Powershell no Windows Explorer diretamente, através do menu de contexto da pasta em que desejo abrir o prompt.
Estou usando o Windows 10 e todos os exemplos que vi até agora têm foi para versões mais antigas do Windows. Eu já tinha esse trabalho no Windows 8.1, mas a atualização para 10 o quebrou. Eu até consegui isso trabalhando no Windows 10 brevemente, mas uma atualização quebrou novamente (dez 2015).

Alguém sabe a maneira correta de adicionar esse recurso ao Windows? Ou está fadado a ser substituído por futuras atualizações do Windows?

Astravagrant
fonte

Respostas:

20

Esta é a única maneira que conheço de adicionar atualmente esse recurso aos menus de contexto no Windows Explorer:

[Execute este script em um prompt do PowerShell elevado]

$menu = 'Open Windows PowerShell Here as Administrator'
$command = "$PSHOME\powershell.exe -NoExit -NoProfile -Command ""Set-Location '%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 ''
}

Este script foi retirado do seguinte link:

http://www.powershellmagazine.com/2013/06/25/pstip-how-to-start-an-elevated-powershell-from-windows-explorer/

Estou 99% certo de que foi assim que fiz antes do patch mais recente do Windows 'remover' minha configuração de registro (ele também removeu outras personalizações, como o status de inicialização do numlock, mas isso é menos irritante).

Se alguém conhece uma abordagem melhor; ou seja, que não será volátil, entre em contato e aceitarei essa resposta.

Astravagrant
fonte
1
O Windows 10 certamente é uma dor no UAC. Mesmo "desativado" é uma dor de cabeça constante ._. A única razão pela qual não voltei ao Windows 7 é porque agora tenho quatro telas.
Deadly-Bagel
4
Remova a -NoProfileopção para carregar seu perfil automaticamente quando você iniciar o prompt.
26616 Ian Kemp
Observe que se você deseja adicionar uma opção de menu de contexto "Executar script como administrador" para os arquivos ps1, a seção 2 desta resposta mostra como: stackoverflow.com/a/57033941/2441655
Venryx
1

Eu tenho feito isso assim. Faz parte de um pequeno menu que fiz. Edite-o ao seu gosto:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\OAPS.Tools]
"ImpliedSelectionModel"=dword:00000001
"Icon"="imageres.dll,-5373"
"ExplorerCommandHandler"="{BF0AC53F-D51C-419F-92E3-2298E125F004}"
@="Admin Pshell Here"
pbanj
fonte
0

Aqui está uma cópia do arquivo reg que eu uso para adicionar o CMD e o POWERSHELL ao menu de contexto BACKGROUND de qualquer pasta no Windows 10:

Windows Registry Editor Version 5.00

;Add_Open_CMD_and_Powershell_to_Context_Menu.reg

;Right-Click Background only

;CMD Prompt

[HKEY_CLASSES_ROOT\Directory\Background\shell\01MenuCmd] "MUIVerb"="Command Prompts" "Icon"="cmd.exe" "ExtendedSubCommandsKey"="Directory\Background\ContextMenus\MenuCmd"

[HKEY_CLASSES_ROOT\Directory\Background\shell\01MenuCmd] "MUIVerb"="Command Prompts" "Icon"="cmd.exe" "ExtendedSubCommandsKey"="Directory\Background\ContextMenus\MenuCmd"

[HKEY_CLASSES_ROOT\Directory\Background\ContextMenus\MenuCmd\shell\open] "MUIVerb"="Command Prompt" "Icon"="cmd.exe"

[HKEY_CLASSES_ROOT\Directory\Background\ContextMenus\MenuCmd\shell\open\command] @="cmd.exe /s /k pushd \"%V\""

[HKEY_CLASSES_ROOT\Directory\Background\ContextMenus\MenuCmd\shell\runas] "MUIVerb"="Command Prompt Elevated" "Icon"="cmd.exe" "HasLUAShield"=""

[HKEY_CLASSES_ROOT\Directory\Background\ContextMenus\MenuCmd\shell\runas\command] @="cmd.exe /s /k pushd \"%V\""

; PowerShell

[HKEY_CLASSES_ROOT\Directory\Background\shell\02MenuPowerShell] "MUIVerb"="PowerShell Prompts" "Icon"="powershell.exe" "ExtendedSubCommandsKey"="Directory\Background\ContextMenus\MenuPowerShell"

[HKEY_CLASSES_ROOT\Directory\Background\shell\02MenuPowerShell] "MUIVerb"="PowerShell Prompts" "Icon"="powershell.exe" "ExtendedSubCommandsKey"="Directory\Background\ContextMenus\MenuPowerShell"

[HKEY_CLASSES_ROOT\Directory\Background\ContextMenus\MenuPowerShell\shell\open] "MUIVerb"="PowerShell" "Icon"="powershell.exe"

[HKEY_CLASSES_ROOT\Directory\Background\ContextMenus\MenuPowerShell\shell\open\command] @="powershell.exe -noexit -command Set-Location '%V'"

[HKEY_CLASSES_ROOT\Directory\Background\ContextMenus\MenuPowerShell\shell\runas] "MUIVerb"="PowerShell Elevated" "Icon"="powershell.exe" "HasLUAShield"=""

[HKEY_CLASSES_ROOT\Directory\Background\ContextMenus\MenuPowerShell\shell\runas\command] @="powershell.exe -noexit -command Set-Location '%V'"

bobkush
fonte