Мне показалось, что это работает:
$ShellApplication = New-Object -ComObject Shell.Application
$ShellApplication.Windows() | Where-Object{$_.Name -eq "File Explorer" -and $_.LocationURL -match "General_logs" } | ForeEach-Object{ $_.Quit() }
Очевидно, вам нужно изменить то, что вы подходите. Я не сильно с этим связывался, мы можем сделать это более красноречивым. Дайте мне знать, как это происходит.
В одну строку:
(New-Object -ComObject Shell.Application).Windows() | Where-Object{$_.Name -eq "File Explorer" -and $_.LocationURL -match "General_logs" } | ForEach-Object{ $_.Quit() }
Теперь, если вы хотите запустить из PowerShell.exe:
powershell -NoProfile -WindowStyle Hidden -command .{ (New-Object -ComObject Shell.Application).Windows() | Where-Object{$_.Name -eq 'File Explorer' -and $_.LocationURL -match 'General_logs' } | ForEach-Object{ $_.Quit() } }
Это сработало для меня но обратите внимание, я должен был изменить цитату. Моя плохая привычка заключать в кавычки, когда это не нужно. Я также добавил -WindowStyle Hidden, чтобы вы не получили fla sh консоли и -NoProfile, так что вам не нужно ждать запуска сценария профиля ...