Isso funciona para mim, mas pode não ser o que você precisa:
$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
Isso gera algo na linha de: @{MainWindowTitle=Microsoft Excel - testdata.xlsx]}
Você pode querer anexar tudo a um log para adicionar algo como | out-file c:\testlog.txt
no final de $filename
.
Pode também ser bom obter um carimbo de data e hora.
Edit: infelizmente isso fecha todos os arquivos do Excel abertos
Edit2: Eu experimentei um pouco graças ao comentário do Seth e eu consegui que isso funcionasse:
Get-Process excel | Where-Object {$_.StartTime -lt (Get-Date).AddMinutes(-30)} | ForEach-Object {
echo $_.Id, $_.MainWindowTitle;
Stop-Process -Force -Id $_.id
}
Ele gera na janela o que ele fecha da seguinte forma:
72148
Microsoft Excel - Book1
73712
Microsoft Excel - Book2