Додати контекстне меню папки "Відкрити Powershell тут як адміністратор"


15

Я шукав спосіб відкрити підвищений запит Powershell з Windows Explorer безпосередньо через контекстне меню папки, в якій я хочу відкрити підказку.
Я використовую Windows 10 і всі приклади, які я бачив до цього часу був для старих версій Windows. Раніше я працював у Windows 8.1, але оновлення до 10 зламало його. Я навіть коротко працював над Windows 10, але оновлення було порушено знову (грудень 2015).

Хтось знає правильний спосіб додавання цієї функції до Windows? Або приречено бути перезаписаним майбутніми оновленнями для Windows?

Відповіді:


21

Це єдиний спосіб, яким я знаю, на даний момент додавати цю функцію до контекстних меню в Windows Explorer:

[Запустіть цей скрипт у запиті з підвищеними повноваженнями]

$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 ''
}

Цей сценарій взято з наступного посилання:

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

Я на 99% впевнений, що це було так, як я це робив до того, як останній патч Windows "видалив" моє налаштування реєстру (він також видалив деякі інші налаштування, наприклад, стан завантаження numlock, але це менш дратує).

Якщо хтось знає кращий підхід; тобто це не буде мінливим, то, будь ласка, повідомте мене, і я прийму цю відповідь.


1
Windows 10, безумовно, болить UAC. Навіть "інвалід" - це постійний головний біль ._. Єдина причина, що я не повернувся до Windows 7 - це те, що зараз у мене є 4 екрани.
Смертельно-Багель

4
Зніміть -NoProfileкомутатор, щоб автоматично завантажувати профіль під час запуску запиту.
Ян Кемп

Зверніть увагу , що якщо ви хочете додати «Виконати скрипт в якості адміністратора» опція контекстного меню для ps1 самих файлів, розділ 2 Цього відповідь показує , як: stackoverflow.com/a/57033941/2441655
Venryx

Це чудово працює, як для Windows 1909. Це відкриває синю віконну версію PowerShell. Деякі інші рішення відкривають невелике чорне вікно фону, яке також не працює.
usr

1

Я робив це так. Це частина невеликого меню, яке я склав. Відредагуйте його на свій смак:

[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"

0

Ось копія файлу reg, який я використовую, щоб додати як CMD, так і POWERSHELL до контекстного меню BACKGROUND будь-якої папки в 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'"

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.