扫描多个服务器,每个服务器的所有驱动器用于特定文件类型

时间:2016-02-25 02:35:07

标签: powershell

目前我正在使用以下脚本来轮询域中所有服务器的AD,然后扫描每个服务器以查找物理驱动器,然后扫描每个驱动器以查找某种文件类型。

$servers = Get-ADComputer -SearchBase "OU=Servers,dc=domain,dc=local" -Filter * | Select -Exp Name | sort
$result = $servers | 
% { 
    write-host "$_"
    gwmi win32_logicaldisk -filter "DriveType = 3" |
    select-object DeviceID |
    % {
    write-host "$_"
        gci . -recurse -filter *.txt | select fullname,length,lastWriteTime
   }
}
$result | export-csv c:\files.csv -notype

这会抓住每个服务器,但似乎只抓住第一台服务器的C和D驱动器,并为每个服务器重复。那里有一些服务器有E:和M:没有被接收的驱动器。

屏幕输出到服务器名称和看似不正确的驱动器,但csv文件为空。

1 个答案:

答案 0 :(得分:0)

对于网络驱动器或未知,ramdisks和其他驱动器类型,DriveType将不同于3.

可以在win32_logicaldisk中找到以下DriveType:

  • 未知(0)
  • 没有根目录(1)
  • 可移动磁盘(2)
  • 本地磁盘(3)
  • 网络驱动器(4)
  • 光盘(5)
  • RAM磁盘(6)

我建议您尝试删除过滤器并按如下方式获取磁盘:

android:elevation="6dp"

有关win32_logicaldisk的更多信息 - 请参阅:https://msdn.microsoft.com/en-us/library/windows/desktop/aa394173(v=vs.85).aspx