ホストから統計情報を取得し、新しいPSObjectに出力し、結果を結合してHTML Webページに変換する基本機能を実行するシステム保守スクリプトを作成しました。 。Powershellの「最適化ボリューム」出力
Optimize-Volume
の出力をパイプラインに書き込むことができないようですが、私は-verbose
を使用する必要があります - これはなぜですか?私は、その結果に応じて、-verbose
出力の最後に生成された次のテキストを検索することによってOptimize-Volume
コマンドレットの結果を確認したいと思います: -
- 「あなたがこのボリュームをデフラグすることをお勧めします。 '
- 'このボリュームをデフラグする必要はありません。'ここで
機能である: -
function Get-DefragInfo {
$getwmi = Get-WmiObject -Class Win32_volume -Filter "DriveType = 3" | Where-Object {$_.DriveLetter -cne $null} -ErrorAction SilentlyContinue
$letter = $getwmi.DriveLetter -replace ':'
foreach ($drive in $getwmi)
{
$analysis = Optimize-Volume -DriveLetter $letter -Analyze
if ($analysis -like 'It is recommended that you defragment this volume.')
{
$props =[ordered]@{‘Drive Letter’=$letter
'Defrag Recommended?'='Yes'}
}
elseif ($analysis -like 'You do not need to defragment this volume.')
{
$props [email protected]{‘Drive Letter’=$letter
'Defrag Recommended?'='No'}
}
$obj = New-Object -TypeName PSObject -Property $props
Write-Output $obj
}
}
は、どのように私は私が必要とする出力をキャプチャしていますか?
ありがとうございます。