Если у вас есть PowerShell Community Extensions 1.2 (PSCX), установленный в PowerShell 2.0, я убедился, что это работает:
Pscx\Start-Process IExplore.exe; Start-Sleep 3; $hwnd = Get-ForegroundWindow
$sig = @'
[DllImport("user32.dll")]
public static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow);
'@
Add-Type -MemberDefinition $sig -name NativeMethods -namespace Win32
[Win32.NativeMethods]::ShowWindowAsync($hwnd, 3)
Это немного рискованно, потому что он использует ожидание (start-sleep) 3 секунды, чтобы дождаться открытия IE, а затем использует командлет PSCX, чтобы получить дескриптор окна переднего окна. Если у вас работает только один экземпляр IExplore, вы можете использовать его для получения этого дескриптора:
@(Get-Process IExplore)[0].MainWindowHandle
PowerShell 2.0 требуется для поддержки Add-Type, которая позволяет нам вызывать Win32 API.
Кстати, из быстрого поиска в Bing кажется, что запуск IE в максимизированном режиме - довольно распространенная проблема. Например, в Start-Process вы можете указать -WindowStyle Maximized, но IE это не соблюдает.