Я написал сценарий обслуживания системы, который выполняет основные функции, которые извлекают статистику с хоста, записывает вывод в новый PSObject, а затем, наконец, объединяет результаты и преобразует все это на веб-страницу HTML ,Вывод «Оптимизация объема» Powershell
Я, похоже, не могу написать вывод Optimize-Volume
на конвейер, я должен использовать -verbose
- почему это? Я хотел бы, чтобы проверить результаты Optimize-Volume
командлета ищет следующий текст, который генерируется в конце -verbose
вывода, в зависимости от результата: -
- «рекомендуются дефрагментировать этот объем. '
- «Вам не нужно дефрагментировать этот том».
Вот функция: -
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
}
}
Как перехватывать вывод, что нужно?
Заранее спасибо.