这是一个在 Server 2003 下运行良好的 Powershell 脚本。我们需要迁移到 Server 2008 R2 并且该脚本无法正常工作。具体来说,脚本在等待 IE 完成页面加载时没有休眠。
$objIE = New-Object -ComObject "InternetExplorer.Application"
if($objIE.ReadyState -notmatch "0|1|2|3|4")
{
$objIE = [System.Runtime.InteropServices.Marshal]::GetActiveObject("InternetExplorer.Application")
if($objIE.ReadyState -notmatch "0|1|2|3|4")
{
Stop-Process -processname iexplore
$objIE = New-Object -ComObject "InternetExplorer.Application"
}
}
$objIE.Visible = $giShowResults
$objIE.Navigate($gsURL + "APAdmin.asp?cmd=login&loginname=" + $gsAdminName + "&password=" >>+ $gsAdminPassword)
while($objIE.Busy -eq $true)
{
$dtNow = Get-Date
Start-Sleep 1 # Sleep for one second
}
$objIE.Navigate($gsURL + "APAdmProcessClosings.asp?cmd=run&AutomatedProcess=y")
while($objIE.Busy -eq $true)
{
Start-Sleep 1 # Sleep for one second
}
当我在 Visible 设置为 true 的情况下运行时,我可以看到 IE 打开,加载 APAdmin.asp 页面,然后脚本说它在没有运行 APAdmProcessClosings.asp 页面的情况下完成。
我已经搜索了网络,但还没有找到任何原因。