是否有任何基于 CLI 的修补工具可以在无需管理员权限的情况下在 Windows 7 中运行?
我尝试过以下工具但它们都需要管理员权限。
答案1
这些工具都不需要管理员权限,您要修补的文件只有管理员才能访问。查看该文件的 NTFS 权限,我相信您会发现只有管理员才有权修改它。
更新:我们活着,我们学习。我错了,patch.exe
确实需要提升。或者更准确地说,Windows想它需要提升:如何防止 Vista 要求提升 patch.exe 权限?。
创建外部清单来patch.exe
声明requestedExecutionLevel
ofasInvoker
并没有什么用。但重命名为不包含 word 的任何内容patch
都有用。试试看。
答案2
这git 用于 Win32 软件包附带一个不需要管理员权限的 patch.exe 程序。该软件包非常容易安装,即使对于非管理员用户也是如此:有一个便携版本,您只需在任何地方解压即可使用。
该软件包还移植了一些其他有用的实用程序到 Win32,因此您可以获得例如 vim、cat、grep、sort、less、diff、diff3、cmp、curl、openssl、sha256sum、perl,所有这些都接近原生 Windows 集成。
答案3
虽然重命名当然是一种选择,但大多数构建系统会自动调用“patch”,并期望这在所有平台上都是相同的调用。因此,在需要自动化的情况下,保留原始名称肯定是可取的。
使用与 patch.exe 并排驻留的清单 XML 文件的工作方式如下(在 Win7 x64 上成功测试)
创建新的文本文件并插入
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> <security> <requestedPrivileges> <!-- Make sure that UAC believes that it does not require administrative privilege --> <requestedExecutionLevel level="asInvoker" uiAccess="false"/> </requestedPrivileges> </security> </trustInfo> </assembly>
命名此文件
patch.exe.manifest
- 确保patch.exe 最近被修改了(看这里)重新下载,或触摸(看这里) 它。