如何创建“以管理员身份运行”的 bash 快捷方式

dra*_*035 9 bash windows-10

要在项目文件夹中以管理员身份运行 bash 控制台 (Windows),目前我首先以管理员身份启动 bash,然后手动导航到极其费力的文件夹。有什么方法可以将图形快捷方式直接添加到此文件夹中以用于“以管理员身份运行”bash 控制台?

CBH*_*ing 8

适用于 Linux 的 Windows 子系统 (WSL) 可以通过bash命令(通常位于C:\Windows\System32\bash.exe)从任何 Windows shell 启动。此命令会将您带入在当前目录中运行的 Linux bashshell ,这意味着这实际上很容易做到。

(当然,话虽如此,命令结果却出奇的难看。)一般来说,您想要的命令是:powershell -c start -verb runas cmd '/c start /D "<dirname>" bash.exe'我们使用 Powershell 的start命令,它支持通过-verb runas. 但是,如果正在运行的程序在 System32 中,则其工作目录将始终以 System32 启动。因此,让cmd(或powershellstart再次使用他们的命令来启动bash 所需的工作目录。但是,我们设置该目录的方式各不相同。

请注意,所有这些方法都会导致 UAC 提示显示为 Powershell。

使用 Windows 资源管理器文件夹上下文菜单

这使您可以右键单击任何文件夹以在那里以管理员身份启动 bash。

如果您想要屏幕截图等,请参见此处

  1. 打开regedit并导航到 HKEY_CLASSES_ROOT\Directory\shell
  2. 添加一个新的子项,将其命名为“AdminBash”
  3. 将新子项的默认(字符串)值更改为您希望实际菜单项说的任何内容,例如“在此处以管理员身份打开 bash”
  4. 或者,如果您希望新项目仅在您按住shift鼠标右键单击时出现,请将名为“扩展”的字符串注册表值添加到子项
  5. 创建一个名为“command”的子项(例如 HKCR\Directory\shell\AdminBash\command)
  6. 将新子项的默认值更改为 powershell -c start -verb runas cmd '/c start /D "%V" bash.exe'
  7. 如果它没有立即出现,请重新启动 Windows 资源管理器(一种简单的方法是注销并再次登录)

使用快捷方式 (.lnk)

这使您可以创建一个可以位于任何位置的文件,但以管理员身份将 bash 启动到目标位置。

  1. 右键单击桌面或任何 Windows 资源管理器目录(不是文件),然后选择新建 -> 快捷方式
  2. 将目的地设置为powershell -c start -verb runas cmd '/c start /D "<tartget>" bash.exe'替换为您希望它打开的位置。
  3. 设置您想要的任何其他属性,例如文件名、图标和/或快捷键。

使用批处理(.cmd 或 .bat)文件:

这使您可以将文件放在任何您想要的位置,双击时该文件将在该位置以管理员身份启动 bash(如果从 Windows shell 打开,它将继承该 shell 的位置,但仍为管理员;这可能很有用,如果您将其添加到 Windows PATH 中的目录中)。

  1. 创建一个批处理文件(这可以使用上面的 Windows 资源管理器上下文菜单完成文本文件并更改扩展名,或使用任何文本编辑器)
  2. 将文件的内容设置为以下内容: powershell -c start -verb runas cmd '/c start /D "%CD%" bash.exe'


le_*_*top -1

我想你的意思是写“shell”或“c​​md”而不是“bash”,因为后者会建议你运行 Windows 版本的 bash shell,它是一个 *nix shell(我使用 Cygwin)。

无论哪种情况,您都可以按照通常的方式创建快捷方式。那是:

  1. 右键单击,创建快捷方式。
  2. 输入快捷方式的可执行文件 - 对于标准 Windows shell,输入“cmd”;如果您实际使用的是 bash,则输入 c:\cygwin\bin\bash。对于标准 shell,您只需键入“cmd”作为位置(无需输入完整路径)。
  3. 确认快捷方式创建。
  4. 打开快捷方式的属性。
  5. 设置命令应运行的路径。
  6. 在高级选项中,您可以启用以管理员身份运行
  7. 根据需要申请/确认。