use this in powershell:
Get-Process | Where-Object {$_.MainWindowTitle -ne ""} | stop-process
-note: this close powershell console
or ise
too and can't end his job!
(get-process | ? { $_.mainwindowtitle -ne "" -and $_.processname -ne "powershell" } )| stop-process
this way only powershell windows is still alive but the last command in your script can be
stop-process powershell
note: this no affect tray icon minimized process.
EDIT:
to close 'control panel' on xp try this:
(New-Object -comObject Shell.Application).Windows() | where-object {$_.LocationName -eq "Control Panel"} | foreach-object {$_.quit()}
to close all explorer.exe windows:
(New-Object -comObject Shell.Application).Windows() | foreach-object {$_.quit()}
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…