0

我有以下从独立和集群环境(MS SQL Server)收集磁盘空间信息的小代码:

Get-WMIObject -query "select * from Win32_Volume where DriveType=3 and not name like '%?%'" -computername $svr |select @{n="ServerName";e={$svr}},
Name, Label, FileSystem, @{e={($_.BlockSize /1KB) -as [int]};n="DskClusterSizeInKB"},  @{e={"{0:N2}" -f ($_.Capacity / 1GB)};n="DskTotalSizeInGB"},  
@{e={"{0:N2}" -f ($_.Freespace /1GB)};n="DskFreeSpaceInGB"}, @{e={"{0:N2}" -f (($_.Capacity-$_.Freespace) /1GB)};n="DskUsedSpaceInGB"}, 
@{e={"{0:N2}" -f ($_.Freespace/$_.Capacity*100)};n="DskPctFreeSpace"}, @{n="DateAdded";e={$RunDt}}

如果 $srv 是一个集群网络名称,那么我们为磁盘收集了多次相同的信息

即假设我有两个实例 [Inst1\InstName, Inst2\InstName](集群),带有驱动器号和挂载点,并且这些实例位于同一个物理节点上。

当收集开始时(循环通过服务器列表),它将通过 $srv=Inst1 收集信息,其中将包括 Inst2 的磁盘。

然后当 $srv=Inst2 它将包括 Inst1 的磁盘

任何想法如何解决这个问题?

问候,德米斯科

4

0 回答 0