Ваши требования четко не определены, но насколько я понимаю вашу проблему, я могу дать вам следующее решение: если это не воскресенье, мы ищем все экземпляры IE, если они есть на google.com, если да, то откройте yahoo.com.
Это не идеально, потому что если запустить скрипт снова, вы получите больше вкладок yahoo.com (но этот случай не указан вами), и есть другие вещи, плюс вы должны добавить больше проверок.
Но в любом случае, вот мой подход:
# 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}