如何让SYSTEM账户使用EFS加密?

Ben*_*n N 7 windows efs

我想加密作为本地系统运行的 Windows 服务使用的一些文件(即使用NT AUTHORITY\SYSTEM帐户)。由于BitLocker 似乎不适用于软件 RAID,因此 EFS 似乎是要走的路。但是,cipher /adduser不喜欢在 SYSTEM 上使用:

cipher /adduser /user:SYSTEM filename.ext
Run Code Online (Sandbox Code Playgroud)

在 Active Directory 域服务中查找用户证书时出错:指定的域不存在或无法联系。

我正在使用 Windows 8.1。

我还有一些已经加密的文件,我需要授予系统访问权限。我能做什么?

Ben*_*n N 8

这适用于自 7(可能更早)以来的每个 Windows 版本,以及服务器版本。

SYSTEM 帐户确实可以使用 EFS,但默认情况下它没有 EFS 证书。唯一可以为 SYSTEM 注册证书的人是 SYSTEM,因此您需要获取PsExec。从具有psexec.exe可访问性的管理员命令提示符运行psexec /s /i cmd.exe以生成以 SYSTEM 身份运行的命令提示符。

在我们开始之前

请注意,允许 SYSTEM 访问加密文件意味着任何对机器具有物理访问权限的人都可以解密该文件。通常,EFS 证书受用户密码保护,但 SYSTEM 的密码必须存储在磁盘上,因为没有人输入其密码。因此,仅当您担心无法访问机器密钥的异地备份的安全性时,才建议使用这些程序。

如果您只希望 SYSTEM 可以访问这些文件

使用 SYSTEM 提示符加密文件。这可以通过cipherWindows 附带的实用程序来完成。cipher /e后跟文件名加密该文件,使其只能由 SYSTEM 访问。要加密目录,命令是cipher /e /s:,将目标目录名称与冒号对齐。

如果您想授予 SYSTEM 访问已加密文件的权限

首次加密文件(对于任何帐户)时,将颁发 EFS 证书/密钥。要创建临时文件,请echo. > scratch.txt在 SYSTEM 提示符下执行。用 加密该文件cipher /e scratch.txt。如果你愿意,你可以烧掉那个额外的文件,证书已经准备好了。EFS 证书可以在证书 MMC 管理单元中进行管理;您需要为计算机(而不是用户)打开管理单元,或者只运行certlm.msc. 您将在 Trusted People 下找到感兴趣的证书。

现在,当您想授予 SYSTEM 访问加密文件/目录的权限时,请以文件所有者的身份打开命令提示符。运行cipher /adduser /certhash:时目标用户的 EFS 指纹在冒号上没有空格。(双击“证书 MMC”窗口中的一个条目并切换到“详细信息”选项卡以查看指纹。)目标文件名是一个附加参数,/s:<dir>如果您将其应用于文件夹,它仍然有效。

示例命令

加密文件:cipher /e filename.ext
加密文件夹:cipher /e /s:Important
将用户添加到文件:cipher /adduser /certhash:6cc1ce89aac7b6f794733e1b6b54a564a9bed9de filename.ext

进一步阅读:“IT 工作原理:加密文件系统”cipher.exe参考 TechNet

  • 很有帮助。请注意,在 Windows 7(至少)上,证书 MMC 管理单元是“certmgr.msc”。 (2认同)