2009-09-30 135 views
0

我需要生成一個腳本,這將幫助我獲取一系列Windows 2003服務器上的壓縮文件/文件夾(不是zip文件,但是Windows壓縮文件)的列表。我有一臺客戶端計算機連接到目標服務器,並以管理員角色爲基礎進行訪問。我的想法是創建一個Powershell腳本來處理使用WMI或其他的問題?但我對WMI世界的可能性感到失望。任何提示/技巧值得讚賞。Powershell,WMI和壓縮文件/文件夾

乾杯

+0

我不知道如何標記這樣的文件或文件夾。請記住,如果您打算使用WMI掃描系統,這可能會非常緩慢。 – 2009-10-01 01:50:03

回答

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}} 

需要注意的是存儲在$壓縮將有額外的屬性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