Private/InitializeProxySettings.ps1
function InitializeProxySettings { [CmdletBinding()] param ( [Parameter(Mandatory, Position = 0)] $WsusConfig ) if (!$WsusConfig.UseProxy) { Write-Verbose "WSUS configuration is set to not use a proxy." return $true } if ($WsusConfig.AnonymousProxyAccess) { Write-Verbose "WSUS proxy is set to allow anonymous access." return $true } if ($WsusConfig.HasProxyPassword -and !$WsusConfig.AllowProxyCredentialsOverNonSsl) { Write-Error -Message "WSUS proxy has a proxy password, but is not allowing proxy credentials over non-SSL (in plaintext). Only HTTP proxies are supported by this cmdlet." ` -Category InvalidOperation ` -ErrorId "ProxyMustAllowNonSslAuth" return $false } Write-Verbose "WSUS server is using a supported proxy configuration." $username = $WsusConfig.ProxyUserName if (![string]::IsNullOrWhiteSpace($WsusConfig.ProxyUserDomain)) { $username = "$( $WsusConfig.ProxyUserDomain )\$username" Write-Verbose "WSUS proxy has set the user domain name. The full proxy username is: $username" } if ($WsusConfig.HasProxyPassword) { Write-Verbose "WSUS proxy has a password set." $Script:ProxyCredentials = New-Object -TypeName "PSCredential" -ArgumentList @( $username, (ConvertTo-SecureString $WsusConfig.ProxyPassword -AsPlainText -Force) ) } else { $Script:ProxyCredentials = New-Object -TypeName "PSCredential" -ArgumentList @( $username, (New-Object -TypeName "SecureString") ) } $Script:HttpProxy = "http://{0}:{1}" -f ($WsusConfig.ProxyName, $WsusConfig.ProxyServerPort) $Script:HttpsProxy = $Script:HttpProxy Write-Verbose "WSUS proxy is set to $( $Script:HttpProxy )." if ($WsusConfig.UseSeparateProxyForSsl) { $Script:HttpsProxy = "http://{0}:{1}" -f ($WsusConfig.SslProxyName, $WsusConfig.SslProxyServerPort) Write-Verbose "WSUS server is using a separate proxy for SSL connections: $( $Script:HttpsProxy )" } return $true } # Copyright (c) 2023 AJ Tek Corporation. All Rights Reserved. |