Это работает для меня, но это может быть не так, как вам нужно:
$filename = get-process excel | where-object { $_.StartTime -lt (Get-Date).AddMinutes(-1) } | select-object mainwindowtitle
write-host $filename
get-process excel | where-object { $_.StartTime -lt (Get-Date).AddMinutes(-1) } | stop-process -force
Это выводит что-то в строку: @{MainWindowTitle=Microsoft Excel - testdata.xlsx]}
Вы можете добавить все в журнал, поэтому добавьте что-то вроде | out-file c:\testlog.txt
в конце $filename
.
Также может быть хорошо получить временную метку.
Изменить: к сожалению, это закрывает все открытые файлы Excel
Edit2: я экспериментировал немного благодаря комментарию Сета, и я получил это на работу:
Get-Process excel | Where-Object {$_.StartTime -lt (Get-Date).AddMinutes(-30)} | ForEach-Object {
echo $_.Id, $_.MainWindowTitle;
Stop-Process -Force -Id $_.id
}
Он выводит в окно то, что закрывается следующим образом:
72148
Microsoft Excel - Book1
73712
Microsoft Excel - Book2