【发布时间】:2016-06-20 06:26:02
【问题描述】:
我编写了一个系统维护脚本,它执行从主机检索统计数据的基本功能,将输出写入一个新的 PSObject,然后最终组合结果并将其全部转换为 HTML 网页。
我似乎无法将Optimize-Volume 的输出写入管道,我必须使用-verbose - 这是为什么呢?我想通过查找在-verbose 输出末尾生成的以下文本来检查Optimize-Volume cmdlet 的结果,具体取决于结果:-
- '建议您对此卷进行碎片整理。'
- '您不需要对此卷进行碎片整理。'
这里是函数:-
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 =@{‘Drive Letter’=$letter
'Defrag Recommended?'='No'}
}
$obj = New-Object -TypeName PSObject -Property $props
Write-Output $obj
}
}
如何捕获我需要的输出?
提前致谢。
【问题讨论】:
标签: windows powershell