我想加密以本地系统身份运行的 Windows 服务所使用的一些文件(即使用该NT AUTHORITY\SYSTEM
帐户)。由于BitLocker 似乎不适用于软件 RAID,EFS 似乎是可行的方法。但是,cipher /adduser
不喜欢在 SYSTEM 上使用:
cipher /adduser /user:SYSTEM filename.ext
在 Active Directory 域服务中查找用户证书时出错:指定的域不存在或无法联系。
我正在使用 Windows 8.1。
我还有一些已加密的文件,需要授予系统访问权限。我该怎么办?
答案1
这适用于自 7 以来的每个 Windows 版本(可能更早),以及服务器版本。
SYSTEM 帐户确实可以使用 EFS,但默认情况下它没有 EFS 证书。唯一可以为 SYSTEM 注册证书的人是 SYSTEM,因此您需要获取执行程序. 从可访问的管理员命令提示符psexec.exe
运行,psexec /s /i cmd.exe
以生成以 SYSTEM 身份运行的命令提示符。
开始之前
请注意,允许 SYSTEM 访问加密文件意味着任何可以物理访问该机器的人都可以解密该文件。通常,EFS 证书受用户密码保护,但 SYSTEM 的密码必须存储在磁盘上,因为没有人输入其密码。因此,仅当您担心异地备份的安全性(机器密钥不可访问)时,才建议采取这些程序。
如果你希望只有 SYSTEM 才能访问这些文件
使用 SYSTEM 提示符加密文件。这可以通过cipher
Windows 附带的实用程序完成。cipher /e
后跟文件名会加密该文件,使其只能由 SYSTEM 访问。要加密目录,命令是cipher /e /s:
,目标目录名称与冒号对齐。
如果你想授予系统对已加密文件的访问权限
第一次加密文件(对于任何帐户)时,都会颁发 EFS 证书/密钥。要创建临时文件,请echo. > scratch.txt
在 SYSTEM 提示符下执行。使用 加密该文件cipher /e scratch.txt
。如果需要,您可以删除该额外文件,证书已准备就绪。可以在证书 MMC 管理单元中管理 EFS 证书;您需要打开计算机(而不是用户)的管理单元,或者只需运行certlm.msc
。您会在受信任的人下找到感兴趣的证书。
现在,当您想要授予 SYSTEM 对加密文件/目录的访问权限时,请以文件所有者的身份打开命令提示符。运行命令提示符,cipher /adduser /certhash:
将目标用户的 EFS 指纹压在冒号上(无空格)。(双击“证书”MMC 窗口中的条目,然后切换到“详细信息”选项卡以查看指纹。)目标文件名是一个附加参数,/s:<dir>
如果您将其应用于文件夹,它仍然有效。
示例命令
加密文件:cipher /e filename.ext
加密文件夹:cipher /e /s:Important
向文件添加用户:cipher /adduser /certhash:6cc1ce89aac7b6f794733e1b6b54a564a9bed9de filename.ext