Seus requisitos não estão claramente definidos, mas pelo que entendi seu problema, posso fornecer a você esta solução: Se não for domingo, pesquisaremos todas as instâncias do IE se elas estiverem no google.com, se sim, abrirmos yahoo.com .
Isso não é perfeito, porque se você executar o script novamente, obterá mais guias do yahoo.com (mas esse caso não é especificado por você.) e haverá outras coisas, além de você precisar adicionar mais verificações.
Mas de qualquer forma, aqui está minha abordagem:
# Set BrowserNavConstants to open URL in new tab
$navOpenInBackgroundTab = 0x1000; # Full list of BrowserNavConstants: https://msdn.microsoft.com/en-us/library/aa768360.aspx
$ie = $null
if (Get-Process iexplore -ea silentlycontinue | Where-Object {$_.MainWindowTitle -ne ""}) {
#Write-Output "IE is running"
$ie = (New-Object -COM "Shell.Application").Windows() | ? { $_.Name -eq "Internet Explorer" }
} else {
$ie = New-Object -COM "InternetExplorer.Application"
sleep -milliseconds 50
$ie.visible=$true
}
$today = (get-date).DayOfWeek
# Depending on the day of the week discovered, assign the right day's array into the sitesToOpen array.
switch ($today) {
"Sunday" {
$ie.navigate("http://bing.com"); break
}
default {
$google = $false
foreach($tab in $ie) {
if($tab.LocationURL.Contains("www.google.com"))
{$google = $true; break}
}
if($google) {
$ie.Navigate2("http://yahoo.com", $navOpenInBackgroundTab);
} else {
$ie.navigate("http://google.com")
}
break
}
}
# Cleanup
'ie' | ForEach-Object {Remove-Variable $_ -Force}