Powershell,WMI和压缩文件/文件夹

问题描述:

我需要生成一个脚本,这将帮助我获取一系列Windows 2003服务器上的压缩文件/文件夹(不是zip文件,但是Windows压缩文件)的列表。我有一台客户端计算机连接到目标服务器,并以管理员角色为基础进行访问。我的想法是创建一个Powershell脚本来处理使用WMI或其他的问题?但我对WMI世界的可能性感到失望。任何提示/技巧值得赞赏。Powershell,WMI和压缩文件/文件夹

干杯

+0

我不知道如何标记这样的文件或文件夹。请记住,如果您打算使用WMI扫描系统,这可能会非常缓慢。 – 2009-10-01 01:50:03

我不知道,如果你能做到这一点与WMI,然后再次我不是WMI大师。如果您可以使用PowerShell 2.0,则使用新的远程功能非常简单,例如

$computers = 'server1', 'server2', 'server3' 
$compressed = Invoke-Command $computers {Get-ChildItem C:\ -r -force -ea 0 | 
       Where {$_.Attributes -band [IO.FileAttributes]::Compressed}} 

需要注意的是存储在$压缩将有额外的属性PSComputerName标识反序列化对象来自哪个计算机的每个文件和目录对象。

另外,如果你没有PowerShell 2.0中,你可以通过份额例如为:

$sharePaths = '\\server1\C$', '\\server2\C$', '\\server3\C$' 
Get-ChildItem $sharePaths -r -force -ea 0 | 
    Where {$_.Attributes -band [IO.FileAttributes]::Compressed} 

这种做法很可能是缓慢的访问服务器。

+0

Keith:非常好的解决方案,但是我可以看到我需要在所有目标服务器上安装Powershell 2.0,但我不确定这是否是一个选项 – user155814 2009-10-01 07:23:28

+0

真的,我猜你可以运行该命令而不使用Invoke - 命令cmdlet并使用UNC路径(C $),但这可能会很慢。 – 2009-10-01 14:08:44