Windows10文件目录下添加 Shift+右键打开管理员Powershell窗口
背景(可略过)
目前在调试 Python 程序,遇到了一个问题:当程序中包含多线程时,使用 IDLE 运行是不会执行多线程的语句的,在网上一顿搜罗了解到这种情况可以换成在命令行下执行。好像用 PyCharm 也可以,没有验证过。emmm,之前运行包含多线程的程序都是在 Linux 环境下(树莓派 Raspain、Ubuntu16.04、Ubuntu18.04)操作的,本身就是 dash 命令行。没想到 Windows 下还有这种问题。
命令行就命令行吧,所以我选择 Powershell。在我放程序的位置,直接 Shift+鼠标右键,右键菜单里在此处打开 Powershell 窗口(S),这样就省了再去各种 cd 了。OK,运行程序吧。然后,哼哼,要是能直接成功的话,这篇博客也就不会出现了。Python 告诉我权限不够,那没办法,只好又打开管理员 Powershell,然后,各种 cd,对于这种操作,我是拒绝的。所以开始想办法,在文件目录下(包括桌面)通过 Shift+右键打开管理员 Powershell。变成下图这种效果。

下面进入正题。
折腾向
这种方式比较折腾,适合喜欢捣鼓的同学,简单的方法可以直接往下看简单粗暴向
1 打开注册表编辑器
单击开始,输入 regedit ,进入注册表编辑器。如下图,我电脑系统是1809版本,所以又多出来了右边的框,可以右击注册表编辑器,固定到开始屏幕,方便下次使用。

2 进入编辑右键菜单的注册表分支
在路径下输入:HKEY_CLASSES_ROOT\Directory\Background\shell
进入相应分支。

3 新建注册表项
3.1 创建菜单
(1)右击 shell 项,新建一个名为 PowershellAdmin 的项。

(2)在 PowershellAdmin 项内:
- 新建字符串值,命名为 Extended,数值数据为空。

功能:使右键选项在平时不显示,在按下 Shift时才会显示。
- 新建字符串值,命名为 MUIVerb,双击该项修改数值数据为:在此处打开管理员 Powershell 窗口(A)
功能:UI 嘛,界面啊,所以它就是为了让菜单中显示的是“在此处打开管理员 Powershell 窗口(A)”,不添加的话,右击是这个样子滴。

显示的就是 PowershellAdmin 项的名称。
PS:这里我本来是想在 (默认) 这个字符串值里直接 @shell32.dll 里面的字符串资源的,无奈没有找到相应的字符串(不一定没有哈),所以就用了这个方法。其实直接在 (默认) 里面写“在此处打开管理员 Powershell 窗口(A)”,这样也是可以的,不过我更喜欢前者。 - 新建字符串值,命名为 NoWorkingDirectory,数值数据为空。
功能:emmm,我也不是很清楚,在网上查也查不到。“在此处打开 Powershell 窗口(S)”这条命令相关的注册表项里面有这个,我也就加上了,估计是和这个项相关的命令在哪可以生效执行有关系。 - 新建 DWORD(32位值)(D),命名为 ShowBasedOnVelocityId,数值数据为:基数十六进制(H)的 639bc8
OK,以上几部执行完毕后,右侧看起来应该是这个样子滴

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 了。当然,不想折腾的话也可以使用下面这种方法。
简单粗暴向
这种方法比较简单粗暴,直接合并注册表就可以了。
新建一个文本文档,复制下面的代码,选择另存为,文件类型为所有文件,编码选择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"
最终效果
Shift+右击菜单

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

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

参考资料
Win10添加右键打开cmd和Powershell窗口(管理员/非管理员)
Microsoft.PowerShell.Management.Start-Process
Windows10文件目录下添加 Shift+右键打开管理员Powershell窗口的更多相关文章
- Windows 桌面和文件夹的右键->打开命令行窗口
Windows 桌面和文件夹的右键->打开命令行窗口 1.先按下shift,再点鼠标右键运行CMD,(不是管理员权限) 上图是我已经加了右键的,并且 系统设置了 ps代替cmd,所以是“在此处 ...
- UE添加鼠标右键打开
重装了下系统,有一些工具,不用重新安装还是能用的,比如UE.pl/sql,就当是绿色软件了.但是有些在鼠标右键里的功能没有了 ,比如UE的右键打开. 可以这样修改:打开UltraEdit->高级 ...
- 将Editplus添加到右键打开菜单
因为自己一直用Editplus作为文本打开工具,新的电脑将压缩文件复制了过来,但是没有右键打开了. 第一打开注册表 在命令框中输入regedit 第二在注册表中输入选项 如下图所示在下拉菜单中新建Ed ...
- Windows10下设置Shift+右键增加cmd
https://blog.csdn.net/wyx0712/article/details/82120806
- 执行程序(例如UltraEdit)在WIN7下添加到右键菜单
把下面提供的代码复制到记事本,保存为注册表文件(*.reg),右键合并即可.注意把最后一行换成你自己的路径. Windows Registry Editor Version 5.00 [HKEY_CL ...
- Windows 10恢复Shift+右键打开命令提示符窗口
导入以下注册表即可. Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Directory\Background\shell\cmd1] ...
- 【Windows】+ windows下在某一文件夹下按“shift+鼠标右键”打开CMD窗口
前言:没更改之前是打开的powershell窗口,超不习惯 新建一个txt文件,然后复制以下代码,然后保存为OpenCmdHere.reg 格式,然后双击即可 Windows Registry Edi ...
- Win10.Shift+鼠标右键_CMD(管理员)
1.资料: 1.1.Windows10下设置Shift+右键增加cmd - wyx0712的博客 - CSDN博客.html(https://blog.csdn.net/wyx0712/article ...
- Windows10右键添加“在此处打开命令窗口"
今天跑代码时用到了Powershell,有一个环境变量死活都找不到,无奈只好重新回到cmd命令行测试,结果立马就跑通了.-_-|| 由于现在Win10默认右键只有Powershell,所以为了以后方 ...
随机推荐
- linux内核裁剪及编译可加载模块
一:linux内核裁剪: 1:编译内核源码: 今天的重点内容是内核驱动的编写,在编写驱动之前首先的了解linux内核源码,linux主要是由五个子系统组成:进程调度,内存管理,文件系统,网络接口以及进 ...
- Switch在swift中的使用
switch的简单使用: 相比 C 和 objective - C 中的 switch 语句,Swift 中的 switch 语句不会默认的掉落到每个 case 的下面进入 另一个 case.相反,第 ...
- SSM-MyBatis-03:Mybatis中简单的整合日志
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥-------------简单的整合日志,首先提供俩种方式,log4j和logback简单的说一下logback,他由log4j的原作者编 ...
- app后端设计(7)-- 项目管理
移动互联网行业是个快速发展的行业,需求不断变化,产品更新快.基于移动互联网的以上特点,在开发产品的过程中,我们放弃了传统的瀑布流开发模型,引入了精益的理念和scrum这个敏捷开发框架,下面谈谈实施过程 ...
- 用Visual Studio Code Debug世界上最好的语言(Mac篇)
用Visual Studio Code Debug世界上最好的语言(Mac篇) 首先,你要有台Macbook Pro,接着才继续看这个教程. PS:Windows用户看这里用Visual Studio ...
- 使用Eclipse远程调试
在一般的开发中,有事因为项目需要,测试环境是在Linux下,这是如果出现异常或者bug,调试起来都是很费劲的,如果你还在为这个头疼,那就好好看接下来的总结 1,启动改程序时,不论是脚本启动,还是tom ...
- loj6045 「雅礼集训 2017 Day8」价
我们考虑最小割. 我一开始觉得是裸的最小割,就直接S到每个减肥药连up+p[i]的边,减肥药到药材连inf边,药材到T连up,然后得到了40分的好成绩. 之后我发现这是一个假的最小割,最小割割的是代价 ...
- BZOJ_5118_Fib数列2_矩阵乘法+欧拉定理
BZOJ_5118_Fib数列2_矩阵乘法+欧拉定理 Description Fib定义为Fib(0)=0,Fib(1)=1,对于n≥2,Fib(n)=Fib(n-1)+Fib(n-2) 现给出N,求 ...
- 开源方案搭建可离线的精美矢量切片地图服务-3.Mapbox个性化地图定制入门
1.简介 mapbox是一家非常牛的公司,比如像特斯拉.DJI大疆创新.孤独星球.Airbnb.GitHub.Cisco.Snap.飞猪.Keep.Bosch这些在国内外各自领域中响当当的企业都是它的 ...
- ceph osd 自动挂载的N种情况
直接上干货: ceph自动挂载原理 系统启动后,ceph 通过扫描所有磁盘及分区的 ID_PART_ENTRY_TYPE 与自己main.py中写死的osd ready 标识符来判断磁盘(及其分区)是 ...