$user = "user" $pass = "test" $secpasswd = ConvertTo-SecureString $pass -AsPlainText -Force $credential = New-Object –TypeName "System.Management.Automation.PSCredential" –ArgumentList $user, $secpasswd $baseUrl = "https://exampletest.azurewebsites.net" function Get-RootWebStatus($baseUrl) { $KeepLooking = $true $counter = 1 $RetryLimit = 5 $SleepInterval = 5 $StartTime = Get-Date while ($KeepLooking) { write-output "$(Get-Date -format 'g') - Querying $baseUrl to see if available." try { $response = Invoke-WebRequest $baseUrl write-output "$(Get-Date -format 'g') - Web request status: $($Response.Statuscode)" if ($Response.Statuscode -eq 200) { write-output "$(Get-Date -format 'g') - Web site is alive!" <# track execution time: $timeTaken = Measure-Command -Expression { $site = Invoke-WebRequest -Uri $baseUrl} $milliseconds = $timeTaken.TotalMilliseconds $milliseconds = [Math]::Round($milliseconds, 1) "This took $milliseconds ms to execute"#> $KeepLooking = $false continue } } catch { write-output "$(Get-Date -format 'g') - Error! $($_.Exception.Message)" } $counter++ | Out-Null if ($counter -gt $RetryLimit) { write-output "$(Get-Date -format 'g') - RetryLimit exceeded. Giving up.." $KeepLooking = $false continue } start-sleep $SleepInterval } write-output "$(Get-Date -format 'g') - Execution time was $((New-TimeSpan -start $StartTime -end (Get-Date)).seconds) seconds" } Get-RootWebStatus $baseUrl # Base Url status is completed, Once it is passed, it should check for the login credentials. $Loginpage = "https://exampletest.azurewebsites.net/sitecore" $params = @{uri = $Loginpage;Headers = @{Authorization = 'Basic ' + [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes("$($user):$($secpasswd)")); } } $Login = Invoke-RestMethod @params -SessionVariable lp $LoginPage = Invoke-WebRequest @params -WebSession $lp -ContentType "application/json" $LoginPage $suburl1 = "https://exampletest.azurewebsites.net/sitecore/client/Applications/Launchpad" $reply1 = Invoke-WebRequest $suburl1 -WebSession $lp $reply1