Category Archives: Scripting & programming

Somthing about Powershell, VB Script, C#, VB.NET

Powershell: Invoke-WebRequest aborts with httpcode 301/308 permanent redirect

Hi,

the powershell command-let Invoke-WebRequest does not follow an http redirect.

The solution is to call Invoke-WebRequest recursivly with the redirect URL from the location header field when http code 301 or 308 is returned.

$sURL = "https://visualstudio.com/"
$sRedirectTo=$null
do {
    $oWebResponse = $null
    try
    {
        $oWebResponse = Invoke-WebRequest $sURL 
    }
    catch 
    {
        $oWebResponse=$_.Exception.Response
        write-host ("Exception: {0}" -f $_.Exception.Message)
    }
	if($oWebResponse.StatusCode -ne 200)
	{
		$aRedirectTo=$oWebResponse.Headers.GetValues("location")
		if($aRedirectTo.Count -ge 1)
		{
			$sRedirectTo=$aRedirectTo[0]
		}
		else
		{
			write-host ("No location URL in header")
			break
		}
		if (-not [string]::IsNullOrEmpty($sRedirectTo))
		{
			write-host ("Redirect to {0}" -f ($sRedirectTo))
			$sURL = $sRedirectTo
		}
		else
		{
			write-host ("location URL Null")
			break
		}
	}
    else
    {
        Write-Output ("OK Location = {1} HttpCode = {0}" -f $oWebResponse.StatusCode,$sRedirectTo )
        break
    }
	
} 
while ($true)

Michael

Advertisment to support michlstechblog.info

Visual Studio: Set proxy server for update

Hi,

the update process of Visual Studio uses the .NET class Webclient which takes not care about the proxy set by Internet Explorer or Edge.
Continue reading Visual Studio: Set proxy server for update

Windows: Determine Textencoding of a File

Hi,

if you are working with special characters (i.e. German Umlaute) within a Textfile it is importent to know with which text encoding (UTF8, ASCII…) a file is saved.
Continue reading Windows: Determine Textencoding of a File

Powershell: Change language/culture settings for the current session/window.

Hi,

different language settings on your clients causes some administration issues when you are working with times (formats) or group names for example.
Continue reading Powershell: Change language/culture settings for the current session/window.

C#: Import a rsa public key generated by openssl

Hi,

the C# (.NET 4) RSACryptoServiceProvider->ImportCspBlob methode has the ability to import RSA (public) keys.
Continue reading C#: Import a rsa public key generated by openssl