在Windows 10上使用Dell Encryption软件加密的目录中,npm install失败

时间:2018-04-20 17:45:49

标签: node.js npm windows-10

我的公司需要使用戴尔加密软件。

最近,放置在目录中的Dell加密跟踪器文件的残余已导致npm install出现问题。

Dell Encryption具有CredDB2.CEF个文件,这些文件是在跟踪每个加密文件状态的目录中创建的。当我npm install request时,我最终会在创建/修改其安装的bin文件的依赖项中收到错误:

npm ERR! path C:\project\node_modules\sshpk\bin\CredDB2.CEF
npm ERR! code ENOENT
npm ERR! errno -4058
npm ERR! syscall chmod
npm ERR! enoent ENOENT: no such file or directory, chmod 'C:\project\node_modules\sshpk\bin\CredDB2.CEF'npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent

相关的详细日志输出是:

1254 silly build sshpk@1.13.1
1255 info linkStuff sshpk@1.13.1
1256 silly linkStuff sshpk@1.13.1 has C:\project\node_modules as its parent node_modules
1257 verbose linkBins sshpk@1.13.1
1258 verbose linkBins [ { 'CredDB2.CEF': 'bin/CredDB2.CEF',
1258 verbose linkBins     'sshpk-conv': 'bin/sshpk-conv',
1258 verbose linkBins     'sshpk-sign': 'bin/sshpk-sign',
1258 verbose linkBins     'sshpk-verify': 'bin/sshpk-verify' },
1258 verbose linkBins   'C:\\project\\node_modules\\.bin',
1258 verbose linkBins   false ]

Dell Encryption将CredDB2.CEF文件创建为有关加密状态的元数据,但是,在这种情况下创建的文件对于典型的文件资源管理器是隐藏的(即使启用了显示隐藏文件)也可以应用程序使用文件的完整路径打开。

我怀疑它可能是在一个刻度中以非隐藏的方式创建的,然后实际上隐藏在另一个刻度中。同时,bin的安装必须在包含CredDB2.CEF文件的bin目录上执行glob,然后在Dell Encryption隐藏文件后执行chmod,从而导致错误。

我不确定这是否是应该使用Dell,NPM或导致错误的NPM软件包升级的错误。

我已经能够在2台计算机上重现错误,尽管不一致。我怀疑不一致的再现是由于CredDB.CEF文件被创建/隐藏时的竞争条件造成的。

如果我将项目安装在明确标记为未通过Dell Encryption软件加密的目录中,则一切正常。但从安全角度来看,这不是一个可接受的答案。

npm中是否有任何选项可以忽略CEF文件或忽略这些特定错误?

是否还有其他可以使用的解决方法?

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。 Dell Encryption Tool已预先安装在笔记本电脑中,Windows更新后,它开始出现异常行为。在跟踪加密日志时,要知道屏蔽服务未在端点上正确启动:

[03.12.19 13:40:57:329       NTUtils.cpp: 1555 E] [SUPPORT] [E] The Shield service is not running!  Attempting to restart. Current service state = 1

升级Dell加密解决了该问题。

答案 1 :(得分:1)

按照此support article中的建议将Dell Encryption升级到10.0.0.12,A31版或更高版本。这样可以解决使用节点和“ npm install”时看到的CredDB.CEF文件错误消息。

可以找到最新的Dell Encryption驱动程序here