我们使用的开发工具之一 (ember-cli.com) 需要符号链接才能在 Windows 上正常运行。建议的策略是以管理员身份运行 shell 或将权限添加SeCreateSymbolicLinkPrivilege
到用户。我的问题是,这两种方法似乎都不起作用,并且ember-cli
继续使用缓慢的非符号链接路径。
作为启动过程的一部分,ember-cli
通过创建文件来测试创建符号链接的能力tmp
,同时使用 procmon 观察文件系统活动,我看到以下内容:
6:01:19.2258921 PM node.exe 8576 FileSystemControl C:\Users\username\AppData\Local\Temp\canLinkDest.tmp ACCESS DENIED Control: FSCTL_SET_REPARSE_POINT
对我来说这表明某物导致了奇怪的事情,但我不确定如何诊断到底是什么导致了这个问题。
值得指出的是,这发生在我的办公室工作站上,我对该工作站拥有管理员权限,但它也运行着各种企业保护软件,例如病毒扫描程序、权限管理软件等......
更多日志详细信息
6:01:19.2255745 PM node.exe 8576 CreateFile C:\Users\username\AppData\Local\Temp\canLinkDest.tmp SUCCESS Desired Access: Write Attributes, Delete, Synchronize, Disposition: Create, Options: Synchronous IO Non-Alert, Non-Directory File, Open Reparse Point, Attributes: N, ShareMode: None, AllocationSize: 0, Impersonating: AD\username, OpenResult: Created 6:01:19.2258921 PM node.exe 8576 FileSystemControl C:\Users\username\AppData\Local\Temp\canLinkDest.tmp ACCESS DENIED Control: FSCTL_SET_REPARSE_POINT 6:01:19.2259123 PM node.exe 8576 SetDispositionInformationFile C:\Users\username\AppData\Local\Temp\canLinkDest.tmp SUCCESS Delete: True 6:01:19.2259465 PM node.exe 8576 CloseFile C:\Users\username\AppData\Local\Temp\canLinkDest.tmp SUCCESS
6:01:19.2289415 PM node.exe 8576 CreateFile C:\Users\username\AppData\Local\Temp\canLinkSrc.tmp SUCCESS Desired Access: Read Attributes, Write Attributes, Delete, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a, Impersonating: AD\username, OpenResult: Opened