我想让 console2 与 UAC 很好地配合使用
我想解决的具体问题:
- 如果我开始没有提升,有办法在跑步时提升。如果我可以提升单个标签,那就太好了
- 我希望为管理员/非管理员获取不同的颜色,类似于:此链接基本上,如果我可以让控制台在启动时执行命令(类似于 HKLM\Software\Microsoft\Command Processor\AutoRun 注册表值),这就是我所需要的
我该如何让它工作?我是否必须修改源代码才能让它工作,或者我可以使用不同的选项卡设置/使用 shell 可执行文件进行 hack 操作?
我正在使用 Windows 7,但我认为任何可行的解决方案也适用于 Vista。
答案1
你想尝试一下吗康埃穆? 我是此控制台模拟器的作者。您可以以提升权限或在指定凭据下运行选定的选项卡。并且您可以为提升权限的控制台(或指定的应用程序)指定不同的调色板。
答案2
我解决了部分问题。
我想为管理员/非管理员设置不同的颜色
由于某种原因,在 Console2 中运行时,bcdedit.exe 未显示在 system32 目录中(不确定为什么?)。因此,我不得不寻找另一个命令,而不是使用我在我的问题中的链接。我发现了另一个“不做任何事”的命令,它可以让我区分管理员和非管理员,是在 Console2 中可见。
在 Console2 中,我将shell
选项设置为:
%ComSpec% /k secedit /validate %ComSpec:cmd.exe=%ieuinit.inf >nul 2>nul && (颜色 FC && 标题 ADMIN) || (颜色 07 && 标题 NONADMIN)
就这个问题而言……
如果我开始没有提升,有办法在跑步时提升。如果我可以提升单个标签,那就太好了
已经有计划的功能和相关的功能请求。
此时您无法解决这个问题。您无法将应用程序作为 LUA 启动,然后简单地提升特定提示,因为 Console2 无法包含具有更高级别访问权限的应用程序。它只能反过来工作。我认为这需要程序以提升的方式运行,但通过非提升的进程启动,因此它可以插入并启动非提升的进程。这有时被称为引导程序。
我试过 PsExec,但效果不太好。它剥夺了一些管理员权限,但仍在使用提升的令牌。
基本上,如果不更改源,就不可能在同一个 Console2 会话的选项卡中同时获得提升的控制台和 LUA 控制台。但您只需单击任务栏图标或快捷方式即可Ctrl + Shift + Click
在单独的会话中以管理员身份启动。
编辑:我发现如果你使用安西孔以及输出颜色的命令行工具(如git),那么这会有点问题。请尝试以下命令:
%ComSpec:cmd.exe=%secedit.exe /validate %ComSpec:cmd.exe=%ieuinit.inf >nul 2>nul && (颜色 FC && 标题 ADMIN) || (颜色 && 标题 NONADMIN)
如果您处于管理员模式,红色将覆盖命令输出的颜色,但没有简单的方法可以解决这个问题。但是我发现无论如何您都不应该在管理员模式下做很多工作。因此,UAC 和我们添加的特殊颜色。
答案3
如果您愿意在每次创建选项卡时处理 UAC 弹出窗口,那么您可以转到编辑 > 设置 > 选项卡,在 Shell 部分中选中以用户身份运行,然后输入用户名,现在将出现一个弹出窗口,您可以更改名称。如果您是管理员并登录,它将被提升;如果您是标准用户并登录,它将是标准用户 :) 希望对您有所帮助。