我想从系统中存档一个 windows.old 文件夹以节省空间,但没有访问其中某些文件夹的权限,即使以管理员身份运行或以系统身份运行(使用psexec -s -i
)。
我想保持其原样,所以不想更改任何权限/所有权。我知道某些备份实用程序(如 Windows 7 备份和 Acronis 等)在以提升的权限运行时能够读取所有文件 - 是否有其他方法可以做到这一点?
答案1
感谢@HelpingHand对这个问题的评论,指出了SeBackupPrivilege,从而找到了这个解决方案。这样做的好处是它不依赖于Windows中尚未提供的DLL。
以下是具体操作:
- 复制脚本https://www.leeholmes.com/blog/2010/09/24/adjusting-token-privileges-in-powershell/进入路径中名为 Set-TokenPrivilege.ps1 的 powershell 脚本
- 通过转到任务管理器的详细信息选项卡查找要授予此功能的进程的进程 ID (PID)。提示:如果要更改文件,以管理员身份启动此进程有时会很有帮助(但另请参阅下面的 #4 和 #5)。
- 从以管理员身份启动的 PowerShell 运行
Set-TokenPrivilege.ps1 -privilege SeBackupPrivilege #####
(#####
使用上一步中的 PID) Set-TokenPrivilege.ps1 -privilege SeRestorePrivilege #####
将授予您写权限来修改文件,例如那些需要 TrustedInstaller 权限才能修改的文件。- 如果您需要修改上述文件以外的权限(例如需要 SYSTEM 权限的文件),则可以使用 Microsoft 提供的可下载的 psexec 工具以 SYSTEM 权限启动该程序
psexec -s -i appnamegoeshere.exe