我们在 Windows 服务器上有几个文件显示在目录列表中,但无法访问。我可以拥有这些文件的所有权,ACL 显示每个人都有读/写/执行访问权限;但我无法打开这些文件。chkdsk 未发现卷上存在任何问题。
服务器是64位Win 2008 R2 Standard SP1。
我们最近在这台服务器上出现了 BSOD,文件在崩溃前不久被修改过。崩溃与文件系统无关,但我认为它损坏了内核内存中的某些东西,从而损坏了文件系统。
以下是我尝试访问文件“com2.log”时看到的一些内容:
D:\Logs\Application>dir com2*
Volume in drive D is Data
Volume Serial Number is 84D5-FD84
Directory of D:\Logs\Application
09/07/2011 06:57 PM 169,025 com2.log
1 File(s) 169,025 bytes
0 Dir(s) 39,320,612,864 bytes free
D:\Logs\Application>dir com2.log
Directory of \\.
File Not Found
D:\Logs\Application>dir com2.*
Directory of \\.
File Not Found
D:\Logs\Application>cacls com2.log
The filename, directory name, or volume label syntax is incorrect.
D:\Logs\Application>more com2.log
Cannot access file \\.\com2
D:\Logs\Application>more com2*
Cannot access file D:\Logs\Application\com2.log
(cacls 不显示 ACL,但我可以在 Windows 资源管理器中看到它。)
这似乎可能是扩展的问题。dir com2*
找到它但dir com2.*
没有。
该文件在 Windows 资源管理器中显示为 com2.log,但当我双击它时,记事本中出现此错误,指出文件扩展名为 .txt:
Cannot find the \\.\com2.txt file.
Do you want to create a new file?
有人见过类似的事情吗?有什么故障排除建议吗?
答案1
COM2 是保留关键字,确切地说是硬件端口 COM2,我不知道该文件是怎么来的,因为 Windows 不允许您创建名为 的文件COM2.log
。现在尝试一下,您会收到一条错误消息。为了好玩,还可以尝试创建LPT1.txt
。
根据命名文件、路径和命名空间,以下均为保留名称,不得用作文件名。
请勿使用以下保留设备名称作为文件名:
CON、PRN、AUX、NUL、COM1、COM2、COM3、COM4、COM5、COM6、COM7、COM8、COM9、LPT1、LPT2、LPT3、LPT4、LPT5、LPT6、LPT7、LPT8 和 LPT9。还应避免在这些名称后紧跟扩展名;例如,不建议使用 NUL.txt。
您可以尝试在资源管理器中重命名该文件或使用它ren com2.log somethingelse.log
来查看是否可以操作该文件,但是我觉得这样做不会起作用,原因与您首先无法创建该文件的原因相同。
否则,如果你遵循如何在 Windows 中删除具有保留名称的文件您应该能够使用以下命令删除该文件。使用相同的“完全限定”路径,我想您也可以使用REN
而不是 来重命名该文件DEL
。
DEL \.\C:\SomeDirectory\com2.log
答案2
您可以尝试移动文件:move com2* com2.log.new
或类似操作。文件名本身可能会被弄乱。