Closing All Explorer Windows in PowerShell

explorer, powershell, powershell-2.0

Solution

I think there's something in the pipeline that goes wrong. This code works:

$a = (New-Object -comObject Shell.Application).Windows() |
 ? { $_.FullName -ne $null} |
 ? { $_.FullName.toLower().Endswith('\explorer.exe') } 

 $a | % {  $_.Quit() }

Problem

I am writing the following code to close all explorer windows with PowerShell: ``` (New-Object -comObject Shell.Application).Windows() | ? { $_.FullName -ne $null} | ? { $_.FullName.toLower().Endswith('\explorer.exe') } | % { $_.Quit() } ``` But it does not close out all the open windows. Instead, it closes only `RoundDown(N/2)+1` windows, and leaves `RoundUp(N/2)-1` windows open. Can anyone help with this?

Original source