0

そのため、私はサーバーのインベントリ スクリプトに取り組んでおり、ストレージで障害にぶつかっています。コードは次のとおりです。

$StorageInfo=Get-WmiObject win32_volume | Where-Object {$_.DriveType -eq 3 -and $_.Label -ne 'System Reserved' -and $_.DriveLetter -ne $null}

$DriveLetters=$StorageInfo | Select-Object DriveLetter | Sort-Object DriveLetter | ft -HideTableHeaders
$DriveNames=$StorageInfo | Sort-Object DriveLetter | Select-Object Label | ft -HideTableHeaders
$DriveCapacity=$StorageInfo |Sort-Object DriveLetter | ForEach-Object {[Math]::Truncate($_.Capacity / 1GB)}

$DriveLetters

$DriveNames

$DriveCapacity

そこから得られるデータは次のとおりです。

C:                                                                                                                                                                                                  
D:                                                                                                                                                                                                  
E:                                                                                                                                                                                                  
F:                                                                                                                                                                                                  
G:                                                                                                                                                                                                  

OSDisk                                                                                                                                                                                              
Data                                                                                                                                                                                                
SQL Data                                                                                                                                                                                            
SQL Logs                                                                                                                                                                                            
SQL Temp                                                                                                                                                                                            

232
97
97
97
48

次のようにフォーマットできるようにしたいと思います。

C:\, OSDisk - 232gb
D:\, Data - 97gb
C:\, SQLData - 97gb
C:\, SQLLogs - 97gb
C:\, SQLTemp - 97gb

...そして、私はこれを完全に理解することはできません。誰でも支援を提供できますか?

4

2 に答える 2

2

この方法を試してください:

Get-WmiObject win32_volume -Filter "DriveType=3 AND Label <> 'System Reserved' AND DriveLetter IS NOT NULL" | 
Select-Object Name,Label,@{Name='CapacityGB';E={[Math]::Truncate($_.Capacity / 1GB)}}

説明どおりの正確な出力が必要な場合 (Ansgar に感謝):

Get-WmiObject win32_volume -Filter "DriveType=3 AND Label <> 'System Reserved' AND DriveLetter IS NOT NULL" | ForEach-Object{
    "{0}, {1} - {2}gb" -f $_.Name,$_.Label,([Math]::Truncate($_.Capacity/1GB))
}
于 2013-06-14T16:31:21.120 に答える
0
$logfile = <log file path>
 $path = <path of the file to which we need to sort> 
$Array = gc $path
 $Count = $Array.Count
 for($i=0; $i -le $Count; $i++) 
{ $a =$Array[$i]
 $i = $i+1
 write-output $i | out-file $logfile
 $a+=" "+ $Array[$i] 
$i = $i+1 
write-output $i | out-file  $logfile 
$a+=" "+ $Array[$i]
 write-output $i | out-file $logfile 
$New = $a | Select-Object -Unique #| out-file $logfile }
于 2014-03-12T06:15:00.337 に答える