Get-ChildItem未显示文件夹中的所有文件

时间:2012-03-16 23:07:49

标签: powershell get-childitem

当我在PowerShell中调用Get-ChildItem时,它只返回目录中存在的一些文件。这是驱动程序文件夹,所以我尝试使用-Force参数,以防它们被隐藏,但没有运气。

这很有意思,因为它在我的Windows 7 32位上运行完美,但不是64位。有什么想法吗?

2 个答案:

答案 0 :(得分:4)

我相信PowerShell会向您展示一切,但是您在x86 PowerShell提示符中查看的文件夹并不是您所想的。您实际查看的目录位于C:\ Windows \ SysWow64 \ Drivers下,而不是C:\ Windows \ System32 \ Drivers。这是因为在64位操作系统上运行的称为虚拟化的32位进程(特别是File System Redirector)的Windows功能(Vista和更高版本)。当您运行64位PowerShell提示时,不使用虚拟化,因此您可以看到真正的C:\ Windows \ System32 \ Drives目录。

在32位PowerShell提示符下,您可以使用以下路径查看“真正的”C:\ windows \ system32 \ drivers目录:

Get-ChildItem C:\Windows\SysNative\Drivers

答案 1 :(得分:0)

我在寻找类似问题时遇到了这个问题。我想列出用户文件夹的使用情况,但是遇到文件夹所有权/权限问题。即使我是本地管理员,也需要明确授予自己访问权限。不理想。尽管有权限,但下面提供了准确的用法。 (当然,如果您想了解更详细的用法,则需要使用for循环之类的东西。)

Get-ChildItem "C:\Users" -Recurse -Force -ErrorAction SilentlyContinue | Measure-Object Length -Sum

关于包含哪些文件,默认情况下不会显示隐藏文件和系统文件:https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/get-childitem?view=powershell-6

  • Hidden参数:仅隐藏文件
  • System参数:仅系统文件
  • Force参数:包括隐藏文件和系统文件,以及常规文件

为了确认,我向自己授予了其中一个用户目录的权限。我比较了从PowerShell报告的大小(在授予权限之前)和在文件资源管理器中报告的大小(在授予权限之后)。大小和数量相同。