我想让 console2 与 UAC 很好地工作
我想解决的具体问题:
我如何让这个工作?我是否必须修改源代码才能使其正常工作,或者我可以使用不同的选项卡设置/使用 shell 可执行文件进行 hacks 吗?
我使用的是 Windows 7,但我认为任何可行的解决方案也适用于 Vista。
我解决了一部分。
我想为管理员/非管理员设置不同的颜色
出于某种原因,在 Console2 中运行时,bcdedit.exe 没有出现在 system32 目录中(不知道为什么?)。因此,我必须找到另一个命令,而不是使用我在问题链接中找到的命令。我发现了另一个“什么也不做”的命令,让我来管理/非管理员,即区分是在Console2可见。
在 Console2 中,我将shell选项设置为:
%ComSpec% /k secedit /validate %ComSpec:cmd.exe=%ieuinit.inf >nul 2>nul && (color FC && title ADMIN) || (color 07 && title NONADMIN)
至于这个问题...
如果我从非抬高开始,有办法在跑步时抬高。如果我可以提升单个标签会特别好
已经有一个计划中的功能和相关的功能请求。
您目前无法解决此问题。您不能将应用程序作为 LUA 启动,也不能简单地提升特定提示,因为 Console2 无法包含具有更高级别访问权限的应用程序。它只会反过来工作。我认为这需要程序以提升的方式运行,但通过非提升的进程启动,因此它可以插入并启动非提升的进程。这有时称为引导程序。
我曾尝试过 PsExec,但效果不佳。它剥夺了一些管理员权限,但仍在使用提升的令牌。
基本上,在不更改源的情况下,不可能在同一 Console2 会话的选项卡中同时获得提升的和 LUA 控制台。但是您只需单击任务栏图标或快捷方式Ctrl + Shift + Click即可在单独的会话中以管理员身份启动。
编辑:我发现,如果您将ansicon与输出颜色的命令行工具(如git)一起使用,那么这将略微损坏。试试这个命令:
%ComSpec:cmd.exe=%secedit.exe /validate %ComSpec:cmd.exe=%ieuinit.inf >nul 2>nul && (color FC && title ADMIN) || (颜色&标题NONADMIN)
如果您处于管理员模式,红色将覆盖命令输出的颜色,但没有简单的方法来解决这个问题。但是我发现无论如何你都不应该在管理员模式下做很多工作。因此 UAC 以及我们添加的特殊颜色。