【问题标题】:Powershell, WMI and compressed files/foldersPowershell、WMI 和压缩文件/文件夹
【发布时间】:2009-09-30 19:14:45
【问题描述】:

我需要生成一个脚本来帮助我获取一系列 Windows 2003 服务器上的压缩文件/文件夹(不是 zip 文件,而是 Windows 压缩文件)列表。我有一台连接到目标服务器的客户端电脑,并且可以基于管理员角色进行访问。我的想法是创建一个 Powershell 脚本来使用 WMI 或其他东西来处理这个问题?但我有点迷失在 WMI 世界中的可能性。感谢任何提示/提示。

干杯

【问题讨论】:

  • 我不知道如何标记这样的文件或文件夹。请记住,如果您打算使用 WMI 扫描系统,这可能会非常慢。

标签: powershell compressed-folder


【解决方案1】:

我不确定您是否可以使用 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}}

请注意,存储在 $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}

这种方法可能会很慢。

【讨论】:

  • Keith:非常好的解决方案,但我可以看到我需要在所有目标服务器上安装 Powershell 2.0,我不确定现在是否可以选择
  • 没错,我想您可以在不使用 Invoke-Command cmdlet 的情况下运行该命令,而是使用 UNC 路径 (C$),但这可能会很慢。
猜你喜欢
  • 1970-01-01
  • 2010-12-14
  • 2010-09-05
  • 2017-11-03
  • 1970-01-01
  • 2018-09-30
  • 2023-03-22
  • 2014-06-12
  • 2014-06-14
相关资源
最近更新 更多