将“在此处以管理员身份打开Powershell”选项添加到文件夹上下文菜单


15

我一直在寻找一种方法,可以通过要在其中打开提示的文件夹的上下文菜单直接从Windows资源管理器中打开提升的Powershell提示。
我使用的是Windows 10,到目前为止我看到的所有示例都包含适用于旧版本的Windows。我以前在Windows 8.1上可以使用此功能,但是更新到10时破坏了它。我什至暂时在Windows 10上使用了该功能,但更新再次将其中断(2015年12月)。

有谁知道将此功能添加到Windows 的正确方法?还是注定要被Windows的将来更新覆盖?

Answers:


20

这是我目前知道将此功能添加到Windows资源管理器中的上下文菜单的唯一方法:

[在提升的Powershell提示中运行此脚本]

$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

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

这是我用来将CMD和POWERSHELL都添加到Windows 10中任何文件夹的Background上下文菜单的reg文件的副本:

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.