我有一台联想笔记本电脑,上面安装了 Lenovo Vantage。我尝试使用 Windows 的“应用程序和功能”卸载它,但找不到卸载程序的 .exe。据我所知,导航到该 .exe 并尝试运行它没有任何效果。因此,我手动删除了“Program Files (x86)”Windows 目录中的 Lenovo 文件夹。之后,我尝试删除C:\ProgramData
目录中的 Lenovo 文件夹,但权限被拒绝。
我尝试打开该文件夹但也被拒绝权限,因此我将所有者更改为我自己。
导致权限问题的文件位于C:\ProgramData\Lenovo\Vantage\SystemData\Vaul
目录中,名为UPEAPIKey
和UPEUserID
。我尝试在线搜索它们,但确实有零结果。在更改所有者后,我也无法打开它们,出现错误“错误,无法打开文件 (...)”。
我也无法复制或移动文件。
所以我的问题是,这些文件是什么,以及我该如何尝试读取它们的内容?
答案1
您无法打开、移动或删除文件的最可能原因是正在运行的程序以独占访问权限打开了这些文件。独占访问权限(顺便说一句,这是 Windows 上的默认设置)可防止任何其他进程以超过最低权限(足以获取基本元数据,并告知其何时更改或可用)打开文件。这两个进程的相对权限级别根本不重要;最低的沙盒进程可以打开HANDLE
一个文件,甚至阻止 SYSTEM 帐户对其进行任何重要操作。
要知道哪个进程正在锁定文件(或注册表项、管道等),您可以使用 Windows 上枚举打开的句柄的任何工具。操作系统内置的一个 GUI 应用程序是“资源监视器”(%windir%\system32\perfmon.exe /res
或简称resmon
);转到“CPU”选项卡,单击“关联句柄”部分标题中的“搜索句柄”框,然后键入文件名(它会进行完整路径搜索,因此名称的一部分是文件;除非它是一个常用名称,否则不需要完整路径)。它将向您显示所有打开了具有该名称的句柄的进程,以及打开的句柄的路径。显然,一旦您识别出进程,您就可以终止它/它们(如果您有权限)。这将强制释放所有进程的句柄并使文件再次可用。请注意,仅仅因为文件没有被锁定并不意味着您可以保证访问,即使作为管理员也是如此;文件可以明确拒绝管理员(或管理员组)访问自身(在这种情况下您需要强制覆盖 ACL,通常先获取所有权)。更糟糕的是,文件可以使用 Windows 的加密文件系统 (EFS) 进行加密。要读取或修改使用 EFS 加密的文件,您需要文件加密到的密钥之一,通常是每个文件授权读取者的一个用户密钥。每个用户密钥本身使用从用户密码派生的密钥进行加密。这是内置的 Windows 安全功能,对用户完全透明(即,如果可能,密钥将自动选择和解开)。
除此之外,还有各种选项可用于读取或操作操作系统不允许您触碰的文件。您可以在安全模式下启动 Windows,也可以启动到预安装环境 (PE) 或恢复环境 (RE);在每种情况下,Windows 操作系统都在运行,但运行的进程或服务最少(在安全模式下),或者运行完全不同的安装(在 PE 或 RE 中)。PE 通常位于 Windows 安装介质上,可通过从此类外部介质启动来访问;RE 通常位于硬盘的隐藏分区上,可通过高级启动选项菜单访问(安全模式也是如此)。请注意,PE 可能无法打开 EFS 加密文件,因为它不使用与正在运行的系统相同的用户(但安全模式会使用,如果您有密码,RE 可以访问密钥文件)。您也可以尝试移除驱动器并将其连接到另一台计算机(您有管理员访问权限),但这不适用于加密文件。
或者,您可以完全启动非 Windows 操作系统。Linux 完全能够读取(通常也可以写入)NTFS(Windows 文件系统),因此您可以使用 Linux“Live”CD/DVD/闪存驱动器,或将驱动器连接到运行 Linux 的计算机,然后安装 Windows(NTFS)分区来读取它。Linux 并不真正了解或关心 NTFS ACL,并且不执行独占文件访问(也不会有任何进程意外地保持文件打开),因此您应该从那里拥有完全访问权限……除非文件或整个卷被加密。如果卷使用 Bitlocker 加密,您将需要一个可以读取 Bitlocker 卷的 Linux 驱动程序(加上 Bitlocker 恢复密码或类似方式来获取解密密钥)。如果文件使用 EFS 加密……可能是一个 Linux 工具,用于提取加密元数据、找到相关的每个用户密钥、获取解开(解密)密钥所需的密码并使用它,但我个人从未见过。