【发布时间】:2013-11-01 21:57:10
【问题描述】:
我需要扫描 CIFShare 并获取共享中所有文件和文件夹的文件属性和 ACL 属性。我知道在 get-chilItem 中有一个 -recursive 选项,但如果共享非常大,使用 -recursive 选项非常耗时。我知道这可以通过多线程来实现。
假设层次结构如下:-
Root
Root\FolderA
Root\FolderA\FolderA1\FolderA2\FolderA3\FolderA3\FolderA4
Root\FolderB\..
..
我管理了一个脚本,该脚本获取根目录中所有文件和文件夹的文件属性和 ACL,并为根目录中的每个文件夹(文件夹 A、文件夹 B 等)启动一个作业,该作业运行时没有任何错误。我尝试为每个文件夹(目录结构中的所有级别)创建作业,这反过来导致作业挂起或 powershell 强制关闭。 我正在使用 PowerShell V2.0,并且在我们的环境中无法对版本进行任何升级。我是powershell的新手,如果这是一个非常愚蠢的问题,请原谅。
提前感谢您的帮助。
【问题讨论】:
-
添加更多线程不太可能提高性能,而且很可能会使其变慢。您的限制因素可能是磁盘驱动器的速度,如果您添加多个向其发出请求的线程,那么您只会增加额外磁盘查找的开销。