Public/Network/Get-WebPortalHTMLCode.ps1
|
FUNCTION Get-WebPortalHTMLCode { [CmdletBinding()] PARAM ( [Parameter(Mandatory)] $IP, [ValidateSet('HTTP', 'HTTPS')] $Protocol = "HTTPS", $Port = 443 ) IF ($PSVersionTable.PSVersion.Major -lt 7) { Write-Warning "This PowerShell Command requires PowerShell 7 to run properly."; RETURN } $Page = (Invoke-WebRequest -Uri "$($Protocol)://$($IP):$Port" -UseBasicParsing -TimeoutSec 10 -ErrorAction SilentlyContinue -SkipCertificateCheck).RawContent IF ($Page -match '(?i)content\s*=\s*["'']?\d+;\s*url\s*=\s*''([^"''>\s]+)') { $NewURL = $matches[1] IF ($NewURL.Substring(0,1) -eq "/") { $NewURL = $NewURL.Substring(1,$NewURL.Length-1) } $Page += (Invoke-WebRequest -Uri "$($Protocol)://$($IP):$Port/$NewURL" -UseBasicParsing -TimeoutSec 10 -ErrorAction SilentlyContinue -SkipCertificateCheck).RawContent } ELSEIF ($Page -match '(?i)content\s*=\s*["'']?\d+;\s*url\s*=\s*''([^"''>\s]+)') { $NewURL = $matches[1] IF ($NewURL.Substring(0,1) -eq "/") { $NewURL = $NewURL.Substring(1,$NewURL.Length-1) } $Page += (Invoke-WebRequest -Uri "$($Protocol)://$($IP):$Port/$NewURL" -UseBasicParsing -TimeoutSec 10 -ErrorAction SilentlyContinue -SkipCertificateCheck).RawContent } RETURN $Page } |