使用PowerShell计算网络文件夹中的文件

时间:2014-07-16 16:47:23

标签: powershell monitoring

我已经搜索过很多关于此问题的MSDN / Technet和StackOverflow文章,但我无法找到解决问题的方法。 SO参考如下。

我正在尝试在我的服务器上运行一个脚本,该脚本只计算网络位置文件夹中的文件。

如果它是本地文件夹,我可以使它工作,我可以在映射网络驱动器时使其正常工作。但是,我无法使用网络驱动器,因为我将从没有用户帐户的网络界面运行此脚本(本地驱动器正常工作)。

我的脚本是:

$Files = Get-ChildItem \\storage\folder -File  
$Files.count

我收到错误:

Get-ChildItem : Cannot find path '\\storage\folder' because it does not exist.

[0] open folder from Network with Powershell
[1] File counting with Powershell commands
[2] Count items in a folder with PowerShell
[3] Powershell - remote folder availability while counting files

2 个答案:

答案 0 :(得分:0)

我能想到的两件事,

一种方法是在你的get-childitem调用中添加-path。我在我的Powershell上进行了测试,结果很好。

$files = get-childitem -path C:\temp $files.count 这将返回该路径中的文件数。

但是我在本地文件上测试它。如果您确定它是远程访问部分给您带来麻烦,我建议尝试设置凭据。除get-credentials选项外,您还可以尝试自己设置它们。

$Credentials = New-Object System.Management.Automation.PsCredential("Username", "password")

然后,您可以设置驱动器,但仍然可以访问您的文件。希望有所帮助。

答案 1 :(得分:0)

试试这个:

set-location \\\storage\folder\

dir -recurse |  where-object{ $_.PSIsContainer } | ForEach{ Write-Host $_.FullName (dir $_.FullName | Measure-Object).Count } 

这将计算每个子文件夹中的文件数(递归),并在输出中显示完整路径和计数。