Ciao,
fortunatamente esiste un oggetto COM in grado di enumerare le finestre della shell aperte (sia Explorer che Internet Explorer) e, da queste, gestirne il funzionamento! Penso che già questo possa risolvere il tuo problema.
Prima di tutto è necessario recuperare l'oggetto in grado di elencare le finestre:
[Reflection.Assembly]::LoadWithPartialName("SHDocVw") |
Out-Null
$shellWindows = New-Object SHDocVw.ShellWindowsClass
In seguito è necessario recuperare la finestra su cui ci interessa effettuare l'operazione. Nell'esempio che segue recupero la prima finestra di IE che punta ad una qualsiasi pagina di powershell.it:
$window = (
$shellWindows |
? { $_.LocationUrl -like "http://www.powershell.it/*" } |
Select-Object -first 1
)
Da qui in avanti ci si può divertire. L'oggetto
window permetterà di manipolare l'istanza recuperata.
Ecco come, ad esempio, far aprire alla finestra un altro sito:
$window.Navigate("http://www.microsoft.com")
Spero di esserti stato utile.
Ciao!