Windows10文件目录下 Shift+右键菜单添加打开管理员Powershell窗口

背景(可略过)

  随着微软Win10系统的流行,更加强大的PowerShell崭露头角,采用.net架构编写的Powershell性能更加强大,实现的功能也丰富。此时略显老迈的CMD心有力而力不足。而微软也尝试使用各种方法使PowerShell取代目前的CMD。

看看win10 1903的PowerShell版本都5.1了。

  从Win10Build14971开始,用户已经无法通过按住Shift+右击文件目录或者资源管理器空白处来选择“在此处打开命令提示符”了。

调试程序的时候,显示权限不够,又没了熟悉的Shift+右键打开cmd(管理员)那没办法,只好又打开管理员 Powershell,然后...对于这种操作,我是拒绝的。所以就来分享如何在文件目录下(包括桌面)通过 Shift+右键打开管理员 Powershell。

下面进入正题。

手动设置

这种方式要用到注册表,不懂的同学建议做好备份,避免注册表出问题,简单的方法可以直接往下撸。

1 打开注册表编辑器

按win+R,输入 regedit ,进入注册表编辑器。

2 进入编辑右键菜单的注册表分支

在路径下输入:HKEY_CLASSES_ROOT\Directory\Background\shell

进入相应分支。

  

3 新建注册表项

3.1 创建菜单

(1)右击 shell 项,新建一个名为 PowershellAdmin 的项。

(2)在 PowershellAdmin 项内:

  1. 新建字符串值,命名为 Extended,数值数据为空。
    功能:使右键选项在平时不显示,在按下 Shift时才会显示。
  2. 新建字符串值,命名为 MUIVerb,双击该项修改数值数据为:在此处打开管理员 Powershell 窗口(A)
    功能:UI 嘛,界面啊,所以它就是为了让菜单中显示的是“在此处打开管理员 Powershell 窗口(A)”,不添加的话,右击是显示的是项的名字(PowershellAdmin)。
  3. 新建字符串值,命名为 NoWorkingDirectory,数值数据为空。
    功能:emmm,不是很清楚,在网上查查到这个     ->     “在此处打开 Powershell 窗口(S)”这条命令相关的注册表项里面有这个,我也就加上了,估计是和这个项相关的命令在哪可以生效执行有关系。
  4. 新建 DWORD(32位值)(D),命名为 ShowBasedOnVelocityId,数值数据为:基数十六进制(H)的 639bc8

OK,以上执行完毕后,看起来应该是这个样子滴~

 

此时,shift+右键就有“在此处打开管理员 Powershell 窗口(A)”了。

 

 

3.2 为菜单创建操作命令

菜单界面是有了,但还没有与之匹配的命令,没有 command 命令的话,这个菜单只是一个空壳,点击它会提示没有找到可以执行的应用程序。就像下面这样。

接下来创建命令项。右击 PowershellAdmin 项,新建名为 command 的项。

在右侧 (默认) 字符串里填入如下命令:

 powershell.exe -command Start-Process powershell -ArgumentList \"-noexit\",\"Set-Location -literalPath '%V'\" -Verb runAs 

命令释义:

  powershell.exe -command Start-Process powershell

    这部分是让普通的 Powershell 再打开一个 Powershell 进程。

  -ArgumentList \"-noexit\",\"Set-Location -literalPath ‘%V‘\"

    这部分是为新的 Powershell 进程指定了参数,-noexit,不退出窗口,Set-Location -literalPath ‘%V‘,定位到当前位置。

  -Verb runAs

    使用“以管理员身份运行”选项启动新的 PowerShell 进程。

如此,就大功告成!!!以上步骤都完成后,就可以实现在当前位置打开管理员 Powershell 了。当然,不想折腾的话也可以使用下面这种方法。

reg文件添加

这种方法比较简单粗暴,直接合并注册表就可以了。

新建一个文本文档,复制下面的代码,选择另存为,文件类型为所有文件,编码选择ANSI,文件名为PowershellAdmin.reg(文件名可以随便起,但是后缀名需要是.reg,表明它的文件类型是注册表项),然后双击 PowershellAdmin.reg 合并注册表。

点击是,然后提示“已成功添加到注册表中”,欧克,搞定!!!

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\PowershellAdmin]
"Extended"=""
"NoWorkingDirectory"=""
"ShowBasedOnVelocityId"=dword:00639bc8
@=""
"MUIVerb"="在此处打开管理员 Powershell 窗口(A)"

[HKEY_CLASSES_ROOT\Directory\Background\shell\PowershellAdmin\command]
@="powershell.exe -command Start-Process powershell -ArgumentList \\\"-noexit\\\",\\\"Set-Location -literalPath ‘%V‘\\\" -Verb runAs"

点击效果

首先会弹出来一个普通的 Powershell 窗口来执行命令,这个窗口会自动退出

然后会弹出UAC用户账户控制窗口,点击确定后,会弹出管理员模式的 Powershell 窗口,并定位到当前路径

参考资料

https://blog.csdn.net/PiPiSenLetsGo/article/details/86777087

 

posted @ 2020-04-23 20:52  雾灯  阅读(1054)  评论(0编辑  收藏  举报