为什么由Puttygen创建的文件隐藏在Windows 7资源管理器中?


17

在Windows 7 Home Premium中,将私钥保存在C驱动器根目录下的PuTTY密钥生成器(又名Puttygen)中后,在资源管理器中不可见。

繁殖方法:

  1. 启动Puttygen。
  2. 生成密钥。
  3. 单击“保存私钥”(这也适用于“保存公钥”,但是我只测试了原始情况)。
  4. 导航至C:
  5. 输入名称,例如id_rsa,将文件另存为C:\id_rsa.ppk
  6. 启动资源管理器。
  7. 导航至C:

结果:无id_rsa.ppk可见。

要证明该文件存在:

  1. 回到Puttygen。
  2. 再次单击“保存私钥”按钮。
  3. 导航至C:

在此窗口中,您可以与文件进行交互。我从那里检查了文件属性:

  • 它不是隐藏的。
  • 为我的用户检查了“完全控制”。
  • “打开方式”奇怪地说为“ Windows Shell Common Dll”。

附加信息:

  • 我昨天安装了Windows,所以它不是索尼所为。
  • 它具有所有最新的安全更新和.NET 4.0。
  • 确实安装了TortoiseGit和7zip集成,因此可以想象它们与此有关(尽管.ppk文件不应与它们任何一个相关)。

确实使文件显示在资源管理器中的事情:

  • 将文件保存在另一个目录中,然后使用资源管理器将其复制/移动(都可以)到C:\。我确实收到了“目的地文件夹访问被拒绝”请求,必须先单击“继续”。
  • 将文件保存在另一个目录中,然后浏览至该目录。
  • 将文件保存在另一个磁盘的根目录中(D:在本例中)并浏览到那里。

未能使文件显示在资源管理器中的事情(F5在每次操作后都提示在资源管理器窗口中刷新):

  • 将该文件重命名为foo.ppk
  • 用另一个名称保存了第二个副本。
  • 打开“显示隐藏的文件,文件夹和驱动器”。
  • 关闭“隐藏受保护的操作系统文件”。
  • 将文件保存在另一个目录中,然后将其复制到C:\ Puttygen保存对话框中。像在资源管理器中一样,没有要求我授予保存文件的权限。

我天真的假设是Explorer对“受限制”(不实际受限制,因为Puttygen很少忽略它)目录具有一些内置的特殊情况,仅通过“目标文件夹访问被拒绝”对话框更新文件列表。实际原因是什么?

Answers:


23

在Vista和更高版本的Windows中,不允许将无特权的进程保存到“用户”没有写访问权限的文件夹中(即使您是本地管理员,并且管理员组也具有访问权限)。因此,当无特权的程序尝试在其中写入文件时,实际上会将其保存在中%localappdata%\VirtualStore


2
谢谢,就是这样。好的ol窗口,会不断剥夺您对自己操作系统的控制权。
Amalgovinus 2014年

@Amalgovinus-只是更改了工作流程,并没有取消控制权,出于安全原因,提升的流程的工作原理与往常一样。Vista只是更改了提升流程的方式,用户必须明确要求它,而不是自动以与用户相同的权限运行的流程。
Ramhound

这也适用于Windows 10 x64
user38537 '17

0

好吧,我已经看到了相同的行为,并且文件确实在VirtualStore中,但是我认为很有趣的是,如果加载bash shell(我安装了cygwin),它会像我想的那样在Program Files \ putty中显示文件它们应该像Windows cmd shell所说的那样不可见而不是奇怪地不可见。因此,如果您拥有cygwin,则可以以这种方式查看密钥文件,而不是遍历整个文件系统。


由于某种原因,您的答案对我来说似乎并不真实!
Pimp Juice IT
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.