Я пытаюсь выяснить, была ли дефрагментация на наших серверах. Чтобы уберечь себя от перехода к каждому из них, загрузки программы дефрагментации и проверки столбца «Последний запуск», я подумал, что WMI может иметь эту информацию. Я проверял класс Win32_Volume и вижу, что его можно использовать для запуска дефрагментации и анализа. Что я не могу найти, так это ссылки на последний раз, когда он был завершен. Я бы предпочел просто опускать объект, чем каждый раз проводить анализ. Есть ли способ найти эту информацию через WMI или ключ реестра?
Запустите запрос для события с идентификатором 258 в журнале событий приложений.
PS F:\ps1> get-winevent -filterHashTable @{Logname = 'Application'; ID = '258';} | select-object -first 1 -prop machinename,timecreated,message | fl
MachineName : coyote.acme.com
TimeCreated : 9/24/2014 2:28:07 AM
Message : The disk defragmenter successfully completed defragmentation on (C:)
Вижу, у вас уже есть на это ответ. Но вы можете взглянуть на вопрос немного по-другому, если хотите использовать DefragAnalysis.
$driveLetter = Get-WmiObject -Class Win32_Volume -Filter "DriveLetter = 'C:'"
$driveDefrag = $driveLetter.DefragAnalysis()
$driveDefrag.DefragAnalysis
$report.DefragRecommended
будет отображаться, если ОС считает, что ей нужна дефрагментация и $report.DefragAnalysis
также есть много дополнительной полезной информации.