Hi,
I am experiencing a bit of an intersting issue when I am passing an uri to the cmdlet.
I type in this syntax like this:
Connect-Thrukwebsite -uri https://server01/bcmonitoring -credential $credential
However i get this error.
Invoke-WebRequest : Not Found The requested URL /bcmonitoring/cgi-bin/login.cgi was not found on this server. At C:\Users\weiyentan\Documents\GitHub\ps\Thruk\OMDThruk\OMDThruk.psm1:40 char:3 + Invoke-WebRequest -Uri $urlpath -WebSession $thrukwebsession ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException + FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
However when i expand the url like so
invoke-webrequest https://icinga/bcmonitoring/bcmonitoring/cgi-bin/login.cgi -SessionVariable test
it recognises it. Is there a way to get the function to recognise the uri?
function is below.
function Connect-Thrukwebsite { [CmdletBinding()] param ( [Parameter(Position = 0)] [string]$uri, [Parameter(Mandatory = $true, Position = 1)] [pscredential]$credential, [Parameter(Position = 2)] [switch]$apache ) $Thrukweburl = $uri $login = Invoke-WebRequest "$uri/thruk/cgi-bin/login.cgi" -SessionVariable global:thrukwebsession $login.Forms[0].Fields.login = $credential.UserName $login.Forms[0].Fields.password = $credential.GetNetworkCredential().Password $UAstring = "Firefox" Invoke-WebRequest -Uri "$uri/thruk/cgi-bin/login.cgi" -WebSession $thrukwebsession -Body $login.Forms[0].fields -Method Post -OutFile $env:TEMP\dump.htm $LoggedIn = Select-String -Path $env:temp\dump.htm -Pattern ($credential.UserName) -Quiet $urlpath = "$uri/cgi-bin/login.cgi" #Remove-Item .\dump.htm -Force -Confirm:$false -ErrorAction SilentlyContinue if ($LoggedIn -eq $true) { Write-Verbose "You are now logged in!" $mainPage = Invoke-WebRequest -Uri $urlpath -WebSession $thrukwebsession -Body $login.Forms[0].fields -Method Post } else { Write-Error "Login failed!" } }
Hope is appreciated.